From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([149.20.54.216]:53818 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751111AbbI2EyN (ORCPT ); Tue, 29 Sep 2015 00:54:13 -0400 Received: from localhost (74-93-104-98-Washington.hfc.comcastbusiness.net [74.93.104.98]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id B26555952A2 for ; Mon, 28 Sep 2015 21:54:10 -0700 (PDT) Date: Mon, 28 Sep 2015 21:54:08 -0700 (PDT) Message-Id: <20150928.215408.458905239999743126.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Sep_28_21_54_08_2015_173)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Mon_Sep_28_21_54_08_2015_173)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v3.14, v3.18, v4.1, and v4.2 -stable, respectively. Thanks! ----Next_Part(Mon_Sep_28_21_54_08_2015_173)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_314.mbox" RnJvbSA2NGExOTU0ZjY4MTFlYTUwYjVmYzc0NzdkMWFjNDNjYjhiZDA1NGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBodWFpYmluIFdhbmcgPGh1YWliaW4ud2FuZ0A2d2luZC5jb20+ CkRhdGU6IFR1ZSwgMjUgQXVnIDIwMTUgMTY6MjA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv OF0gaXA2X2dyZTogcmVsZWFzZSBjYWNoZWQgZHN0IG9uIHR1bm5lbCByZW1vdmFsCgpbIFVwc3Ry ZWFtIGNvbW1pdCBkNDI1NzI5NWJhMWIzODljNjkzYjc5ZGU4NTdhOTZlNGI3Y2Q4YWMwIF0KCldo ZW4gYSB0dW5uZWwgaXMgZGVsZXRlZCwgdGhlIGNhY2hlZCBkc3QgZW50cnkgc2hvdWxkIGJlIHJl bGVhc2VkLgoKVGhpcyBwcm9ibGVtIG1heSBwcmV2ZW50IHRoZSByZW1vdmFsIG9mIGEgbmV0bnMg KHNlZW4gd2l0aCBhIHgtbmV0bnMgSVB2NgpncmUgdHVubmVsKToKICB1bnJlZ2lzdGVyX25ldGRl dmljZTogd2FpdGluZyBmb3IgbG8gdG8gYmVjb21lIGZyZWUuIFVzYWdlIGNvdW50ID0gMwoKQ0M6 IERtaXRyeSBLb3psb3YgPHhlYkBtYWlsLnJ1PgpGaXhlczogYzEyYjM5NWE0NjY0ICgiZ3JlOiBT dXBwb3J0IEdSRSBvdmVyIElQdjYiKQpTaWduZWQtb2ZmLWJ5OiBodWFpYmluIFdhbmcgPGh1YWli aW4ud2FuZ0A2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRGljaHRlbCA8bmljb2xh cy5kaWNodGVsQDZ3aW5kLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2lwNl9ncmUuYyB8IDEgKwogMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2X2dyZS5jIGIv bmV0L2lwdjYvaXA2X2dyZS5jCmluZGV4IDRhMjMwYjEuLmJhZmZhM2IgMTAwNjQ0Ci0tLSBhL25l dC9pcHY2L2lwNl9ncmUuYworKysgYi9uZXQvaXB2Ni9pcDZfZ3JlLmMKQEAgLTM1Nyw2ICszNTcs NyBAQCBzdGF0aWMgdm9pZCBpcDZncmVfdHVubmVsX3VuaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCXN0cnVjdCBpcDZncmVfbmV0ICppZ24gPSBuZXRfZ2VuZXJpYyhuZXQsIGlwNmdyZV9u ZXRfaWQpOwogCiAJaXA2Z3JlX3R1bm5lbF91bmxpbmsoaWduLCBuZXRkZXZfcHJpdihkZXYpKTsK KwlpcDZfdG5sX2RzdF9yZXNldChuZXRkZXZfcHJpdihkZXYpKTsKIAlkZXZfcHV0KGRldik7CiB9 CiAKLS0gCjIuMS4wCgoKRnJvbSA4NWY3NzRiZTEzOGI4YjA2YzJmYmQ4OGNmZGFhYmMxODk5ZWU5 NzA0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFdWdlbmUgU2hhdG9raGluIDxldWdl bmUuc2hhdG9raGluQHJvc2FsYWIucnU+CkRhdGU6IE1vbiwgMjQgQXVnIDIwMTUgMjM6MTM6NDIg KzAzMDAKU3ViamVjdDogW1BBVENIIDIvOF0gdXNibmV0OiBHZXQgRVZFTlRfTk9fUlVOVElNRV9Q TSBiaXQgYmVmb3JlIGl0IGlzIGNsZWFyZWQKClsgVXBzdHJlYW0gY29tbWl0IGY1MDc5MWFjMWFj YTFhYzFiMDM3MGQ2MjM5N2I0M2U5ZjgzMTQyMWEgXQoKSXQgaXMgbmVlZGVkIHRvIGNoZWNrIEVW RU5UX05PX1JVTlRJTUVfUE0gYml0IG9mIGRldi0+ZmxhZ3MgaW4KdXNibmV0X3N0b3AoKSwgYnV0 IGl0cyB2YWx1ZSBzaG91bGQgYmUgcmVhZCBiZWZvcmUgaXQgaXMgY2xlYXJlZAp3aGVuIGRldi0+ ZmxhZ3MgaXMgc2V0IHRvIDAuCgpUaGUgcHJvYmxlbSB3YXMgc3BvdHRlZCBhbmQgdGhlIGZpeCB3 YXMgcHJvdmlkZWQgYnkKT2xpdmVyIE5ldWt1bSA8b25ldWt1bUBzdXNlLmRlPi4KClNpZ25lZC1v ZmYtYnk6IEV1Z2VuZSBTaGF0b2toaW4gPGV1Z2VuZS5zaGF0b2toaW5Acm9zYWxhYi5ydT4KQWNr ZWQtYnk6IE9saXZlciBOZXVrdW0gPG9uZXVrdW1Ac3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2Iv dXNibmV0LmMgfCA3ICsrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jIGIvZHJp dmVycy9uZXQvdXNiL3VzYm5ldC5jCmluZGV4IGY5ZTk2YzQuLjIzZGMxMzEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3VzYi91c2JuZXQuYworKysgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMK QEAgLTc3OCw3ICs3NzgsNyBAQCBpbnQgdXNibmV0X3N0b3AgKHN0cnVjdCBuZXRfZGV2aWNlICpu ZXQpCiB7CiAJc3RydWN0IHVzYm5ldAkJKmRldiA9IG5ldGRldl9wcml2KG5ldCk7CiAJc3RydWN0 IGRyaXZlcl9pbmZvCSppbmZvID0gZGV2LT5kcml2ZXJfaW5mbzsKLQlpbnQJCQlyZXR2YWwsIHBt OworCWludAkJCXJldHZhbCwgcG0sIG1wbjsKIAogCWNsZWFyX2JpdChFVkVOVF9ERVZfT1BFTiwg JmRldi0+ZmxhZ3MpOwogCW5ldGlmX3N0b3BfcXVldWUgKG5ldCk7CkBAIC04MDksNiArODA5LDgg QEAgaW50IHVzYm5ldF9zdG9wIChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQogCiAJdXNibmV0X3B1 cmdlX3BhdXNlZF9yeHEoZGV2KTsKIAorCW1wbiA9ICF0ZXN0X2FuZF9jbGVhcl9iaXQoRVZFTlRf Tk9fUlVOVElNRV9QTSwgJmRldi0+ZmxhZ3MpOworCiAJLyogZGVmZXJyZWQgd29yayAodGFzaywg dGltZXIsIHNvZnRpcnEpIG11c3QgYWxzbyBzdG9wLgogCSAqIGNhbid0IGZsdXNoX3NjaGVkdWxl ZF93b3JrKCkgdW50aWwgd2UgZHJvcCBydG5sIChsYXRlciksCiAJICogZWxzZSB3b3JrZXJzIGNv dWxkIGRlYWRsb2NrOyBzbyBtYWtlIHdvcmtlcnMgYSBOT1AuCkBAIC04MTksOCArODIxLDcgQEAg aW50IHVzYm5ldF9zdG9wIChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQogCWlmICghcG0pCiAJCXVz Yl9hdXRvcG1fcHV0X2ludGVyZmFjZShkZXYtPmludGYpOwogCi0JaWYgKGluZm8tPm1hbmFnZV9w b3dlciAmJgotCSAgICAhdGVzdF9hbmRfY2xlYXJfYml0KEVWRU5UX05PX1JVTlRJTUVfUE0sICZk ZXYtPmZsYWdzKSkKKwlpZiAoaW5mby0+bWFuYWdlX3Bvd2VyICYmIG1wbikKIAkJaW5mby0+bWFu YWdlX3Bvd2VyKGRldiwgMCk7CiAJZWxzZQogCQl1c2JfYXV0b3BtX3B1dF9pbnRlcmZhY2UoZGV2 LT5pbnRmKTsKLS0gCjIuMS4wCgoKRnJvbSA0M2ZkYmQ2ODQxNzQ3YjJmOTI0YzJhMTA4ZjcwYzI0 ODcxYzdmODU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4g PGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBUaHUsIDMgU2VwIDIwMTUgMDA6Mjk6MDcgKzAy MDAKU3ViamVjdDogW1BBVENIIDMvOF0gaXB2NjogZml4IGV4dGhkcnMgb2ZmbG9hZCByZWdpc3Ry YXRpb24gaW4gb3V0X3J0IHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGU0MWIwYmVkYmEwMjkzYjll MWU4ZDFlOGVkNTUzMTA0Yjk2OTM2NTYgXQoKV2UgcHJldmlvdXNseSByZWdpc3RlciBJUFBST1RP X1JPVVRJTkcgb2ZmbG9hZCB1bmRlciBpbmV0Nl9hZGRfb2ZmbG9hZCgpLApidXQgaW4gZXJyb3Ig cGF0aCwgd2UgdHJ5IHRvIHVucmVnaXN0ZXIgaXQgd2l0aCBpbmV0X2RlbF9vZmZsb2FkKCkuIFRo aXMKZG9lc24ndCBzZWVtIGNvcnJlY3QsIGl0IHNob3VsZCBhY3R1YWxseSBiZSBpbmV0Nl9kZWxf b2ZmbG9hZCgpLCBhbHNvCmlwdjZfZXh0aGRyc19vZmZsb2FkX2V4aXQoKSBmcm9tIHRoYXQgY29t bWl0IHNlZW1zIHJhdGhlciBpbmNvcnJlY3QgKGl0CmFsc28gdXNlcyBydGhkcl9vZmZsb2FkIHR3 aWNlKSwgYnV0IGl0IGdvdCByZW1vdmVkIGVudGlyZWx5IGxhdGVyIG9uLgoKRml4ZXM6IDMzMzYy ODhhOWZlYSAoImlwdjY6IFN3aXRjaCB0byB1c2luZyBuZXcgb2ZmbG9hZCBpbmZyYXN0cnVjdHVy ZS4iKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0 PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvZXh0aGRyc19vZmZsb2FkLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9leHRoZHJz X29mZmxvYWQuYyBiL25ldC9pcHY2L2V4dGhkcnNfb2ZmbG9hZC5jCmluZGV4IDQ0N2E3ZmIuLmY1 ZTJiYTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2V4dGhkcnNfb2ZmbG9hZC5jCisrKyBiL25ldC9p cHY2L2V4dGhkcnNfb2ZmbG9hZC5jCkBAIC0zNiw2ICszNiw2IEBAIG91dDoKIAlyZXR1cm4gcmV0 OwogCiBvdXRfcnQ6Ci0JaW5ldF9kZWxfb2ZmbG9hZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19S T1VUSU5HKTsKKwlpbmV0Nl9kZWxfb2ZmbG9hZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19ST1VU SU5HKTsKIAlnb3RvIG91dDsKIH0KLS0gCjIuMS4wCgoKRnJvbSAzMTFhYjlkNzljMWFkZDQzYWQ4 ZTc2ZTQ1NjJkOTEzMmIxYzk3NTljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNo YXJkIExhaW5nIDxyaWNoYXJkLmxhaW5nQGFsbGllZHRlbGVzaXMuY28ubno+CkRhdGU6IFRodSwg MyBTZXAgMjAxNSAxMzo1MjozMSArMTIwMApTdWJqZWN0OiBbUEFUQ0ggNC84XSBuZXQvaXB2Njog Q29ycmVjdCBQSU02IG1ydF9sb2NrIGhhbmRsaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCAyNWI0YTQ0 YzE5YzgzZDk4ZThjMDgwN2E3ZWRlMDdjMWYyOGVhYjhiIF0KCkluIHRoZSBJUHY2IG11bHRpY2Fz dCByb3V0aW5nIGNvZGUgdGhlIG1ydF9sb2NrIHdhcyBub3QgYmVpbmcgcmVsZWFzZWQKY29ycmVj dGx5IGluIHRoZSBNRkMgaXRlcmF0b3IsIGFzIGEgcmVzdWx0IGFkZGluZyBvciBkZWxldGluZyBh IE1JRiB3b3VsZApjYXVzZSBhIGhhbmcgYmVjYXVzZSB0aGUgbXJ0X2xvY2sgY291bGQgbm90IGJl IGFjcXVpcmVkLgoKVGhpcyBmaXggaXMgYSBjb3B5IG9mIHRoZSBjb2RlIGZvciB0aGUgSVB2NCBj YXNlIGFuZCBlbnN1cmVzIHRoYXQgdGhlIGxvY2sKaXMgcmVsZWFzZWQgY29ycmVjdGx5LgoKU2ln bmVkLW9mZi1ieTogUmljaGFyZCBMYWluZyA8cmljaGFyZC5sYWluZ0BhbGxpZWR0ZWxlc2lzLmNv Lm56PgpBY2tlZC1ieTogQ29uZyBXYW5nIDxjd2FuZ0B0d29wZW5zb3VyY2UuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djYvaXA2bXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQvaXB2Ni9pcDZtci5j CmluZGV4IDg3Mzc0MDAuLjgyMWQ4ZGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNm1yLmMKKysr IGIvbmV0L2lwdjYvaXA2bXIuYwpAQCAtNTUyLDcgKzU1Miw3IEBAIHN0YXRpYyB2b2lkIGlwbXJf bWZjX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogCiAJaWYgKGl0LT5j YWNoZSA9PSAmbXJ0LT5tZmM2X3VucmVzX3F1ZXVlKQogCQlzcGluX3VubG9ja19iaCgmbWZjX3Vu cmVzX2xvY2spOwotCWVsc2UgaWYgKGl0LT5jYWNoZSA9PSBtcnQtPm1mYzZfY2FjaGVfYXJyYXkp CisJZWxzZSBpZiAoaXQtPmNhY2hlID09ICZtcnQtPm1mYzZfY2FjaGVfYXJyYXlbaXQtPmN0XSkK IAkJcmVhZF91bmxvY2soJm1ydF9sb2NrKTsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDYzYmUyNWFj NTkxMDQ0OTc5OGIzZTU0NTQzMWQ0ZDhiYWJhZjhlYzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwg MTAgU2VwIDIwMTUgMjA6MDU6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDUvOF0gbmV0bGluaywg bW1hcDogdHJhbnNmb3JtIG1tYXAgc2tiIGludG8gZnVsbCBza2Igb24gdGFwcwoKWyBVcHN0cmVh bSBjb21taXQgMTg1M2M5NDk2NDYwMDViNTk1OWM0ODNiZWNkZTg2NjA4ZjU0OGYyNCBdCgpLZW4t aWNoaXJvdSByZXBvcnRlZCB0aGF0IHJ1bm5pbmcgbmV0bGluayBpbiBtbWFwIG1vZGUgZm9yIHJl Y2VpdmUgaW4KY29tYmluYXRpb24gd2l0aCBubG1vbiB3aWxsIHRocm93IGEgTlVMTCBwb2ludGVy IGRlcmVmZXJlbmNlIGluCl9fa2ZyZWVfc2tiKCkgb24gbmxtb25feG1pdCgpLCBpbiBteSBjYXNl IEkgY2FuIGFsc28gdHJpZ2dlciBhbiAidW5hYmxlCnRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJl cXVlc3QiLiBUaGUgcHJvYmxlbSBpcyB0aGUgc2tiX2Nsb25lKCkgaW4KX19uZXRsaW5rX2RlbGl2 ZXJfdGFwX3NrYigpIGZvciBza2JzIHRoYXQgYXJlIG1tYXBlZC4KCkkuZS4gdGhlIGNsb25lZCBz a2IgZG9lc24ndCBoYXZlIGEgZGVzdHJ1Y3Rvciwgd2hlcmVhcyB0aGUgbW1hcCBuZXRsaW5rCnNr YiBoYXMgaXQgcG9pbnRlZCB0byBuZXRsaW5rX3NrYl9kZXN0cnVjdG9yKCksIHNldCBpbiB0aGUg aGFuZGxlcgpuZXRsaW5rX3Jpbmdfc2V0dXBfc2tiKCkuIFRoZXJlLCBza2ItPmhlYWQgaXMgYmVp bmcgc2V0IHRvIE5VTEwsIHNvCnRoYXQgaW4gc3VjaCBjYXNlcywgX19rZnJlZV9za2IoKSBkb2Vz bid0IHBlcmZvcm0gYSBza2JfcmVsZWFzZV9kYXRhKCkKdmlhIHNrYl9yZWxlYXNlX2FsbCgpLCB3 aGVyZSBza2ItPmhlYWQgaXMgcG9zc2libHkgYmVpbmcgZnJlZWQgdGhyb3VnaAprZnJlZShoZWFk KSBpbnRvIHNsYWIgYWxsb2NhdG9yLCBhbHRob3VnaCBuZXRsaW5rIG1tYXAgc2tiLT5oZWFkIHBv aW50cwp0byB0aGUgbW1hcCBidWZmZXIuIFNpbWlsYXJseSwgdGhlIHNhbWUgaGFzIHRvIGJlIGRv bmUgYWxzbyBmb3IgbGFyZ2UKbmV0bGluayBza2JzIHdoZXJlIHRoZSBkYXRhIGFyZWEgaXMgdm1h bGxvY2VkLiBUaGVyZWZvcmUsIGFzIGRpc2N1c3NlZCwKbWFrZSBhIGNvcHkgZm9yIHRoZXNlIHJh dGhlciByYXJlIGNhc2VzIGZvciBub3cuIFRoaXMgZml4ZXMgdGhlIGlzc3VlCm9uIG15IGFuZCBL ZW4taWNoaXJvdSdzIHRlc3QtY2FzZXMuCgpSZWZlcmVuY2U6IGh0dHA6Ly90aHJlYWQuZ21hbmUu b3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzcxMTI5CkZpeGVzOiBiY2JkZTBkNDQ5ZWQgKCJuZXQ6 IG5ldGxpbms6IHZpcnR1YWwgdGFwIGRldmljZSBtYW5hZ2VtZW50IikKUmVwb3J0ZWQtYnk6IEtl bi1pY2hpcm91IE1BVFNVWkFXQSA8Y2hhbWFrZW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpUZXN0ZWQtYnk6IEtlbi1pY2hp cm91IE1BVFNVWkFXQSA8Y2hhbWFrZW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBuZXQvbmV0bGluay9hZl9u ZXRsaW5rLmggfCAgOSArKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMg Yi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXggYTBiMGVhOS4uMjgxMTlmNiAxMDA2NDQK LS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxp bmsuYwpAQCAtMTE1LDYgKzExNSwyNCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBobGlzdF9oZWFk ICpubF9wb3J0aWRfaGFzaGZuKHN0cnVjdCBubF9wb3J0aWRfaGFzaCAqaGFzaCwgdQogCXJldHVy biAmaGFzaC0+dGFibGVbamhhc2hfMXdvcmQocG9ydGlkLCBoYXNoLT5ybmQpICYgaGFzaC0+bWFz a107CiB9CiAKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmV0bGlua190b19mdWxsX3NrYihjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkgICBnZnBfdCBnZnBfbWFzaykKK3sKKwl1bnNp Z25lZCBpbnQgbGVuID0gc2tiX2VuZF9vZmZzZXQoc2tiKTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqbmV3 OworCisJbmV3ID0gYWxsb2Nfc2tiKGxlbiwgZ2ZwX21hc2spOworCWlmIChuZXcgPT0gTlVMTCkK KwkJcmV0dXJuIE5VTEw7CisKKwlORVRMSU5LX0NCKG5ldykucG9ydGlkID0gTkVUTElOS19DQihz a2IpLnBvcnRpZDsKKwlORVRMSU5LX0NCKG5ldykuZHN0X2dyb3VwID0gTkVUTElOS19DQihza2Ip LmRzdF9ncm91cDsKKwlORVRMSU5LX0NCKG5ldykuY3JlZHMgPSBORVRMSU5LX0NCKHNrYikuY3Jl ZHM7CisKKwltZW1jcHkoc2tiX3B1dChuZXcsIGxlbiksIHNrYi0+ZGF0YSwgbGVuKTsKKwlyZXR1 cm4gbmV3OworfQorCiBpbnQgbmV0bGlua19hZGRfdGFwKHN0cnVjdCBuZXRsaW5rX3RhcCAqbnQp CiB7CiAJaWYgKHVubGlrZWx5KG50LT5kZXYtPnR5cGUgIT0gQVJQSFJEX05FVExJTkspKQpAQCAt MTk5LDcgKzIxNywxMSBAQCBzdGF0aWMgaW50IF9fbmV0bGlua19kZWxpdmVyX3RhcF9za2Ioc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAogCWRldl9ob2xkKGRldik7 Ci0JbnNrYiA9IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOworCisJaWYgKG5ldGxpbmtfc2ti X2lzX21tYXBlZChza2IpIHx8IGlzX3ZtYWxsb2NfYWRkcihza2ItPmhlYWQpKQorCQluc2tiID0g bmV0bGlua190b19mdWxsX3NrYihza2IsIEdGUF9BVE9NSUMpOworCWVsc2UKKwkJbnNrYiA9IHNr Yl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOwogCWlmIChuc2tiKSB7CiAJCW5za2ItPmRldiA9IGRl djsKIAkJbnNrYi0+cHJvdG9jb2wgPSBodG9ucygodTE2KSBzay0+c2tfcHJvdG9jb2wpOwpAQCAt MjcxLDExICsyOTMsNiBAQCBzdGF0aWMgdm9pZCBuZXRsaW5rX3Jjdl93YWtlKHN0cnVjdCBzb2Nr ICpzaykKIH0KIAogI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLXN0YXRpYyBib29sIG5ldGxp bmtfc2tiX2lzX21tYXBlZChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiBO RVRMSU5LX0NCKHNrYikuZmxhZ3MgJiBORVRMSU5LX1NLQl9NTUFQRUQ7Ci19Ci0KIHN0YXRpYyBi b29sIG5ldGxpbmtfcnhfaXNfbW1hcGVkKHN0cnVjdCBzb2NrICpzaykKIHsKIAlyZXR1cm4gbmxr X3NrKHNrKS0+cnhfcmluZy5wZ192ZWMgIT0gTlVMTDsKQEAgLTgxMiw3ICs4MjksNiBAQCBzdGF0 aWMgdm9pZCBuZXRsaW5rX3Jpbmdfc2V0X2NvcGllZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IpCiB9CiAKICNlbHNlIC8qIENPTkZJR19ORVRMSU5LX01NQVAgKi8KLSNkZWZp bmUgbmV0bGlua19za2JfaXNfbW1hcGVkKHNrYikJZmFsc2UKICNkZWZpbmUgbmV0bGlua19yeF9p c19tbWFwZWQoc2spCWZhbHNlCiAjZGVmaW5lIG5ldGxpbmtfdHhfaXNfbW1hcGVkKHNrKQlmYWxz ZQogI2RlZmluZSBuZXRsaW5rX21tYXAJCQlzb2NrX25vX21tYXAKZGlmZiAtLWdpdCBhL25ldC9u ZXRsaW5rL2FmX25ldGxpbmsuaCBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaAppbmRleCBhY2Jk Nzc0Li5kY2M4OWM3IDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKKysrIGIv bmV0L25ldGxpbmsvYWZfbmV0bGluay5oCkBAIC02NSw2ICs2NSwxNSBAQCBzdHJ1Y3QgbmxfcG9y dGlkX2hhc2ggewogCXUzMgkJCXJuZDsKIH07CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBuZXRsaW5r X3NrYl9pc19tbWFwZWQoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKK3sKKyNpZmRlZiBDT05G SUdfTkVUTElOS19NTUFQCisJcmV0dXJuIE5FVExJTktfQ0Ioc2tiKS5mbGFncyAmIE5FVExJTktf U0tCX01NQVBFRDsKKyNlbHNlCisJcmV0dXJuIGZhbHNlOworI2VuZGlmIC8qIENPTkZJR19ORVRM SU5LX01NQVAgKi8KK30KKwogc3RydWN0IG5ldGxpbmtfdGFibGUgewogCXN0cnVjdCBubF9wb3J0 aWRfaGFzaAloYXNoOwogCXN0cnVjdCBobGlzdF9oZWFkCW1jX2xpc3Q7Ci0tIAoyLjEuMAoKCkZy b20gNGQ5MjZhNTc3MmU3Yzg0MGJmY2UxYTQzZDUyZTI0M2FiNTcxMzVhMSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTAgU2VwIDIwMTUgMTc6MzE6MTUgLTAzMDAKU3ViamVj dDogW1BBVENIIDYvOF0gc2N0cDogZml4IHJhY2Ugb24gcHJvdG9jb2wvbmV0bnMgaW5pdGlhbGl6 YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDhlMmQ2MWUwYWVkMmI3YzRlY2IzNTg0NGZlMDdlMGIy Yjc2MmRlZTQgXQoKQ29uc2lkZXIgc2N0cCBtb2R1bGUgaXMgdW5sb2FkZWQgYW5kIGlzIGJlaW5n IHJlcXVlc3RlZCBiZWNhdXNlIGFuIHVzZXIKaXMgY3JlYXRpbmcgYSBzY3RwIHNvY2tldC4KCkR1 cmluZyBpbml0aWFsaXphdGlvbiwgc2N0cCB3aWxsIGFkZCB0aGUgbmV3IHByb3RvY29sIHR5cGUg YW5kIHRoZW4KaW5pdGlhbGl6ZSBwZXJuZXQgc3Vic3lzOgoKICAgICAgICBzdGF0dXMgPSBzY3Rw X3Y0X3Byb3Rvc3dfaW5pdCgpOwogICAgICAgIGlmIChzdGF0dXMpCiAgICAgICAgICAgICAgICBn b3RvIGVycl9wcm90b3N3X2luaXQ7CgogICAgICAgIHN0YXR1cyA9IHNjdHBfdjZfcHJvdG9zd19p bml0KCk7CiAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAgICAgICAgIGdvdG8gZXJyX3Y2X3By b3Rvc3dfaW5pdDsKCiAgICAgICAgc3RhdHVzID0gcmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0 cF9uZXRfb3BzKTsKClRoZSBwcm9ibGVtIGlzIHRoYXQgYWZ0ZXIgdGhvc2UgY2FsbHMgdG8gc2N0 cF92ezQsNn1fcHJvdG9zd19pbml0KCksIGl0CmlzIHBvc3NpYmxlIGZvciB1c2Vyc3BhY2UgdG8g Y3JlYXRlIFNDVFAgc29ja2V0cyBsaWtlIGlmIHRoZSBtb2R1bGUgaXMKYWxyZWFkeSBmdWxseSBs b2FkZWQuIElmIHRoYXQgaGFwcGVucywgb25lIG9mIHRoZSBwb3NzaWJsZSBlZmZlY3RzIGlzCnRo YXQgd2Ugd2lsbCBoYXZlIHJlYWRlcnMgZm9yIG5ldC0+c2N0cC5sb2NhbF9hZGRyX2xpc3QgbGlz dCBlYXJsaWVyCnRoYW4gZXhwZWN0ZWQgYW5kIHNjdHBfbmV0X2luaXQoKSBkb2VzIG5vdCB0YWtl IHByZWNhdXRpb25zIHdoaWxlCmRlYWxpbmcgd2l0aCB0aGF0IGxpc3QsIGxlYWRpbmcgdG8gYSBw b3RlbnRpYWwgcGFuaWMgYnV0IG5vdCBsaW1pdGVkIHRvCnRoYXQsIGFzIHNjdHBfc29ja19pbml0 KCkgd2lsbCBjb3B5IGEgYnVuY2ggb2YgYmxhbmsvcGFydGlhbGx5CmluaXRpYWxpemVkIHZhbHVl cyBmcm9tIG5ldC0+c2N0cC4KClRoZSByYWNlIGhhcHBlbnMgbGlrZSB0aGlzOgoKICAgICBDUFUg MCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIENQVSAxCiAgc29ja2V0KCkgICAgICAgICAg ICAgICAgICAgICAgICAgICB8CiAgIF9fc29ja19jcmVhdGUgICAgICAgICAgICAgICAgICAgICB8 IHNvY2tldCgpCiAgICBpbmV0X2NyZWF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICBfX3NvY2tf Y3JlYXRlCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoICAgICAgICB8CiAgICAgICAgYW5z d2VyLCAmaW5ldHN3W3NvY2stPnR5cGVdLCB8CiAgICAgICAgbGlzdCkgeyAgICAgICAgICAgICAg ICAgICAgICB8ICAgaW5ldF9jcmVhdGUKICAgICAgLyogbm8gaGl0cyAqLyAgICAgICAgICAgICAg ICAgIHwKICAgICBpZiAodW5saWtlbHkoZXJyKSkgeyAgICAgICAgICAgIHwKICAgICAgLi4uICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgcmVxdWVzdF9tb2R1bGUoKSAgICAgICAg ICAgICAgIHwKICAgICAgLyogc29ja2V0IGNyZWF0aW9uIGlzIGJsb2NrZWQgIHwKICAgICAgICog dGhlIG1vZHVsZSBpcyBmdWxseSBsb2FkZWQgIHwKICAgICAgICovICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKICAgICAgIHNjdHBfaW5pdCAgICAgICAgICAgICAgICAgICAgIHwKICAgICAg ICBzY3RwX3Y0X3Byb3Rvc3dfaW5pdCAgICAgICAgIHwKICAgICAgICAgaW5ldF9yZWdpc3Rlcl9w cm90b3N3ICAgICAgIHwKICAgICAgICAgIGxpc3RfYWRkX3JjdSgmcC0+bGlzdCwgICAgIHwKICAg ICAgICAgICAgICAgICAgICAgICBsYXN0X3Blcm0pOyAgIHwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgYW5zd2VyLCAmaW5ldHN3W3NvY2stPnR5cGVd LAogICAgICAgIHNjdHBfdjZfcHJvdG9zd19pbml0ICAgICAgICAgfCAgICAgbGlzdCkgewogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgLyogaGl0LCBzbyBhc3N1bWVz IHByb3RvY29sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgKiBp cyBhbHJlYWR5IGxvYWRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAvKiBzb2NrZXQg Y3JlYXRpb24gY29udGludWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgKiBiZWZvcmUgbmV0bnMgaXMgaW5pdGlhbGl6ZWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAqLwogICAgICAgIHJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMgICAgICAg fAoKU2ltcGx5IGludmVydGluZyB0aGUgaW5pdGlhbGl6YXRpb24gb3JkZXIgYmV0d2VlbgpyZWdp c3Rlcl9wZXJuZXRfc3Vic3lzKCkgYW5kIHNjdHBfdjRfcHJvdG9zd19pbml0KCkgaXMgbm90IHBv c3NpYmxlCmJlY2F1c2UgcmVnaXN0ZXJfcGVybmV0X3N1YnN5cygpIHdpbGwgY3JlYXRlIGEgY29u dHJvbCBzY3RwIHNvY2tldCwgc28KdGhlIHByb3RvY29sIG11c3QgYmUgYWxyZWFkeSB2aXNpYmxl IGJ5IHRoZW4uIERlZmVycmluZyB0aGUgc29ja2V0CmNyZWF0aW9uIHRvIGEgd29yay1xdWV1ZSBp cyBub3QgZ29vZCBzcGVjaWFsbHkgYmVjYXVzZSB3ZSBsb29zZSB0aGUKYWJpbGl0eSB0byBoYW5k bGUgaXRzIGVycm9ycy4KClNvLCBhcyBzdWdnZXN0ZWQgYnkgVmxhZCwgdGhlIGZpeCBpcyB0byBz cGxpdCBuZXRucyBpbml0aWFsaXphdGlvbiBpbgp0d28gbW9tZW50czogZGVmYXVsdHMgYW5kIGNv bnRyb2wgc29ja2V0LCBzbyB0aGF0IHRoZSBkZWZhdWx0cyBhcmUKYWxyZWFkeSBsb2FkZWQgYnkg d2hlbiB3ZSByZWdpc3RlciB0aGUgcHJvdG9jb2wsIHdoaWxlIGNvbnRyb2wgc29ja2V0CmluaXRp YWxpemF0aW9uIGlzIGtlcHQgYXQgdGhlIHNhbWUgbW9tZW50IGl0IGlzIHRvZGF5LgoKRml4ZXM6 IDRkYjY3ZTgwODY0MCAoInNjdHA6IE1ha2UgdGhlIGFkZHJlc3MgbGlzdHMgcGVyIG5ldHdvcmsg bmFtZXNwYWNlIikKU2lnbmVkLW9mZi1ieTogVmxhZCBZYXNldmljaCA8dnlhc2V2aWNoQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVp dG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9wcm90b2NvbC5jIHwgNjQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0 MSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9w cm90b2NvbC5jIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwppbmRleCBhNjJhMjE1Li4xMjM3YTIzIDEw MDY0NAotLS0gYS9uZXQvc2N0cC9wcm90b2NvbC5jCisrKyBiL25ldC9zY3RwL3Byb3RvY29sLmMK QEAgLTExNjcsNyArMTE2Nyw3IEBAIHN0YXRpYyB2b2lkIHNjdHBfdjRfZGVsX3Byb3RvY29sKHZv aWQpCiAJdW5yZWdpc3Rlcl9pbmV0YWRkcl9ub3RpZmllcigmc2N0cF9pbmV0YWRkcl9ub3RpZmll cik7CiB9CiAKLXN0YXRpYyBpbnQgX19uZXRfaW5pdCBzY3RwX25ldF9pbml0KHN0cnVjdCBuZXQg Km5ldCkKK3N0YXRpYyBpbnQgX19uZXRfaW5pdCBzY3RwX2RlZmF1bHRzX2luaXQoc3RydWN0IG5l dCAqbmV0KQogewogCWludCBzdGF0dXM7CiAKQEAgLTEyNjAsMTIgKzEyNjAsNiBAQCBzdGF0aWMg aW50IF9fbmV0X2luaXQgc2N0cF9uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAKIAlzY3RwX2Ri Z19vYmpjbnRfaW5pdChuZXQpOwogCi0JLyogSW5pdGlhbGl6ZSB0aGUgY29udHJvbCBpbm9kZS9z b2NrZXQgZm9yIGhhbmRsaW5nIE9PVEIgcGFja2V0cy4gICovCi0JaWYgKChzdGF0dXMgPSBzY3Rw X2N0bF9zb2NrX2luaXQobmV0KSkpIHsKLQkJcHJfZXJyKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSB0 aGUgU0NUUCBjb250cm9sIHNvY2tcbiIpOwotCQlnb3RvIGVycl9jdGxfc29ja19pbml0OwotCX0K LQogCS8qIEluaXRpYWxpemUgdGhlIGxvY2FsIGFkZHJlc3MgbGlzdC4gKi8KIAlJTklUX0xJU1Rf SEVBRCgmbmV0LT5zY3RwLmxvY2FsX2FkZHJfbGlzdCk7CiAJc3Bpbl9sb2NrX2luaXQoJm5ldC0+ c2N0cC5sb2NhbF9hZGRyX2xvY2spOwpAQCAtMTI4MSw5ICsxMjc1LDYgQEAgc3RhdGljIGludCBf X25ldF9pbml0IHNjdHBfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0KQogCiAJcmV0dXJuIDA7CiAK LWVycl9jdGxfc29ja19pbml0OgotCXNjdHBfZGJnX29iamNudF9leGl0KG5ldCk7Ci0Jc2N0cF9w cm9jX2V4aXQobmV0KTsKIGVycl9pbml0X3Byb2M6CiAJY2xlYW51cF9zY3RwX21pYnMobmV0KTsK IGVycl9pbml0X21pYnM6CkBAIC0xMjkyLDE1ICsxMjgzLDEyIEBAIGVycl9zeXNjdGxfcmVnaXN0 ZXI6CiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIHZvaWQgX19uZXRfZXhpdCBzY3RwX25l dF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKK3N0YXRpYyB2b2lkIF9fbmV0X2V4aXQgc2N0cF9kZWZh dWx0c19leGl0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAkvKiBGcmVlIHRoZSBsb2NhbCBhZGRyZXNz IGxpc3QgKi8KIAlzY3RwX2ZyZWVfYWRkcl93cShuZXQpOwogCXNjdHBfZnJlZV9sb2NhbF9hZGRy X2xpc3QobmV0KTsKIAotCS8qIEZyZWUgdGhlIGNvbnRyb2wgZW5kcG9pbnQuICAqLwotCWluZXRf Y3RsX3NvY2tfZGVzdHJveShuZXQtPnNjdHAuY3RsX3NvY2spOwotCiAJc2N0cF9kYmdfb2JqY250 X2V4aXQobmV0KTsKIAogCXNjdHBfcHJvY19leGl0KG5ldCk7CkBAIC0xMzA4LDkgKzEyOTYsMzIg QEAgc3RhdGljIHZvaWQgX19uZXRfZXhpdCBzY3RwX25ldF9leGl0KHN0cnVjdCBuZXQgKm5ldCkK IAlzY3RwX3N5c2N0bF9uZXRfdW5yZWdpc3RlcihuZXQpOwogfQogCi1zdGF0aWMgc3RydWN0IHBl cm5ldF9vcGVyYXRpb25zIHNjdHBfbmV0X29wcyA9IHsKLQkuaW5pdCA9IHNjdHBfbmV0X2luaXQs Ci0JLmV4aXQgPSBzY3RwX25ldF9leGl0LAorc3RhdGljIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9u cyBzY3RwX2RlZmF1bHRzX29wcyA9IHsKKwkuaW5pdCA9IHNjdHBfZGVmYXVsdHNfaW5pdCwKKwku ZXhpdCA9IHNjdHBfZGVmYXVsdHNfZXhpdCwKK307CisKK3N0YXRpYyBpbnQgX19uZXRfaW5pdCBz Y3RwX2N0cmxzb2NrX2luaXQoc3RydWN0IG5ldCAqbmV0KQoreworCWludCBzdGF0dXM7CisKKwkv KiBJbml0aWFsaXplIHRoZSBjb250cm9sIGlub2RlL3NvY2tldCBmb3IgaGFuZGxpbmcgT09UQiBw YWNrZXRzLiAgKi8KKwlzdGF0dXMgPSBzY3RwX2N0bF9zb2NrX2luaXQobmV0KTsKKwlpZiAoc3Rh dHVzKQorCQlwcl9lcnIoIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBTQ1RQIGNvbnRyb2wgc29j a1xuIik7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgdm9pZCBfX25ldF9pbml0IHNj dHBfY3RybHNvY2tfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCit7CisJLyogRnJlZSB0aGUgY29udHJv bCBlbmRwb2ludC4gICovCisJaW5ldF9jdGxfc29ja19kZXN0cm95KG5ldC0+c2N0cC5jdGxfc29j ayk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgc2N0cF9jdHJsc29ja19v cHMgPSB7CisJLmluaXQgPSBzY3RwX2N0cmxzb2NrX2luaXQsCisJLmV4aXQgPSBzY3RwX2N0cmxz b2NrX2V4aXQsCiB9OwogCiAvKiBJbml0aWFsaXplIHRoZSB1bml2ZXJzZSBpbnRvIHNvbWV0aGlu ZyBzZW5zaWJsZS4gICovCkBAIC0xNDQ0LDggKzE0NTUsMTEgQEAgc3RhdGljIF9faW5pdCBpbnQg c2N0cF9pbml0KHZvaWQpCiAJc2N0cF92NF9wZl9pbml0KCk7CiAJc2N0cF92Nl9wZl9pbml0KCk7 CiAKLQlzdGF0dXMgPSBzY3RwX3Y0X3Byb3Rvc3dfaW5pdCgpOworCXN0YXR1cyA9IHJlZ2lzdGVy X3Blcm5ldF9zdWJzeXMoJnNjdHBfZGVmYXVsdHNfb3BzKTsKKwlpZiAoc3RhdHVzKQorCQlnb3Rv IGVycl9yZWdpc3Rlcl9kZWZhdWx0czsKIAorCXN0YXR1cyA9IHNjdHBfdjRfcHJvdG9zd19pbml0 KCk7CiAJaWYgKHN0YXR1cykKIAkJZ290byBlcnJfcHJvdG9zd19pbml0OwogCkBAIC0xNDUzLDkg KzE0NjcsOSBAQCBzdGF0aWMgX19pbml0IGludCBzY3RwX2luaXQodm9pZCkKIAlpZiAoc3RhdHVz KQogCQlnb3RvIGVycl92Nl9wcm90b3N3X2luaXQ7CiAKLQlzdGF0dXMgPSByZWdpc3Rlcl9wZXJu ZXRfc3Vic3lzKCZzY3RwX25ldF9vcHMpOworCXN0YXR1cyA9IHJlZ2lzdGVyX3Blcm5ldF9zdWJz eXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKIAlpZiAoc3RhdHVzKQotCQlnb3RvIGVycl9yZWdpc3Rl cl9wZXJuZXRfc3Vic3lzOworCQlnb3RvIGVycl9yZWdpc3Rlcl9jdHJsc29jazsKIAogCXN0YXR1 cyA9IHNjdHBfdjRfYWRkX3Byb3RvY29sKCk7CiAJaWYgKHN0YXR1cykKQEAgLTE0NzEsMTIgKzE0 ODUsMTQgQEAgb3V0OgogZXJyX3Y2X2FkZF9wcm90b2NvbDoKIAlzY3RwX3Y0X2RlbF9wcm90b2Nv bCgpOwogZXJyX2FkZF9wcm90b2NvbDoKLQl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBf bmV0X29wcyk7Ci1lcnJfcmVnaXN0ZXJfcGVybmV0X3N1YnN5czoKKwl1bnJlZ2lzdGVyX3Blcm5l dF9zdWJzeXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKK2Vycl9yZWdpc3Rlcl9jdHJsc29jazoKIAlz Y3RwX3Y2X3Byb3Rvc3dfZXhpdCgpOwogZXJyX3Y2X3Byb3Rvc3dfaW5pdDoKIAlzY3RwX3Y0X3By b3Rvc3dfZXhpdCgpOwogZXJyX3Byb3Rvc3dfaW5pdDoKKwl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJz eXMoJnNjdHBfZGVmYXVsdHNfb3BzKTsKK2Vycl9yZWdpc3Rlcl9kZWZhdWx0czoKIAlzY3RwX3Y0 X3BmX2V4aXQoKTsKIAlzY3RwX3Y2X3BmX2V4aXQoKTsKIAlzY3RwX3N5c2N0bF91bnJlZ2lzdGVy KCk7CkBAIC0xNTA5LDEyICsxNTI1LDE0IEBAIHN0YXRpYyBfX2V4aXQgdm9pZCBzY3RwX2V4aXQo dm9pZCkKIAlzY3RwX3Y2X2RlbF9wcm90b2NvbCgpOwogCXNjdHBfdjRfZGVsX3Byb3RvY29sKCk7 CiAKLQl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfbmV0X29wcyk7CisJdW5yZWdpc3Rl cl9wZXJuZXRfc3Vic3lzKCZzY3RwX2N0cmxzb2NrX29wcyk7CiAKIAkvKiBGcmVlIHByb3Rvc3cg cmVnaXN0cmF0aW9ucyAqLwogCXNjdHBfdjZfcHJvdG9zd19leGl0KCk7CiAJc2N0cF92NF9wcm90 b3N3X2V4aXQoKTsKIAorCXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9kZWZhdWx0c19v cHMpOworCiAJLyogVW5yZWdpc3RlciB3aXRoIHNvY2tldCBsYXllci4gKi8KIAlzY3RwX3Y2X3Bm X2V4aXQoKTsKIAlzY3RwX3Y0X3BmX2V4aXQoKTsKLS0gCjIuMS4wCgoKRnJvbSBjNzQ2ZTBhMTBi ZDVkYTQ2ZjU4OWJkYWZmYTE3NTc1YmExNGRmNDM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBKZXNzZSBHcm9zcyA8amVzc2VAbmljaXJhLmNvbT4KRGF0ZTogTW9uLCAyMSBTZXAgMjAx NSAyMDoyMToyMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggNy84XSBvcGVudnN3aXRjaDogWmVybyBm bG93cyBvbiBhbGxvY2F0aW9uLgoKWyBVcHN0cmVhbSBjb21taXQgYWU1ZjJmYjFkNTFmYTEyOGE0 NjBiY2ZiZTNjNTZkN2FiOGJmNmE0MyBdCgpXaGVuIHN1cHBvcnQgZm9yIG1lZ2FmbG93cyB3YXMg aW50cm9kdWNlZCwgT1ZTIG5lZWRlZCB0byBzdGFydAppbnN0YWxsaW5nIGZsb3dzIHdpdGggYSBt YXNrIGFwcGxpZWQgdG8gdGhlbS4gU2luY2UgbWFza2luZyBpcyBhbgpleHBlbnNpdmUgb3BlcmF0 aW9uLCBPVlMgYWxzbyBoYWQgYW4gb3B0aW1pemF0aW9uIHRoYXQgd291bGQgb25seQp0YWtlIHRo ZSBwYXJ0cyBvZiB0aGUgZmxvdyBrZXlzIHRoYXQgd2VyZSBjb3ZlcmVkIGJ5IGEgbm9uLXplcm8K bWFzay4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHJlbWFpbmluZyBwaWVjZXMgc2hvdWxkIG5v dCBtYXR0ZXIKYmVjYXVzZSB0aGV5IGFyZSBtYXNrZWQgb3V0LgoKV2hpbGUgdGhpcyB3b3JrcyBm aW5lIGZvciB0aGUgcHVycG9zZXMgb2YgbWF0Y2hpbmcgKHdoaWNoIG11c3QgYWx3YXlzCmxvb2sg YXQgdGhlIG1hc2spLCBzZXJpYWxpemF0aW9uIHRvIG5ldGxpbmsgY2FuIGJlIHByb2JsZW1hdGlj LiBTaW5jZQp0aGUgZmxvdyBhbmQgdGhlIG1hc2sgYXJlIHNlcmlhbGl6ZWQgc2VwYXJhdGVseSwg dGhlIHVuaW5pdGlhbGl6ZWQKcG9ydGlvbnMgb2YgdGhlIGZsb3cgY2FuIGJlIGVuY29kZWQgd2l0 aCB3aGF0ZXZlciB2YWx1ZXMgaGFwcGVuIHRvIGJlCnByZXNlbnQuCgpJbiB0ZXJtcyBvZiBmdW5j dGlvbmFsaXR5LCB0aGlzIGhhcyBsaXR0bGUgZWZmZWN0IHNpbmNlIHRoZXNlIGZpZWxkcwp3aWxs IGJlIG1hc2tlZCBvdXQgYnkgZGVmaW5pdGlvbi4gSG93ZXZlciwgaXQgbGVha3Mga2VybmVsIG1l bW9yeSB0bwp1c2Vyc3BhY2UsIHdoaWNoIGlzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFi aWxpdHkuIEl0IGlzIGFsc28KcG9zc2libGUgdGhhdCBvdGhlciBjb2RlIHBhdGhzIGNvdWxkIGxv b2sgYXQgdGhlIG1hc2tlZCBrZXkgYW5kIGdldAp1bmluaXRpYWxpemVkIGRhdGEsIGFsdGhvdWdo IHRoaXMgZG9lcyBub3QgY3VycmVudGx5IGFwcGVhciB0byBiZSBhbgppc3N1ZSBpbiBwcmFjdGlj ZS4KClRoaXMgcmVtb3ZlcyB0aGUgbWFzayBvcHRpbWl6YXRpb24gZm9yIGZsb3dzIHRoYXQgYXJl IGJlaW5nIGluc3RhbGxlZC4KVGhpcyB3YXMgYWx3YXlzIGludGVuZGVkIHRvIGJlIHRoZSBjYXNl IGFzIHRoZSBtYXNrIG9wdGltaXphdGlvbnMgd2VyZQpyZWFsbHkgdGFyZ2V0dGluZyBwZXItcGFj a2V0IGZsb3cgb3BlcmF0aW9ucy4KCkZpeGVzOiAwM2YwZDkxNiAoIm9wZW52c3dpdGNoOiBNZWdh IGZsb3cgaW1wbGVtZW50YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBKZXNzZSBHcm9zcyA8amVzc2VA bmljaXJhLmNvbT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgICB8ICAyICstCiBuZXQvb3BlbnZzd2l0Y2gv Zmxvd190YWJsZS5jIHwgMjEgKysrKysrKysrKysrLS0tLS0tLS0tCiBuZXQvb3BlbnZzd2l0Y2gv Zmxvd190YWJsZS5oIHwgIDIgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwg MTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMg Yi9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwppbmRleCAyNzBiNzdkLi44YmIxYTVhIDEwMDY0 NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYworKysgYi9uZXQvb3BlbnZzd2l0Y2gv ZGF0YXBhdGguYwpAQCAtODAzLDcgKzgwMyw3IEBAIHN0YXRpYyBpbnQgb3ZzX2Zsb3dfY21kX25l d19vcl9zZXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAkJ aWYgKElTX0VSUihhY3RzKSkKIAkJCWdvdG8gZXJyb3I7CiAKLQkJb3ZzX2Zsb3dfbWFza19rZXko Jm1hc2tlZF9rZXksICZrZXksICZtYXNrKTsKKwkJb3ZzX2Zsb3dfbWFza19rZXkoJm1hc2tlZF9r ZXksICZrZXksIHRydWUsICZtYXNrKTsKIAkJZXJyb3IgPSBvdnNfbmxhX2NvcHlfYWN0aW9ucyhh W09WU19GTE9XX0FUVFJfQUNUSU9OU10sCiAJCQkJCSAgICAgJm1hc2tlZF9rZXksIDAsICZhY3Rz KTsKIAkJaWYgKGVycm9yKSB7CmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZmxvd190YWJs ZS5jIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUuYwppbmRleCAzYzI2OGIzLi40ODc3ZDVh IDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxvd190YWJsZS5jCisrKyBiL25ldC9vcGVu dnN3aXRjaC9mbG93X3RhYmxlLmMKQEAgLTU1LDE4ICs1NSwyMSBAQCBzdGF0aWMgdTE2IHJhbmdl X25fYnl0ZXMoY29uc3Qgc3RydWN0IHN3X2Zsb3dfa2V5X3JhbmdlICpyYW5nZSkKIH0KIAogdm9p ZCBvdnNfZmxvd19tYXNrX2tleShzdHJ1Y3Qgc3dfZmxvd19rZXkgKmRzdCwgY29uc3Qgc3RydWN0 IHN3X2Zsb3dfa2V5ICpzcmMsCi0JCSAgICAgICBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19tYXNrICpt YXNrKQorCQkgICAgICAgYm9vbCBmdWxsLCBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19tYXNrICptYXNr KQogewotCWNvbnN0IGxvbmcgKm0gPSAobG9uZyAqKSgodTggKikmbWFzay0+a2V5ICsgbWFzay0+ cmFuZ2Uuc3RhcnQpOwotCWNvbnN0IGxvbmcgKnMgPSAobG9uZyAqKSgodTggKilzcmMgKyBtYXNr LT5yYW5nZS5zdGFydCk7Ci0JbG9uZyAqZCA9IChsb25nICopKCh1OCAqKWRzdCArIG1hc2stPnJh bmdlLnN0YXJ0KTsKKwlpbnQgc3RhcnQgPSBmdWxsID8gMCA6IG1hc2stPnJhbmdlLnN0YXJ0Owor CWludCBsZW4gPSBmdWxsID8gc2l6ZW9mICpkc3QgOiByYW5nZV9uX2J5dGVzKCZtYXNrLT5yYW5n ZSk7CisJY29uc3QgbG9uZyAqbSA9IChjb25zdCBsb25nICopKChjb25zdCB1OCAqKSZtYXNrLT5r ZXkgKyBzdGFydCk7CisJY29uc3QgbG9uZyAqcyA9IChjb25zdCBsb25nICopKChjb25zdCB1OCAq KXNyYyArIHN0YXJ0KTsKKwlsb25nICpkID0gKGxvbmcgKikoKHU4ICopZHN0ICsgc3RhcnQpOwog CWludCBpOwogCi0JLyogVGhlIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSAnbWFzay0+cmFuZ2UnIGFy ZSBub3Qgc2V0IHNpbmNlCi0JICogZnVydGhlciBvcGVyYXRpb25zIG9uICdkc3QnIG9ubHkgdXNl cyBjb250ZW50cyB3aXRoaW4KLQkgKiAnbWFzay0+cmFuZ2UnLgorCS8qIElmICdmdWxsJyBpcyB0 cnVlIHRoZW4gYWxsIG9mICdkc3QnIGlzIGZ1bGx5IGluaXRpYWxpemVkLiBPdGhlcndpc2UsCisJ ICogaWYgJ2Z1bGwnIGlzIGZhbHNlIHRoZSBtZW1vcnkgb3V0c2lkZSBvZiB0aGUgJ21hc2stPnJh bmdlJyBpcyBsZWZ0CisJICogdW5pbml0aWFsaXplZC4gVGhpcyBjYW4gYmUgdXNlZCBhcyBhbiBv cHRpbWl6YXRpb24gd2hlbiBmdXJ0aGVyCisJICogb3BlcmF0aW9ucyBvbiAnZHN0JyBvbmx5IHVz ZSBjb250ZW50cyB3aXRoaW4gJ21hc2stPnJhbmdlJy4KIAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwg cmFuZ2Vfbl9ieXRlcygmbWFzay0+cmFuZ2UpOyBpICs9IHNpemVvZihsb25nKSkKKwlmb3IgKGkg PSAwOyBpIDwgbGVuOyBpICs9IHNpemVvZihsb25nKSkKIAkJKmQrKyA9ICpzKysgJiAqbSsrOwog fQogCkBAIC00MzYsNyArNDM5LDcgQEAgc3RhdGljIHN0cnVjdCBzd19mbG93ICptYXNrZWRfZmxv d19sb29rdXAoc3RydWN0IHRhYmxlX2luc3RhbmNlICp0aSwKIAl1MzIgaGFzaDsKIAlzdHJ1Y3Qg c3dfZmxvd19rZXkgbWFza2VkX2tleTsKIAotCW92c19mbG93X21hc2tfa2V5KCZtYXNrZWRfa2V5 LCB1bm1hc2tlZCwgbWFzayk7CisJb3ZzX2Zsb3dfbWFza19rZXkoJm1hc2tlZF9rZXksIHVubWFz a2VkLCBmYWxzZSwgbWFzayk7CiAJaGFzaCA9IGZsb3dfaGFzaCgmbWFza2VkX2tleSwga2V5X3N0 YXJ0LCBrZXlfZW5kKTsKIAloZWFkID0gZmluZF9idWNrZXQodGksIGhhc2gpOwogCWhsaXN0X2Zv cl9lYWNoX2VudHJ5X3JjdShmbG93LCBoZWFkLCBoYXNoX25vZGVbdGktPm5vZGVfdmVyXSkgewpk aWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUuaCBiL25ldC9vcGVudnN3aXRj aC9mbG93X3RhYmxlLmgKaW5kZXggYmFhZWIxMC4uODJlNjRhOSAxMDA2NDQKLS0tIGEvbmV0L29w ZW52c3dpdGNoL2Zsb3dfdGFibGUuaAorKysgYi9uZXQvb3BlbnZzd2l0Y2gvZmxvd190YWJsZS5o CkBAIC03OSw1ICs3OSw1IEBAIGJvb2wgb3ZzX2Zsb3dfY21wX3VubWFza2VkX2tleShjb25zdCBz dHJ1Y3Qgc3dfZmxvdyAqZmxvdywKIAkJCSAgICAgICBzdHJ1Y3Qgc3dfZmxvd19tYXRjaCAqbWF0 Y2gpOwogCiB2b2lkIG92c19mbG93X21hc2tfa2V5KHN0cnVjdCBzd19mbG93X2tleSAqZHN0LCBj b25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnNyYywKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBzd19m bG93X21hc2sgKm1hc2spOworCQkgICAgICAgYm9vbCBmdWxsLCBjb25zdCBzdHJ1Y3Qgc3dfZmxv d19tYXNrICptYXNrKTsKICNlbmRpZiAvKiBmbG93X3RhYmxlLmggKi8KLS0gCjIuMS4wCgoKRnJv bSA2YzRkZWE3YWUyN2NkNWU0MmJmMjE3NjIxMTA3MGM2ODQ2ODkzMTI5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBXaWxzb24gS29rIDx3a29rQGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRh dGU6IFR1ZSwgMjIgU2VwIDIwMTUgMjE6NDA6MjIgLTA3MDAKU3ViamVjdDogW1BBVENIIDgvOF0g ZmliX3J1bGVzOiBmaXggZmliIHJ1bGUgZHVtcHMgYWNyb3NzIG11bHRpcGxlIHNrYnMKClsgVXBz dHJlYW0gY29tbWl0IDQxZmMwMTQzMzJkOTFlZTkwYzMyODQwYmYxNjFmOTY4NWI3ZmJmMmIgXQoK ZHVtcF9ydWxlcyByZXR1cm5zIHNrYiBsZW5ndGggYW5kIG5vdCBlcnJvci4KQnV0IHdoZW4gZmFt aWx5ID09IEFGX1VOU1BFQywgdGhlIGNhbGxlciBvZiBkdW1wX3J1bGVzCmFzc3VtZXMgdGhhdCBp dCByZXR1cm5zIGFuIGVycm9yLiBIZW5jZSwgd2hlbiBmYW1pbHkgPT0gQUZfVU5TUEVDLAp3ZSBj b250aW51ZSB0cnlpbmcgdG8gZHVtcCBvbiAtRU1TR1NJWkUgZXJyb3JzIHJlc3VsdGluZyBpbgpp bmNvcnJlY3QgZHVtcCBpZHggY2FycmllZCBiZXR3ZWVuIHNrYnMgYmVsb25naW5nIHRvIHRoZSBz YW1lIGR1bXAuClRoaXMgcmVzdWx0cyBpbiBmaWIgcnVsZSBkdW1wIGFsd2F5cyBvbmx5IGR1bXBp bmcgcnVsZXMgdGhhdCBmaXQKaW50byB0aGUgZmlyc3Qgc2tiLgoKVGhpcyBwYXRjaCBmaXhlcyBk dW1wX3J1bGVzIHRvIHJldHVybiBlcnJvciBzbyB0aGF0IHdlIGV4aXQgY29ycmVjdGx5CmFuZCBp ZHggaXMgY29ycmVjdGx5IG1haW50YWluZWQgYmV0d2VlbiBza2JzIHRoYXQgYXJlIHBhcnQgb2Yg dGhlCnNhbWUgZHVtcC4KClNpZ25lZC1vZmYtYnk6IFdpbHNvbiBLb2sgPHdrb2tAY3VtdWx1c25l dHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0 d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L2NvcmUvZmliX3J1bGVzLmMgfCAxNCArKysrKysrKystLS0tLQogMSBm aWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvY29yZS9maWJfcnVsZXMuYyBiL25ldC9jb3JlL2ZpYl9ydWxlcy5jCmluZGV4IDE4NWMz NDEuLmFlZWRjM2EgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jCisrKyBiL25ldC9j b3JlL2ZpYl9ydWxlcy5jCkBAIC02MjEsMTUgKzYyMSwxNyBAQCBzdGF0aWMgaW50IGR1bXBfcnVs ZXMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiLAogewog CWludCBpZHggPSAwOwogCXN0cnVjdCBmaWJfcnVsZSAqcnVsZTsKKwlpbnQgZXJyID0gMDsKIAog CXJjdV9yZWFkX2xvY2soKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShydWxlLCAmb3BzLT5y dWxlc19saXN0LCBsaXN0KSB7CiAJCWlmIChpZHggPCBjYi0+YXJnc1sxXSkKIAkJCWdvdG8gc2tp cDsKIAotCQlpZiAoZmliX25sX2ZpbGxfcnVsZShza2IsIHJ1bGUsIE5FVExJTktfQ0IoY2ItPnNr YikucG9ydGlkLAotCQkJCSAgICAgY2ItPm5saC0+bmxtc2dfc2VxLCBSVE1fTkVXUlVMRSwKLQkJ CQkgICAgIE5MTV9GX01VTFRJLCBvcHMpIDwgMCkKKwkJZXJyID0gZmliX25sX2ZpbGxfcnVsZShz a2IsIHJ1bGUsIE5FVExJTktfQ0IoY2ItPnNrYikucG9ydGlkLAorCQkJCSAgICAgICBjYi0+bmxo LT5ubG1zZ19zZXEsIFJUTV9ORVdSVUxFLAorCQkJCSAgICAgICBOTE1fRl9NVUxUSSwgb3BzKTsK KwkJaWYgKGVycikKIAkJCWJyZWFrOwogc2tpcDoKIAkJaWR4Kys7CkBAIC02MzgsNyArNjQwLDcg QEAgc2tpcDoKIAljYi0+YXJnc1sxXSA9IGlkeDsKIAlydWxlc19vcHNfcHV0KG9wcyk7CiAKLQly ZXR1cm4gc2tiLT5sZW47CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBmaWJfbmxfZHVt cHJ1bGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sgKmNiKQpA QCAtNjU0LDcgKzY1Niw5IEBAIHN0YXRpYyBpbnQgZmliX25sX2R1bXBydWxlKHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAkJaWYgKG9wcyA9PSBOVUxM KQogCQkJcmV0dXJuIC1FQUZOT1NVUFBPUlQ7CiAKLQkJcmV0dXJuIGR1bXBfcnVsZXMoc2tiLCBj Yiwgb3BzKTsKKwkJZHVtcF9ydWxlcyhza2IsIGNiLCBvcHMpOworCisJCXJldHVybiBza2ItPmxl bjsKIAl9CiAKIAlyY3VfcmVhZF9sb2NrKCk7Ci0tIAoyLjEuMAoK ----Next_Part(Mon_Sep_28_21_54_08_2015_173)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_318.mbox" RnJvbSA3ODZjODYyODFjZWY4YTQ0YTNhNDlkYjliY2JiNGRkMDQwMzljODAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBodWFpYmluIFdhbmcgPGh1YWliaW4ud2FuZ0A2d2luZC5jb20+ CkRhdGU6IFR1ZSwgMjUgQXVnIDIwMTUgMTY6MjA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzEyXSBpcDZfZ3JlOiByZWxlYXNlIGNhY2hlZCBkc3Qgb24gdHVubmVsIHJlbW92YWwKClsgVXBz dHJlYW0gY29tbWl0IGQ0MjU3Mjk1YmExYjM4OWM2OTNiNzlkZTg1N2E5NmU0YjdjZDhhYzAgXQoK V2hlbiBhIHR1bm5lbCBpcyBkZWxldGVkLCB0aGUgY2FjaGVkIGRzdCBlbnRyeSBzaG91bGQgYmUg cmVsZWFzZWQuCgpUaGlzIHByb2JsZW0gbWF5IHByZXZlbnQgdGhlIHJlbW92YWwgb2YgYSBuZXRu cyAoc2VlbiB3aXRoIGEgeC1uZXRucyBJUHY2CmdyZSB0dW5uZWwpOgogIHVucmVnaXN0ZXJfbmV0 ZGV2aWNlOiB3YWl0aW5nIGZvciBsbyB0byBiZWNvbWUgZnJlZS4gVXNhZ2UgY291bnQgPSAzCgpD QzogRG1pdHJ5IEtvemxvdiA8eGViQG1haWwucnU+CkZpeGVzOiBjMTJiMzk1YTQ2NjQgKCJncmU6 IFN1cHBvcnQgR1JFIG92ZXIgSVB2NiIpClNpZ25lZC1vZmYtYnk6IGh1YWliaW4gV2FuZyA8aHVh aWJpbi53YW5nQDZ3aW5kLmNvbT4KU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNv bGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMg Yi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggMGUzMmQyZS4uZmU4NWQ0NiAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMzYxLDYgKzM2 MSw3IEBAIHN0YXRpYyB2b2lkIGlwNmdyZV90dW5uZWxfdW5pbml0KHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJc3RydWN0IGlwNmdyZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2 Z3JlX25ldF9pZCk7CiAKIAlpcDZncmVfdHVubmVsX3VubGluayhpZ24sIHQpOworCWlwNl90bmxf ZHN0X3Jlc2V0KHQpOwogCWRldl9wdXQoZGV2KTsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDMzMDQ0 OGVlMDk3NTVmYTJhNzQ2ZTIxNjVhNTllYTk3MWE3MTc5ZDUgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEV1Z2VuZSBTaGF0b2toaW4gPGV1Z2VuZS5zaGF0b2toaW5Acm9zYWxhYi5ydT4K RGF0ZTogTW9uLCAyNCBBdWcgMjAxNSAyMzoxMzo0MiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MTJdIHVzYm5ldDogR2V0IEVWRU5UX05PX1JVTlRJTUVfUE0gYml0IGJlZm9yZSBpdCBpcwogY2xl YXJlZAoKWyBVcHN0cmVhbSBjb21taXQgZjUwNzkxYWMxYWNhMWFjMWIwMzcwZDYyMzk3YjQzZTlm ODMxNDIxYSBdCgpJdCBpcyBuZWVkZWQgdG8gY2hlY2sgRVZFTlRfTk9fUlVOVElNRV9QTSBiaXQg b2YgZGV2LT5mbGFncyBpbgp1c2JuZXRfc3RvcCgpLCBidXQgaXRzIHZhbHVlIHNob3VsZCBiZSBy ZWFkIGJlZm9yZSBpdCBpcyBjbGVhcmVkCndoZW4gZGV2LT5mbGFncyBpcyBzZXQgdG8gMC4KClRo ZSBwcm9ibGVtIHdhcyBzcG90dGVkIGFuZCB0aGUgZml4IHdhcyBwcm92aWRlZCBieQpPbGl2ZXIg TmV1a3VtIDxvbmV1a3VtQHN1c2UuZGU+LgoKU2lnbmVkLW9mZi1ieTogRXVnZW5lIFNoYXRva2hp biA8ZXVnZW5lLnNoYXRva2hpbkByb3NhbGFiLnJ1PgpBY2tlZC1ieTogT2xpdmVyIE5ldWt1bSA8 b25ldWt1bUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi91c2JuZXQuYyB8IDcgKysrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMgYi9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMK aW5kZXggZTdlZDI1MS4uN2E1OTg5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3VzYm5l dC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi91c2JuZXQuYwpAQCAtNzc5LDcgKzc3OSw3IEBAIGlu dCB1c2JuZXRfc3RvcCAoc3RydWN0IG5ldF9kZXZpY2UgKm5ldCkKIHsKIAlzdHJ1Y3QgdXNibmV0 CQkqZGV2ID0gbmV0ZGV2X3ByaXYobmV0KTsKIAlzdHJ1Y3QgZHJpdmVyX2luZm8JKmluZm8gPSBk ZXYtPmRyaXZlcl9pbmZvOwotCWludAkJCXJldHZhbCwgcG07CisJaW50CQkJcmV0dmFsLCBwbSwg bXBuOwogCiAJY2xlYXJfYml0KEVWRU5UX0RFVl9PUEVOLCAmZGV2LT5mbGFncyk7CiAJbmV0aWZf c3RvcF9xdWV1ZSAobmV0KTsKQEAgLTgxMCw2ICs4MTAsOCBAQCBpbnQgdXNibmV0X3N0b3AgKHN0 cnVjdCBuZXRfZGV2aWNlICpuZXQpCiAKIAl1c2JuZXRfcHVyZ2VfcGF1c2VkX3J4cShkZXYpOwog CisJbXBuID0gIXRlc3RfYW5kX2NsZWFyX2JpdChFVkVOVF9OT19SVU5USU1FX1BNLCAmZGV2LT5m bGFncyk7CisKIAkvKiBkZWZlcnJlZCB3b3JrICh0YXNrLCB0aW1lciwgc29mdGlycSkgbXVzdCBh bHNvIHN0b3AuCiAJICogY2FuJ3QgZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSB1bnRpbCB3ZSBkcm9w IHJ0bmwgKGxhdGVyKSwKIAkgKiBlbHNlIHdvcmtlcnMgY291bGQgZGVhZGxvY2s7IHNvIG1ha2Ug d29ya2VycyBhIE5PUC4KQEAgLTgyMCw4ICs4MjIsNyBAQCBpbnQgdXNibmV0X3N0b3AgKHN0cnVj dCBuZXRfZGV2aWNlICpuZXQpCiAJaWYgKCFwbSkKIAkJdXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNl KGRldi0+aW50Zik7CiAKLQlpZiAoaW5mby0+bWFuYWdlX3Bvd2VyICYmCi0JICAgICF0ZXN0X2Fu ZF9jbGVhcl9iaXQoRVZFTlRfTk9fUlVOVElNRV9QTSwgJmRldi0+ZmxhZ3MpKQorCWlmIChpbmZv LT5tYW5hZ2VfcG93ZXIgJiYgbXBuKQogCQlpbmZvLT5tYW5hZ2VfcG93ZXIoZGV2LCAwKTsKIAll bHNlCiAJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZShkZXYtPmludGYpOwotLSAKMi4xLjAKCgpG cm9tIGFhYTgyYzYzZTEwMWU5OWM0ZWZhMjUzNzY5NWMyNjBhMjI0NWYxZDcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ CkRhdGU6IFRodSwgMyBTZXAgMjAxNSAwMDoyOTowNyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMv MTJdIGlwdjY6IGZpeCBleHRoZHJzIG9mZmxvYWQgcmVnaXN0cmF0aW9uIGluIG91dF9ydCBwYXRo CgpbIFVwc3RyZWFtIGNvbW1pdCBlNDFiMGJlZGJhMDI5M2I5ZTFlOGQxZThlZDU1MzEwNGI5Njkz NjU2IF0KCldlIHByZXZpb3VzbHkgcmVnaXN0ZXIgSVBQUk9UT19ST1VUSU5HIG9mZmxvYWQgdW5k ZXIgaW5ldDZfYWRkX29mZmxvYWQoKSwKYnV0IGluIGVycm9yIHBhdGgsIHdlIHRyeSB0byB1bnJl Z2lzdGVyIGl0IHdpdGggaW5ldF9kZWxfb2ZmbG9hZCgpLiBUaGlzCmRvZXNuJ3Qgc2VlbSBjb3Jy ZWN0LCBpdCBzaG91bGQgYWN0dWFsbHkgYmUgaW5ldDZfZGVsX29mZmxvYWQoKSwgYWxzbwppcHY2 X2V4dGhkcnNfb2ZmbG9hZF9leGl0KCkgZnJvbSB0aGF0IGNvbW1pdCBzZWVtcyByYXRoZXIgaW5j b3JyZWN0IChpdAphbHNvIHVzZXMgcnRoZHJfb2ZmbG9hZCB0d2ljZSksIGJ1dCBpdCBnb3QgcmVt b3ZlZCBlbnRpcmVseSBsYXRlciBvbi4KCkZpeGVzOiAzMzM2Mjg4YTlmZWEgKCJpcHY2OiBTd2l0 Y2ggdG8gdXNpbmcgbmV3IG9mZmxvYWQgaW5mcmFzdHJ1Y3R1cmUuIikKU2lnbmVkLW9mZi1ieTog RGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2V4dGhkcnNf b2ZmbG9hZC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvZXh0aGRyc19vZmZsb2FkLmMgYi9uZXQvaXB2 Ni9leHRoZHJzX29mZmxvYWQuYwppbmRleCA0NDdhN2ZiLi5mNWUyYmExIDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9leHRoZHJzX29mZmxvYWQuYworKysgYi9uZXQvaXB2Ni9leHRoZHJzX29mZmxvYWQu YwpAQCAtMzYsNiArMzYsNiBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIAogb3V0X3J0OgotCWluZXRf ZGVsX29mZmxvYWQoJnJ0aGRyX29mZmxvYWQsIElQUFJPVE9fUk9VVElORyk7CisJaW5ldDZfZGVs X29mZmxvYWQoJnJ0aGRyX29mZmxvYWQsIElQUFJPVE9fUk9VVElORyk7CiAJZ290byBvdXQ7CiB9 Ci0tIAoyLjEuMAoKCkZyb20gZjg2NTk0Y2JlMjUzMWNjNDQwYjkyNzBkNzcxNGUxNzhjMWFmNGQx NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVs QGFybS5saW51eC5vcmcudWs+CkRhdGU6IFdlZCwgMiBTZXAgMjAxNSAxNzoyNDoxNCArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDQvMTJdIG5ldDogZmVjOiBjbGVhciByZWNlaXZlIGludGVycnVwdHMg YmVmb3JlIHByb2Nlc3NpbmcgYQogcGFja2V0CgpbIFVwc3RyZWFtIGNvbW1pdCBlZDYzZjFkY2Q1 Nzg4ZDM2Zjk0MmZiY2NlMzUwNzQyMzg1ZTNlMThjIF0KClRoZSBwYXRjaCBqdXN0IHRvIHJlLXN1 Ym1pdCB0aGUgcGF0Y2ggImRiMzQyMWMxMTRjZmE2MzI2IiBiZWNhdXNlIHRoZQpwYXRjaCAiNGQ0 OTRjZGM5MmIzYjlhMCIgcmVtb3ZlIHRoZSBjaGFuZ2UuCgpDbGVhciBhbnkgcGVuZGluZyByZWNl aXZlIGludGVycnVwdCBiZWZvcmUgd2UgcHJvY2VzcyBhIHBlbmRpbmcgcGFja2V0LgpUaGlzIGhl bHBzIHRvIGF2b2lkIGFueSBzcHVyaW91cyBpbnRlcnJ1cHRzIGJlaW5nIHJhaXNlZCBhZnRlciB3 ZSBoYXZlCmZ1bGx5IGNsZWFuZWQgdGhlIHJlY2VpdmUgcmluZywgd2hpbGUgc3RpbGwgYWxsb3dp bmcgYW4gaW50ZXJydXB0IHRvIGJlCnJhaXNlZCBpZiB3ZSByZWNlaXZlIGFub3RoZXIgcGFja2V0 LgoKVGhlIHBvc2l0aW9uIG9mIHRoaXMgaXMgY3JpdGljYWw6IHdlIG11c3QgZG8gdGhpcyBwcmlv ciB0byByZWFkaW5nIHRoZQpuZXh0IHBhY2tldCBzdGF0dXMgdG8gYXZvaWQgcG90ZW50aWFsbHkg ZHJvcHBpbmcgYW4gaW50ZXJydXB0IHdoZW4gYQpwYWNrZXQgaXMgc3RpbGwgcGVuZGluZy4KCkFj a2VkLWJ5OiBGdWdhbmcgRHVhbiA8QjM4NjExQGZyZWVzY2FsZS5jb20+ClNpZ25lZC1vZmYtYnk6 IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm0ubGludXgub3JnLnVrPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9m ZWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKaW5k ZXggOTZiYTIzZS4uNTZmYTNkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl ZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Y19tYWluLmMKQEAgLTEzOTAsNiArMTM5MCw3IEBAIGZlY19lbmV0X3J4X3F1ZXVlKHN0cnVjdCBu ZXRfZGV2aWNlICpuZGV2LCBpbnQgYnVkZ2V0LCB1MTYgcXVldWVfaWQpCiAJCWlmICgoc3RhdHVz ICYgQkRfRU5FVF9SWF9MQVNUKSA9PSAwKQogCQkJbmV0ZGV2X2VycihuZGV2LCAicmN2IGlzIG5v dCArbGFzdFxuIik7CiAKKwkJd3JpdGVsKEZFQ19FTkVUX1JYRiwgZmVwLT5od3AgKyBGRUNfSUVW RU5UKTsKIAogCQkvKiBDaGVjayBmb3IgZXJyb3JzLiAqLwogCQlpZiAoc3RhdHVzICYgKEJEX0VO RVRfUlhfTEcgfCBCRF9FTkVUX1JYX1NIIHwgQkRfRU5FVF9SWF9OTyB8Ci0tIAoyLjEuMAoKCkZy b20gZDliMGVmOTBkOWVlZGRiOTZkNzJhMGE3NTc5OWE2ZjFmNzY4YjE4OCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQXRzdXNoaSBOZW1vdG8gPG5lbW90b0B0b3NoaWJhLXRvcHMuY28u anA+CkRhdGU6IFdlZCwgMiBTZXAgMjAxNSAxNzo0OToyOSArMDkwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMTJdIG5ldDogZXRoOiBhbHRlcmE6IGZpeCBuYXBpIHBvbGxfbGlzdCBjb3JydXB0aW9uCgpb IFVwc3RyZWFtIGNvbW1pdCA0NTQ4YTY5N2U0OTY5ZDY5NTA0N2NlYmQ2ZDlhZjVlMmY2Y2M3Mjhl IF0KCnRzZV9wb2xsKCkgY2FsbHMgX19uYXBpX2NvbXBsZXRlKCkgd2l0aCBpcnEgZW5hYmxlZC4g IFRoaXMgbGVhZHMgbmFwaQpwb2xsX2xpc3QgY29ycnVwdGlvbiBhbmQgbWF5IHN0b3AgYWxsIG5h cGkgZHJpdmVycyB3b3JraW5nLgpVc2UgbmFwaV9jb21wbGV0ZSgpIGluc3RlYWQgb2YgX19uYXBp X2NvbXBsZXRlKCkuCgpTaWduZWQtb2ZmLWJ5OiBBdHN1c2hpIE5lbW90byA8bmVtb3RvQHRvc2hp YmEtdG9wcy5jby5qcD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21h aW4uYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2Vf bWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jCmlu ZGV4IDRlZmM0MzUuLjJlYjY0MDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Fs dGVyYS9hbHRlcmFfdHNlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEv YWx0ZXJhX3RzZV9tYWluLmMKQEAgLTUwMSw4ICs1MDEsNyBAQCBzdGF0aWMgaW50IHRzZV9wb2xs KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAlpZiAocnhjb21wbGV0ZSA+ PSBidWRnZXQgfHwgdHhjb21wbGV0ZSA+IDApCiAJCXJldHVybiByeGNvbXBsZXRlOwogCi0JbmFw aV9ncm9fZmx1c2gobmFwaSwgZmFsc2UpOwotCV9fbmFwaV9jb21wbGV0ZShuYXBpKTsKKwluYXBp X2NvbXBsZXRlKG5hcGkpOwogCiAJbmV0ZGV2X2RiZyhwcml2LT5kZXYsCiAJCSAgICJOQVBJIENv bXBsZXRlLCBkaWQgJWQgcGFja2V0cyB3aXRoIGJ1ZGdldCAlZFxuIiwKLS0gCjIuMS4wCgoKRnJv bSA5N2FhNzlhNDYyZTFmNjQ4NjFlYjZiYjc1ZjIyMjBiZmFhNGJiNzgwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIExhaW5nIDxyaWNoYXJkLmxhaW5nQGFsbGllZHRlbGVz aXMuY28ubno+CkRhdGU6IFRodSwgMyBTZXAgMjAxNSAxMzo1MjozMSArMTIwMApTdWJqZWN0OiBb UEFUQ0ggMDYvMTJdIG5ldC9pcHY2OiBDb3JyZWN0IFBJTTYgbXJ0X2xvY2sgaGFuZGxpbmcKClsg VXBzdHJlYW0gY29tbWl0IDI1YjRhNDRjMTljODNkOThlOGMwODA3YTdlZGUwN2MxZjI4ZWFiOGIg XQoKSW4gdGhlIElQdjYgbXVsdGljYXN0IHJvdXRpbmcgY29kZSB0aGUgbXJ0X2xvY2sgd2FzIG5v dCBiZWluZyByZWxlYXNlZApjb3JyZWN0bHkgaW4gdGhlIE1GQyBpdGVyYXRvciwgYXMgYSByZXN1 bHQgYWRkaW5nIG9yIGRlbGV0aW5nIGEgTUlGIHdvdWxkCmNhdXNlIGEgaGFuZyBiZWNhdXNlIHRo ZSBtcnRfbG9jayBjb3VsZCBub3QgYmUgYWNxdWlyZWQuCgpUaGlzIGZpeCBpcyBhIGNvcHkgb2Yg dGhlIGNvZGUgZm9yIHRoZSBJUHY0IGNhc2UgYW5kIGVuc3VyZXMgdGhhdCB0aGUgbG9jawppcyBy ZWxlYXNlZCBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIExhaW5nIDxyaWNoYXJk LmxhaW5nQGFsbGllZHRlbGVzaXMuY28ubno+CkFja2VkLWJ5OiBDb25nIFdhbmcgPGN3YW5nQHR3 b3BlbnNvdXJjZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZtci5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2 bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggMWEwMWQ3OS4uMGQ1ODU0MiAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC01NTIsNyArNTUy LDcgQEAgc3RhdGljIHZvaWQgaXBtcl9tZmNfc2VxX3N0b3Aoc3RydWN0IHNlcV9maWxlICpzZXEs IHZvaWQgKnYpCiAKIAlpZiAoaXQtPmNhY2hlID09ICZtcnQtPm1mYzZfdW5yZXNfcXVldWUpCiAJ CXNwaW5fdW5sb2NrX2JoKCZtZmNfdW5yZXNfbG9jayk7Ci0JZWxzZSBpZiAoaXQtPmNhY2hlID09 IG1ydC0+bWZjNl9jYWNoZV9hcnJheSkKKwllbHNlIGlmIChpdC0+Y2FjaGUgPT0gJm1ydC0+bWZj Nl9jYWNoZV9hcnJheVtpdC0+Y3RdKQogCQlyZWFkX3VubG9jaygmbXJ0X2xvY2spOwogfQogCi0t IAoyLjEuMAoKCkZyb20gYmQyZGU4Njc2MzBkMjg1MGUzNDQ4MjhiZTE1MTdlM2NmMWMxMzU0ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxs aUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMDowNjo0MSAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggMDcvMTJdIG5ldDogZHNhOiBiY21fc2YyOiBGaXggNjQtYml0cyByZWdpc3RlciB3 cml0ZXMKClsgVXBzdHJlYW0gY29tbWl0IDAzNjc5YTE0NzM5YTBkNGMxNGI1MmJhNjVhNjlmZjU1 M2JmYmE3M2IgXQoKVGhlIG1hY3JvIHRvIHdyaXRlIDY0LWJpdHMgcXVhbnRpdGllcyB0byB0aGUg MzItYml0cyByZWdpc3RlciBzd2FwcGVkCnRoZSB2YWx1ZSBhbmQgb2Zmc2V0cyBhcmd1bWVudHMs IHdlIHdhbnQgdG8gcHJlc2VydmUgdGhlIG9yZGVyaW5nIG9mIHRoZQphcmd1bWVudHMgd2l0aCBy ZXNwZWN0IHRvIGhvdyB3cml0ZWwoKSBpcyBpbXBsZW1lbnRlZCBmb3IgaW5zdGFuY2U6CnZhbHVl IGZpcnN0LCBvZmZzZXQvYmFzZSBzZWNvbmQuCgpGaXhlczogMjQ2ZDdmNzczYzEzICgibmV0OiBk c2E6IGFkZCBCcm9hZGNvbSBTRjIgc3dpdGNoIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3Jp YW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVml2aWVuIERp ZGVsb3QgPHZpdmllbi5kaWRlbG90QHNhdm9pcmZhaXJlbGludXguY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQv ZHNhL2JjbV9zZjIuaCB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5oIGIv ZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuaAppbmRleCBlZTlmNjUwLi4zZWNmZGE4IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5oCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iY21f c2YyLmgKQEAgLTExMCw4ICsxMTAsOCBAQCBzdGF0aWMgaW5saW5lIHU2NCBuYW1lIyNfcmVhZHEo c3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgdTMyIG9mZikJXAogCXNwaW5fdW5sb2NrKCZwcml2 LT5pbmRpcl9sb2NrKTsJCQkJCVwKIAlyZXR1cm4gKHU2NClpbmRpciA8PCAzMiB8IGRpcjsJCQkJ CVwKIH0JCQkJCQkJCQlcCi1zdGF0aWMgaW5saW5lIHZvaWQgbmFtZSMjX3dyaXRlcShzdHJ1Y3Qg YmNtX3NmMl9wcml2ICpwcml2LCB1MzIgb2ZmLAlcCi0JCQkJCQkJdTY0IHZhbCkJXAorc3RhdGlj IGlubGluZSB2b2lkIG5hbWUjI193cml0ZXEoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgdTY0 IHZhbCwJXAorCQkJCQkJCXUzMiBvZmYpCVwKIHsJCQkJCQkJCQlcCiAJc3Bpbl9sb2NrKCZwcml2 LT5pbmRpcl9sb2NrKTsJCQkJCVwKIAlyZWdfd3JpdGVsKHByaXYsIHVwcGVyXzMyX2JpdHModmFs KSwgUkVHX0RJUl9EQVRBX1dSSVRFKTsJXAotLSAKMi4xLjAKCgpGcm9tIDFiNDQ3MDViZTBiYzcx ZWI1OWUzODBiMzFmYTgyNGE0ZTdkNjA3ZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwgMTAgU2Vw IDIwMTUgMjA6MDU6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA4LzEyXSBuZXRsaW5rLCBtbWFw OiB0cmFuc2Zvcm0gbW1hcCBza2IgaW50byBmdWxsIHNrYiBvbiB0YXBzCgpbIFVwc3RyZWFtIGNv bW1pdCAxODUzYzk0OTY0NjAwNWI1OTU5YzQ4M2JlY2RlODY2MDhmNTQ4ZjI0IF0KCktlbi1pY2hp cm91IHJlcG9ydGVkIHRoYXQgcnVubmluZyBuZXRsaW5rIGluIG1tYXAgbW9kZSBmb3IgcmVjZWl2 ZSBpbgpjb21iaW5hdGlvbiB3aXRoIG5sbW9uIHdpbGwgdGhyb3cgYSBOVUxMIHBvaW50ZXIgZGVy ZWZlcmVuY2UgaW4KX19rZnJlZV9za2IoKSBvbiBubG1vbl94bWl0KCksIGluIG15IGNhc2UgSSBj YW4gYWxzbyB0cmlnZ2VyIGFuICJ1bmFibGUKdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVz dCIuIFRoZSBwcm9ibGVtIGlzIHRoZSBza2JfY2xvbmUoKSBpbgpfX25ldGxpbmtfZGVsaXZlcl90 YXBfc2tiKCkgZm9yIHNrYnMgdGhhdCBhcmUgbW1hcGVkLgoKSS5lLiB0aGUgY2xvbmVkIHNrYiBk b2Vzbid0IGhhdmUgYSBkZXN0cnVjdG9yLCB3aGVyZWFzIHRoZSBtbWFwIG5ldGxpbmsKc2tiIGhh cyBpdCBwb2ludGVkIHRvIG5ldGxpbmtfc2tiX2Rlc3RydWN0b3IoKSwgc2V0IGluIHRoZSBoYW5k bGVyCm5ldGxpbmtfcmluZ19zZXR1cF9za2IoKS4gVGhlcmUsIHNrYi0+aGVhZCBpcyBiZWluZyBz ZXQgdG8gTlVMTCwgc28KdGhhdCBpbiBzdWNoIGNhc2VzLCBfX2tmcmVlX3NrYigpIGRvZXNuJ3Qg cGVyZm9ybSBhIHNrYl9yZWxlYXNlX2RhdGEoKQp2aWEgc2tiX3JlbGVhc2VfYWxsKCksIHdoZXJl IHNrYi0+aGVhZCBpcyBwb3NzaWJseSBiZWluZyBmcmVlZCB0aHJvdWdoCmtmcmVlKGhlYWQpIGlu dG8gc2xhYiBhbGxvY2F0b3IsIGFsdGhvdWdoIG5ldGxpbmsgbW1hcCBza2ItPmhlYWQgcG9pbnRz CnRvIHRoZSBtbWFwIGJ1ZmZlci4gU2ltaWxhcmx5LCB0aGUgc2FtZSBoYXMgdG8gYmUgZG9uZSBh bHNvIGZvciBsYXJnZQpuZXRsaW5rIHNrYnMgd2hlcmUgdGhlIGRhdGEgYXJlYSBpcyB2bWFsbG9j ZWQuIFRoZXJlZm9yZSwgYXMgZGlzY3Vzc2VkLAptYWtlIGEgY29weSBmb3IgdGhlc2UgcmF0aGVy IHJhcmUgY2FzZXMgZm9yIG5vdy4gVGhpcyBmaXhlcyB0aGUgaXNzdWUKb24gbXkgYW5kIEtlbi1p Y2hpcm91J3MgdGVzdC1jYXNlcy4KClJlZmVyZW5jZTogaHR0cDovL3RocmVhZC5nbWFuZS5vcmcv Z21hbmUubGludXgubmV0d29yay8zNzExMjkKRml4ZXM6IGJjYmRlMGQ0NDllZCAoIm5ldDogbmV0 bGluazogdmlydHVhbCB0YXAgZGV2aWNlIG1hbmFnZW1lbnQiKQpSZXBvcnRlZC1ieTogS2VuLWlj aGlyb3UgTUFUU1VaQVdBIDxjaGFtYWtlbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhbmll bCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClRlc3RlZC1ieTogS2VuLWljaGlyb3Ug TUFUU1VaQVdBIDxjaGFtYWtlbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMg fCAzMCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxp bmsuaCB8ICA5ICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25l dC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCBjODJiMmUzLi5kYTBiNzNhIDEwMDY0NAotLS0g YS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5j CkBAIC0xMzMsNiArMTMzLDI0IEBAIHN0YXRpYyBpbmxpbmUgdTMyIG5ldGxpbmtfZ3JvdXBfbWFz ayh1MzIgZ3JvdXApCiAJcmV0dXJuIGdyb3VwID8gMSA8PCAoZ3JvdXAgLSAxKSA6IDA7CiB9CiAK K3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbmV0bGlua190b19mdWxsX3NrYihjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAorCQkJCQkgICBnZnBfdCBnZnBfbWFzaykKK3sKKwl1bnNpZ25lZCBpbnQg bGVuID0gc2tiX2VuZF9vZmZzZXQoc2tiKTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqbmV3OworCisJbmV3 ID0gYWxsb2Nfc2tiKGxlbiwgZ2ZwX21hc2spOworCWlmIChuZXcgPT0gTlVMTCkKKwkJcmV0dXJu IE5VTEw7CisKKwlORVRMSU5LX0NCKG5ldykucG9ydGlkID0gTkVUTElOS19DQihza2IpLnBvcnRp ZDsKKwlORVRMSU5LX0NCKG5ldykuZHN0X2dyb3VwID0gTkVUTElOS19DQihza2IpLmRzdF9ncm91 cDsKKwlORVRMSU5LX0NCKG5ldykuY3JlZHMgPSBORVRMSU5LX0NCKHNrYikuY3JlZHM7CisKKwlt ZW1jcHkoc2tiX3B1dChuZXcsIGxlbiksIHNrYi0+ZGF0YSwgbGVuKTsKKwlyZXR1cm4gbmV3Owor fQorCiBpbnQgbmV0bGlua19hZGRfdGFwKHN0cnVjdCBuZXRsaW5rX3RhcCAqbnQpCiB7CiAJaWYg KHVubGlrZWx5KG50LT5kZXYtPnR5cGUgIT0gQVJQSFJEX05FVExJTkspKQpAQCAtMjE1LDcgKzIz MywxMSBAQCBzdGF0aWMgaW50IF9fbmV0bGlua19kZWxpdmVyX3RhcF9za2Ioc3RydWN0IHNrX2J1 ZmYgKnNrYiwKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAogCWRldl9ob2xkKGRldik7Ci0JbnNrYiA9 IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOworCisJaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBl ZChza2IpIHx8IGlzX3ZtYWxsb2NfYWRkcihza2ItPmhlYWQpKQorCQluc2tiID0gbmV0bGlua190 b19mdWxsX3NrYihza2IsIEdGUF9BVE9NSUMpOworCWVsc2UKKwkJbnNrYiA9IHNrYl9jbG9uZShz a2IsIEdGUF9BVE9NSUMpOwogCWlmIChuc2tiKSB7CiAJCW5za2ItPmRldiA9IGRldjsKIAkJbnNr Yi0+cHJvdG9jb2wgPSBodG9ucygodTE2KSBzay0+c2tfcHJvdG9jb2wpOwpAQCAtMjg3LDExICsz MDksNiBAQCBzdGF0aWMgdm9pZCBuZXRsaW5rX3Jjdl93YWtlKHN0cnVjdCBzb2NrICpzaykKIH0K IAogI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLXN0YXRpYyBib29sIG5ldGxpbmtfc2tiX2lz X21tYXBlZChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiBORVRMSU5LX0NC KHNrYikuZmxhZ3MgJiBORVRMSU5LX1NLQl9NTUFQRUQ7Ci19Ci0KIHN0YXRpYyBib29sIG5ldGxp bmtfcnhfaXNfbW1hcGVkKHN0cnVjdCBzb2NrICpzaykKIHsKIAlyZXR1cm4gbmxrX3NrKHNrKS0+ cnhfcmluZy5wZ192ZWMgIT0gTlVMTDsKQEAgLTgyOCw3ICs4NDUsNiBAQCBzdGF0aWMgdm9pZCBu ZXRsaW5rX3Jpbmdfc2V0X2NvcGllZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IpCiB9CiAKICNlbHNlIC8qIENPTkZJR19ORVRMSU5LX01NQVAgKi8KLSNkZWZpbmUgbmV0bGlu a19za2JfaXNfbW1hcGVkKHNrYikJZmFsc2UKICNkZWZpbmUgbmV0bGlua19yeF9pc19tbWFwZWQo c2spCWZhbHNlCiAjZGVmaW5lIG5ldGxpbmtfdHhfaXNfbW1hcGVkKHNrKQlmYWxzZQogI2RlZmlu ZSBuZXRsaW5rX21tYXAJCQlzb2NrX25vX21tYXAKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2Fm X25ldGxpbmsuaCBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaAppbmRleCBiMjBhMTczLi4zOTUx ODc0IDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKKysrIGIvbmV0L25ldGxp bmsvYWZfbmV0bGluay5oCkBAIC01Nyw2ICs1NywxNSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBu ZXRsaW5rX3NvY2sgKm5sa19zayhzdHJ1Y3Qgc29jayAqc2spCiAJcmV0dXJuIGNvbnRhaW5lcl9v Zihzaywgc3RydWN0IG5ldGxpbmtfc29jaywgc2spOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg bmV0bGlua19za2JfaXNfbW1hcGVkKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCit7CisjaWZk ZWYgQ09ORklHX05FVExJTktfTU1BUAorCXJldHVybiBORVRMSU5LX0NCKHNrYikuZmxhZ3MgJiBO RVRMSU5LX1NLQl9NTUFQRUQ7CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZiAvKiBDT05G SUdfTkVUTElOS19NTUFQICovCit9CisKIHN0cnVjdCBuZXRsaW5rX3RhYmxlIHsKIAlzdHJ1Y3Qg cmhhc2h0YWJsZQloYXNoOwogCXN0cnVjdCBobGlzdF9oZWFkCW1jX2xpc3Q7Ci0tIAoyLjEuMAoK CkZyb20gZmQ5MGNkNjg5YTFhOGQzYzI4YjAzYWIxZTRlNWVkNWM4ZmJkZDBmNyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVp dG5lckBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTAgU2VwIDIwMTUgMTc6MzE6MTUgLTAzMDAKU3Vi amVjdDogW1BBVENIIDA5LzEyXSBzY3RwOiBmaXggcmFjZSBvbiBwcm90b2NvbC9uZXRucyBpbml0 aWFsaXphdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgOGUyZDYxZTBhZWQyYjdjNGVjYjM1ODQ0ZmUw N2UwYjJiNzYyZGVlNCBdCgpDb25zaWRlciBzY3RwIG1vZHVsZSBpcyB1bmxvYWRlZCBhbmQgaXMg YmVpbmcgcmVxdWVzdGVkIGJlY2F1c2UgYW4gdXNlcgppcyBjcmVhdGluZyBhIHNjdHAgc29ja2V0 LgoKRHVyaW5nIGluaXRpYWxpemF0aW9uLCBzY3RwIHdpbGwgYWRkIHRoZSBuZXcgcHJvdG9jb2wg dHlwZSBhbmQgdGhlbgppbml0aWFsaXplIHBlcm5ldCBzdWJzeXM6CgogICAgICAgIHN0YXR1cyA9 IHNjdHBfdjRfcHJvdG9zd19pbml0KCk7CiAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAgICAg ICAgIGdvdG8gZXJyX3Byb3Rvc3dfaW5pdDsKCiAgICAgICAgc3RhdHVzID0gc2N0cF92Nl9wcm90 b3N3X2luaXQoKTsKICAgICAgICBpZiAoc3RhdHVzKQogICAgICAgICAgICAgICAgZ290byBlcnJf djZfcHJvdG9zd19pbml0OwoKICAgICAgICBzdGF0dXMgPSByZWdpc3Rlcl9wZXJuZXRfc3Vic3lz KCZzY3RwX25ldF9vcHMpOwoKVGhlIHByb2JsZW0gaXMgdGhhdCBhZnRlciB0aG9zZSBjYWxscyB0 byBzY3RwX3Z7NCw2fV9wcm90b3N3X2luaXQoKSwgaXQKaXMgcG9zc2libGUgZm9yIHVzZXJzcGFj ZSB0byBjcmVhdGUgU0NUUCBzb2NrZXRzIGxpa2UgaWYgdGhlIG1vZHVsZSBpcwphbHJlYWR5IGZ1 bGx5IGxvYWRlZC4gSWYgdGhhdCBoYXBwZW5zLCBvbmUgb2YgdGhlIHBvc3NpYmxlIGVmZmVjdHMg aXMKdGhhdCB3ZSB3aWxsIGhhdmUgcmVhZGVycyBmb3IgbmV0LT5zY3RwLmxvY2FsX2FkZHJfbGlz dCBsaXN0IGVhcmxpZXIKdGhhbiBleHBlY3RlZCBhbmQgc2N0cF9uZXRfaW5pdCgpIGRvZXMgbm90 IHRha2UgcHJlY2F1dGlvbnMgd2hpbGUKZGVhbGluZyB3aXRoIHRoYXQgbGlzdCwgbGVhZGluZyB0 byBhIHBvdGVudGlhbCBwYW5pYyBidXQgbm90IGxpbWl0ZWQgdG8KdGhhdCwgYXMgc2N0cF9zb2Nr X2luaXQoKSB3aWxsIGNvcHkgYSBidW5jaCBvZiBibGFuay9wYXJ0aWFsbHkKaW5pdGlhbGl6ZWQg dmFsdWVzIGZyb20gbmV0LT5zY3RwLgoKVGhlIHJhY2UgaGFwcGVucyBsaWtlIHRoaXM6CgogICAg IENQVSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgQ1BVIDEKICBzb2NrZXQoKSAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKICAgX19zb2NrX2NyZWF0ZSAgICAgICAgICAgICAgICAg ICAgIHwgc29ja2V0KCkKICAgIGluZXRfY3JlYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIF9f c29ja19jcmVhdGUKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSggICAgICAgIHwKICAgICAg ICBhbnN3ZXIsICZpbmV0c3dbc29jay0+dHlwZV0sIHwKICAgICAgICBsaXN0KSB7ICAgICAgICAg ICAgICAgICAgICAgIHwgICBpbmV0X2NyZWF0ZQogICAgICAvKiBubyBoaXRzICovICAgICAgICAg ICAgICAgICAgfAogICAgIGlmICh1bmxpa2VseShlcnIpKSB7ICAgICAgICAgICAgfAogICAgICAu Li4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgICByZXF1ZXN0X21vZHVsZSgpICAg ICAgICAgICAgICAgfAogICAgICAvKiBzb2NrZXQgY3JlYXRpb24gaXMgYmxvY2tlZCAgfAogICAg ICAgKiB0aGUgbW9kdWxlIGlzIGZ1bGx5IGxvYWRlZCAgfAogICAgICAgKi8gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAogICAgICAgc2N0cF9pbml0ICAgICAgICAgICAgICAgICAgICAgfAog ICAgICAgIHNjdHBfdjRfcHJvdG9zd19pbml0ICAgICAgICAgfAogICAgICAgICBpbmV0X3JlZ2lz dGVyX3Byb3Rvc3cgICAgICAgfAogICAgICAgICAgbGlzdF9hZGRfcmN1KCZwLT5saXN0LCAgICAg fAogICAgICAgICAgICAgICAgICAgICAgIGxhc3RfcGVybSk7ICAgfAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICBhbnN3ZXIsICZpbmV0c3dbc29jay0+ dHlwZV0sCiAgICAgICAgc2N0cF92Nl9wcm90b3N3X2luaXQgICAgICAgICB8ICAgICBsaXN0KSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAvKiBoaXQsIHNvIGFz c3VtZXMgcHJvdG9jb2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAqIGlzIGFscmVhZHkgbG9hZGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIC8qIHNv Y2tldCBjcmVhdGlvbiBjb250aW51ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAqIGJlZm9yZSBuZXRucyBpcyBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICovCiAgICAgICAgcmVnaXN0ZXJfcGVybmV0X3N1YnN5cyAg ICAgICB8CgpTaW1wbHkgaW52ZXJ0aW5nIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBiZXR3ZWVu CnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoKSBhbmQgc2N0cF92NF9wcm90b3N3X2luaXQoKSBpcyBu b3QgcG9zc2libGUKYmVjYXVzZSByZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCkgd2lsbCBjcmVhdGUg YSBjb250cm9sIHNjdHAgc29ja2V0LCBzbwp0aGUgcHJvdG9jb2wgbXVzdCBiZSBhbHJlYWR5IHZp c2libGUgYnkgdGhlbi4gRGVmZXJyaW5nIHRoZSBzb2NrZXQKY3JlYXRpb24gdG8gYSB3b3JrLXF1 ZXVlIGlzIG5vdCBnb29kIHNwZWNpYWxseSBiZWNhdXNlIHdlIGxvb3NlIHRoZQphYmlsaXR5IHRv IGhhbmRsZSBpdHMgZXJyb3JzLgoKU28sIGFzIHN1Z2dlc3RlZCBieSBWbGFkLCB0aGUgZml4IGlz IHRvIHNwbGl0IG5ldG5zIGluaXRpYWxpemF0aW9uIGluCnR3byBtb21lbnRzOiBkZWZhdWx0cyBh bmQgY29udHJvbCBzb2NrZXQsIHNvIHRoYXQgdGhlIGRlZmF1bHRzIGFyZQphbHJlYWR5IGxvYWRl ZCBieSB3aGVuIHdlIHJlZ2lzdGVyIHRoZSBwcm90b2NvbCwgd2hpbGUgY29udHJvbCBzb2NrZXQK aW5pdGlhbGl6YXRpb24gaXMga2VwdCBhdCB0aGUgc2FtZSBtb21lbnQgaXQgaXMgdG9kYXkuCgpG aXhlczogNGRiNjdlODA4NjQwICgic2N0cDogTWFrZSB0aGUgYWRkcmVzcyBsaXN0cyBwZXIgbmV0 d29yayBuYW1lc3BhY2UiKQpTaWduZWQtb2ZmLWJ5OiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vs by5sZWl0bmVyQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY3RwL3Byb3RvY29sLmMgfCA2NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDQxIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9z Y3RwL3Byb3RvY29sLmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IDhmMzRiMjcuLjE0M2M0 ZWIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9j b2wuYwpAQCAtMTE2Niw3ICsxMTY2LDcgQEAgc3RhdGljIHZvaWQgc2N0cF92NF9kZWxfcHJvdG9j b2wodm9pZCkKIAl1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKCZzY3RwX2luZXRhZGRyX25v dGlmaWVyKTsKIH0KIAotc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBfbmV0X2luaXQoc3RydWN0 IG5ldCAqbmV0KQorc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBfZGVmYXVsdHNfaW5pdChzdHJ1 Y3QgbmV0ICpuZXQpCiB7CiAJaW50IHN0YXR1czsKIApAQCAtMTI1OSwxMiArMTI1OSw2IEBAIHN0 YXRpYyBpbnQgX19uZXRfaW5pdCBzY3RwX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKIAogCXNj dHBfZGJnX29iamNudF9pbml0KG5ldCk7CiAKLQkvKiBJbml0aWFsaXplIHRoZSBjb250cm9sIGlu b2RlL3NvY2tldCBmb3IgaGFuZGxpbmcgT09UQiBwYWNrZXRzLiAgKi8KLQlpZiAoKHN0YXR1cyA9 IHNjdHBfY3RsX3NvY2tfaW5pdChuZXQpKSkgewotCQlwcl9lcnIoIkZhaWxlZCB0byBpbml0aWFs aXplIHRoZSBTQ1RQIGNvbnRyb2wgc29ja1xuIik7Ci0JCWdvdG8gZXJyX2N0bF9zb2NrX2luaXQ7 Ci0JfQotCiAJLyogSW5pdGlhbGl6ZSB0aGUgbG9jYWwgYWRkcmVzcyBsaXN0LiAqLwogCUlOSVRf TElTVF9IRUFEKCZuZXQtPnNjdHAubG9jYWxfYWRkcl9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgm bmV0LT5zY3RwLmxvY2FsX2FkZHJfbG9jayk7CkBAIC0xMjgwLDkgKzEyNzQsNiBAQCBzdGF0aWMg aW50IF9fbmV0X2luaXQgc2N0cF9uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAKIAlyZXR1cm4g MDsKIAotZXJyX2N0bF9zb2NrX2luaXQ6Ci0Jc2N0cF9kYmdfb2JqY250X2V4aXQobmV0KTsKLQlz Y3RwX3Byb2NfZXhpdChuZXQpOwogZXJyX2luaXRfcHJvYzoKIAljbGVhbnVwX3NjdHBfbWlicyhu ZXQpOwogZXJyX2luaXRfbWliczoKQEAgLTEyOTEsMTUgKzEyODIsMTIgQEAgZXJyX3N5c2N0bF9y ZWdpc3RlcjoKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHNj dHBfbmV0X2V4aXQoc3RydWN0IG5ldCAqbmV0KQorc3RhdGljIHZvaWQgX19uZXRfZXhpdCBzY3Rw X2RlZmF1bHRzX2V4aXQoc3RydWN0IG5ldCAqbmV0KQogewogCS8qIEZyZWUgdGhlIGxvY2FsIGFk ZHJlc3MgbGlzdCAqLwogCXNjdHBfZnJlZV9hZGRyX3dxKG5ldCk7CiAJc2N0cF9mcmVlX2xvY2Fs X2FkZHJfbGlzdChuZXQpOwogCi0JLyogRnJlZSB0aGUgY29udHJvbCBlbmRwb2ludC4gICovCi0J aW5ldF9jdGxfc29ja19kZXN0cm95KG5ldC0+c2N0cC5jdGxfc29jayk7Ci0KIAlzY3RwX2RiZ19v YmpjbnRfZXhpdChuZXQpOwogCiAJc2N0cF9wcm9jX2V4aXQobmV0KTsKQEAgLTEzMDcsOSArMTI5 NSwzMiBAQCBzdGF0aWMgdm9pZCBfX25ldF9leGl0IHNjdHBfbmV0X2V4aXQoc3RydWN0IG5ldCAq bmV0KQogCXNjdHBfc3lzY3RsX25ldF91bnJlZ2lzdGVyKG5ldCk7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgcGVybmV0X29wZXJhdGlvbnMgc2N0cF9uZXRfb3BzID0gewotCS5pbml0ID0gc2N0cF9uZXRf aW5pdCwKLQkuZXhpdCA9IHNjdHBfbmV0X2V4aXQsCitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVy YXRpb25zIHNjdHBfZGVmYXVsdHNfb3BzID0geworCS5pbml0ID0gc2N0cF9kZWZhdWx0c19pbml0 LAorCS5leGl0ID0gc2N0cF9kZWZhdWx0c19leGl0LAorfTsKKworc3RhdGljIGludCBfX25ldF9p bml0IHNjdHBfY3RybHNvY2tfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCit7CisJaW50IHN0YXR1czsK KworCS8qIEluaXRpYWxpemUgdGhlIGNvbnRyb2wgaW5vZGUvc29ja2V0IGZvciBoYW5kbGluZyBP T1RCIHBhY2tldHMuICAqLworCXN0YXR1cyA9IHNjdHBfY3RsX3NvY2tfaW5pdChuZXQpOworCWlm IChzdGF0dXMpCisJCXByX2VycigiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFNDVFAgY29udHJv bCBzb2NrXG4iKTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyB2b2lkIF9fbmV0X2lu aXQgc2N0cF9jdHJsc29ja19leGl0KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwkvKiBGcmVlIHRoZSBj b250cm9sIGVuZHBvaW50LiAgKi8KKwlpbmV0X2N0bF9zb2NrX2Rlc3Ryb3kobmV0LT5zY3RwLmN0 bF9zb2NrKTsKK30KKworc3RhdGljIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyBzY3RwX2N0cmxz b2NrX29wcyA9IHsKKwkuaW5pdCA9IHNjdHBfY3RybHNvY2tfaW5pdCwKKwkuZXhpdCA9IHNjdHBf Y3RybHNvY2tfZXhpdCwKIH07CiAKIC8qIEluaXRpYWxpemUgdGhlIHVuaXZlcnNlIGludG8gc29t ZXRoaW5nIHNlbnNpYmxlLiAgKi8KQEAgLTE0NDMsOCArMTQ1NCwxMSBAQCBzdGF0aWMgX19pbml0 IGludCBzY3RwX2luaXQodm9pZCkKIAlzY3RwX3Y0X3BmX2luaXQoKTsKIAlzY3RwX3Y2X3BmX2lu aXQoKTsKIAotCXN0YXR1cyA9IHNjdHBfdjRfcHJvdG9zd19pbml0KCk7CisJc3RhdHVzID0gcmVn aXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9kZWZhdWx0c19vcHMpOworCWlmIChzdGF0dXMpCisJ CWdvdG8gZXJyX3JlZ2lzdGVyX2RlZmF1bHRzOwogCisJc3RhdHVzID0gc2N0cF92NF9wcm90b3N3 X2luaXQoKTsKIAlpZiAoc3RhdHVzKQogCQlnb3RvIGVycl9wcm90b3N3X2luaXQ7CiAKQEAgLTE0 NTIsOSArMTQ2Niw5IEBAIHN0YXRpYyBfX2luaXQgaW50IHNjdHBfaW5pdCh2b2lkKQogCWlmIChz dGF0dXMpCiAJCWdvdG8gZXJyX3Y2X3Byb3Rvc3dfaW5pdDsKIAotCXN0YXR1cyA9IHJlZ2lzdGVy X3Blcm5ldF9zdWJzeXMoJnNjdHBfbmV0X29wcyk7CisJc3RhdHVzID0gcmVnaXN0ZXJfcGVybmV0 X3N1YnN5cygmc2N0cF9jdHJsc29ja19vcHMpOwogCWlmIChzdGF0dXMpCi0JCWdvdG8gZXJyX3Jl Z2lzdGVyX3Blcm5ldF9zdWJzeXM7CisJCWdvdG8gZXJyX3JlZ2lzdGVyX2N0cmxzb2NrOwogCiAJ c3RhdHVzID0gc2N0cF92NF9hZGRfcHJvdG9jb2woKTsKIAlpZiAoc3RhdHVzKQpAQCAtMTQ3MCwx MiArMTQ4NCwxNCBAQCBvdXQ6CiBlcnJfdjZfYWRkX3Byb3RvY29sOgogCXNjdHBfdjRfZGVsX3By b3RvY29sKCk7CiBlcnJfYWRkX3Byb3RvY29sOgotCXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygm c2N0cF9uZXRfb3BzKTsKLWVycl9yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzOgorCXVucmVnaXN0ZXJf cGVybmV0X3N1YnN5cygmc2N0cF9jdHJsc29ja19vcHMpOworZXJyX3JlZ2lzdGVyX2N0cmxzb2Nr OgogCXNjdHBfdjZfcHJvdG9zd19leGl0KCk7CiBlcnJfdjZfcHJvdG9zd19pbml0OgogCXNjdHBf djRfcHJvdG9zd19leGl0KCk7CiBlcnJfcHJvdG9zd19pbml0OgorCXVucmVnaXN0ZXJfcGVybmV0 X3N1YnN5cygmc2N0cF9kZWZhdWx0c19vcHMpOworZXJyX3JlZ2lzdGVyX2RlZmF1bHRzOgogCXNj dHBfdjRfcGZfZXhpdCgpOwogCXNjdHBfdjZfcGZfZXhpdCgpOwogCXNjdHBfc3lzY3RsX3VucmVn aXN0ZXIoKTsKQEAgLTE1MDgsMTIgKzE1MjQsMTQgQEAgc3RhdGljIF9fZXhpdCB2b2lkIHNjdHBf ZXhpdCh2b2lkKQogCXNjdHBfdjZfZGVsX3Byb3RvY29sKCk7CiAJc2N0cF92NF9kZWxfcHJvdG9j b2woKTsKIAotCXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9uZXRfb3BzKTsKKwl1bnJl Z2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKIAogCS8qIEZyZWUgcHJv dG9zdyByZWdpc3RyYXRpb25zICovCiAJc2N0cF92Nl9wcm90b3N3X2V4aXQoKTsKIAlzY3RwX3Y0 X3Byb3Rvc3dfZXhpdCgpOwogCisJdW5yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZzY3RwX2RlZmF1 bHRzX29wcyk7CisKIAkvKiBVbnJlZ2lzdGVyIHdpdGggc29ja2V0IGxheWVyLiAqLwogCXNjdHBf djZfcGZfZXhpdCgpOwogCXNjdHBfdjRfcGZfZXhpdCgpOwotLSAKMi4xLjAKCgpGcm9tIGE2YzVh ZWI1MTllMGNhZTkzNGEwYWZmMWM5MTk1YmQyZjUyMmYwMDYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEplc3NlIEdyb3NzIDxqZXNzZUBuaWNpcmEuY29tPgpEYXRlOiBNb24sIDIxIFNl cCAyMDE1IDIwOjIxOjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8xMl0gb3BlbnZzd2l0Y2g6 IFplcm8gZmxvd3Mgb24gYWxsb2NhdGlvbi4KClsgVXBzdHJlYW0gY29tbWl0IGFlNWYyZmIxZDUx ZmExMjhhNDYwYmNmYmUzYzU2ZDdhYjhiZjZhNDMgXQoKV2hlbiBzdXBwb3J0IGZvciBtZWdhZmxv d3Mgd2FzIGludHJvZHVjZWQsIE9WUyBuZWVkZWQgdG8gc3RhcnQKaW5zdGFsbGluZyBmbG93cyB3 aXRoIGEgbWFzayBhcHBsaWVkIHRvIHRoZW0uIFNpbmNlIG1hc2tpbmcgaXMgYW4KZXhwZW5zaXZl IG9wZXJhdGlvbiwgT1ZTIGFsc28gaGFkIGFuIG9wdGltaXphdGlvbiB0aGF0IHdvdWxkIG9ubHkK dGFrZSB0aGUgcGFydHMgb2YgdGhlIGZsb3cga2V5cyB0aGF0IHdlcmUgY292ZXJlZCBieSBhIG5v bi16ZXJvCm1hc2suIFRoZSB2YWx1ZXMgc3RvcmVkIGluIHRoZSByZW1haW5pbmcgcGllY2VzIHNo b3VsZCBub3QgbWF0dGVyCmJlY2F1c2UgdGhleSBhcmUgbWFza2VkIG91dC4KCldoaWxlIHRoaXMg d29ya3MgZmluZSBmb3IgdGhlIHB1cnBvc2VzIG9mIG1hdGNoaW5nICh3aGljaCBtdXN0IGFsd2F5 cwpsb29rIGF0IHRoZSBtYXNrKSwgc2VyaWFsaXphdGlvbiB0byBuZXRsaW5rIGNhbiBiZSBwcm9i bGVtYXRpYy4gU2luY2UKdGhlIGZsb3cgYW5kIHRoZSBtYXNrIGFyZSBzZXJpYWxpemVkIHNlcGFy YXRlbHksIHRoZSB1bmluaXRpYWxpemVkCnBvcnRpb25zIG9mIHRoZSBmbG93IGNhbiBiZSBlbmNv ZGVkIHdpdGggd2hhdGV2ZXIgdmFsdWVzIGhhcHBlbiB0byBiZQpwcmVzZW50LgoKSW4gdGVybXMg b2YgZnVuY3Rpb25hbGl0eSwgdGhpcyBoYXMgbGl0dGxlIGVmZmVjdCBzaW5jZSB0aGVzZSBmaWVs ZHMKd2lsbCBiZSBtYXNrZWQgb3V0IGJ5IGRlZmluaXRpb24uIEhvd2V2ZXIsIGl0IGxlYWtzIGtl cm5lbCBtZW1vcnkgdG8KdXNlcnNwYWNlLCB3aGljaCBpcyBhIHBvdGVudGlhbCBzZWN1cml0eSB2 dWxuZXJhYmlsaXR5LiBJdCBpcyBhbHNvCnBvc3NpYmxlIHRoYXQgb3RoZXIgY29kZSBwYXRocyBj b3VsZCBsb29rIGF0IHRoZSBtYXNrZWQga2V5IGFuZCBnZXQKdW5pbml0aWFsaXplZCBkYXRhLCBh bHRob3VnaCB0aGlzIGRvZXMgbm90IGN1cnJlbnRseSBhcHBlYXIgdG8gYmUgYW4KaXNzdWUgaW4g cHJhY3RpY2UuCgpUaGlzIHJlbW92ZXMgdGhlIG1hc2sgb3B0aW1pemF0aW9uIGZvciBmbG93cyB0 aGF0IGFyZSBiZWluZyBpbnN0YWxsZWQuClRoaXMgd2FzIGFsd2F5cyBpbnRlbmRlZCB0byBiZSB0 aGUgY2FzZSBhcyB0aGUgbWFzayBvcHRpbWl6YXRpb25zIHdlcmUKcmVhbGx5IHRhcmdldHRpbmcg cGVyLXBhY2tldCBmbG93IG9wZXJhdGlvbnMuCgpGaXhlczogMDNmMGQ5MTYgKCJvcGVudnN3aXRj aDogTWVnYSBmbG93IGltcGxlbWVudGF0aW9uIikKU2lnbmVkLW9mZi1ieTogSmVzc2UgR3Jvc3Mg PGplc3NlQG5pY2lyYS5jb20+CkFja2VkLWJ5OiBQcmF2aW4gQiBTaGVsYXIgPHBzaGVsYXJAbmlj aXJhLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jICAgfCAgNCArKy0tCiBuZXQvb3Bl bnZzd2l0Y2gvZmxvd190YWJsZS5jIHwgMjMgKysrKysrKysrKysrLS0tLS0tLS0tLS0KIG5ldC9v cGVudnN3aXRjaC9mbG93X3RhYmxlLmggfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNl cnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gv ZGF0YXBhdGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IDI4MjEzZGYuLmFj ZjZiMmUgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCisrKyBiL25ldC9v cGVudnN3aXRjaC9kYXRhcGF0aC5jCkBAIC04MzQsNyArODM0LDcgQEAgc3RhdGljIGludCBvdnNf Zmxvd19jbWRfbmV3KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8p CiAJaWYgKGVycm9yKQogCQlnb3RvIGVycl9rZnJlZV9mbG93OwogCi0Jb3ZzX2Zsb3dfbWFza19r ZXkoJm5ld19mbG93LT5rZXksICZuZXdfZmxvdy0+dW5tYXNrZWRfa2V5LCAmbWFzayk7CisJb3Zz X2Zsb3dfbWFza19rZXkoJm5ld19mbG93LT5rZXksICZuZXdfZmxvdy0+dW5tYXNrZWRfa2V5LCB0 cnVlLCAmbWFzayk7CiAKIAkvKiBWYWxpZGF0ZSBhY3Rpb25zLiAqLwogCWFjdHMgPSBvdnNfbmxh X2FsbG9jX2Zsb3dfYWN0aW9ucyhubGFfbGVuKGFbT1ZTX0ZMT1dfQVRUUl9BQ1RJT05TXSkpOwpA QCAtOTQ5LDcgKzk0OSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc3dfZmxvd19hY3Rpb25zICpnZXRfZmxv d19hY3Rpb25zKGNvbnN0IHN0cnVjdCBubGF0dHIgKmEsCiAJaWYgKElTX0VSUihhY3RzKSkKIAkJ cmV0dXJuIGFjdHM7CiAKLQlvdnNfZmxvd19tYXNrX2tleSgmbWFza2VkX2tleSwga2V5LCBtYXNr KTsKKwlvdnNfZmxvd19tYXNrX2tleSgmbWFza2VkX2tleSwga2V5LCB0cnVlLCBtYXNrKTsKIAll cnJvciA9IG92c19ubGFfY29weV9hY3Rpb25zKGEsICZtYXNrZWRfa2V5LCAwLCAmYWN0cyk7CiAJ aWYgKGVycm9yKSB7CiAJCU9WU19OTEVSUigiRmxvdyBhY3Rpb25zIG1heSBub3QgYmUgc2FmZSBv biBhbGwgbWF0Y2hpbmcgcGFja2V0cy5cbiIpOwpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNo L2Zsb3dfdGFibGUuYyBiL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmMKaW5kZXggY2YyZDg1 My4uNzQwMDQxYSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUuYworKysg Yi9uZXQvb3BlbnZzd2l0Y2gvZmxvd190YWJsZS5jCkBAIC01NiwyMCArNTYsMjEgQEAgc3RhdGlj IHUxNiByYW5nZV9uX2J5dGVzKGNvbnN0IHN0cnVjdCBzd19mbG93X2tleV9yYW5nZSAqcmFuZ2Up CiB9CiAKIHZvaWQgb3ZzX2Zsb3dfbWFza19rZXkoc3RydWN0IHN3X2Zsb3dfa2V5ICpkc3QsIGNv bnN0IHN0cnVjdCBzd19mbG93X2tleSAqc3JjLAotCQkgICAgICAgY29uc3Qgc3RydWN0IHN3X2Zs b3dfbWFzayAqbWFzaykKKwkJICAgICAgIGJvb2wgZnVsbCwgY29uc3Qgc3RydWN0IHN3X2Zsb3df bWFzayAqbWFzaykKIHsKLQljb25zdCBsb25nICptID0gKGNvbnN0IGxvbmcgKikoKGNvbnN0IHU4 ICopJm1hc2stPmtleSArCi0JCQkJbWFzay0+cmFuZ2Uuc3RhcnQpOwotCWNvbnN0IGxvbmcgKnMg PSAoY29uc3QgbG9uZyAqKSgoY29uc3QgdTggKilzcmMgKwotCQkJCW1hc2stPnJhbmdlLnN0YXJ0 KTsKLQlsb25nICpkID0gKGxvbmcgKikoKHU4ICopZHN0ICsgbWFzay0+cmFuZ2Uuc3RhcnQpOwor CWludCBzdGFydCA9IGZ1bGwgPyAwIDogbWFzay0+cmFuZ2Uuc3RhcnQ7CisJaW50IGxlbiA9IGZ1 bGwgPyBzaXplb2YgKmRzdCA6IHJhbmdlX25fYnl0ZXMoJm1hc2stPnJhbmdlKTsKKwljb25zdCBs b25nICptID0gKGNvbnN0IGxvbmcgKikoKGNvbnN0IHU4ICopJm1hc2stPmtleSArIHN0YXJ0KTsK Kwljb25zdCBsb25nICpzID0gKGNvbnN0IGxvbmcgKikoKGNvbnN0IHU4ICopc3JjICsgc3RhcnQp OworCWxvbmcgKmQgPSAobG9uZyAqKSgodTggKilkc3QgKyBzdGFydCk7CiAJaW50IGk7CiAKLQkv KiBUaGUgbWVtb3J5IG91dHNpZGUgb2YgdGhlICdtYXNrLT5yYW5nZScgYXJlIG5vdCBzZXQgc2lu Y2UKLQkgKiBmdXJ0aGVyIG9wZXJhdGlvbnMgb24gJ2RzdCcgb25seSB1c2VzIGNvbnRlbnRzIHdp dGhpbgotCSAqICdtYXNrLT5yYW5nZScuCisJLyogSWYgJ2Z1bGwnIGlzIHRydWUgdGhlbiBhbGwg b2YgJ2RzdCcgaXMgZnVsbHkgaW5pdGlhbGl6ZWQuIE90aGVyd2lzZSwKKwkgKiBpZiAnZnVsbCcg aXMgZmFsc2UgdGhlIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSAnbWFzay0+cmFuZ2UnIGlzIGxlZnQK KwkgKiB1bmluaXRpYWxpemVkLiBUaGlzIGNhbiBiZSB1c2VkIGFzIGFuIG9wdGltaXphdGlvbiB3 aGVuIGZ1cnRoZXIKKwkgKiBvcGVyYXRpb25zIG9uICdkc3QnIG9ubHkgdXNlIGNvbnRlbnRzIHdp dGhpbiAnbWFzay0+cmFuZ2UnLgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCByYW5nZV9uX2J5dGVz KCZtYXNrLT5yYW5nZSk7IGkgKz0gc2l6ZW9mKGxvbmcpKQorCWZvciAoaSA9IDA7IGkgPCBsZW47 IGkgKz0gc2l6ZW9mKGxvbmcpKQogCQkqZCsrID0gKnMrKyAmICptKys7CiB9CiAKQEAgLTQxOCw3 ICs0MTksNyBAQCBzdGF0aWMgc3RydWN0IHN3X2Zsb3cgKm1hc2tlZF9mbG93X2xvb2t1cChzdHJ1 Y3QgdGFibGVfaW5zdGFuY2UgKnRpLAogCXUzMiBoYXNoOwogCXN0cnVjdCBzd19mbG93X2tleSBt YXNrZWRfa2V5OwogCi0Jb3ZzX2Zsb3dfbWFza19rZXkoJm1hc2tlZF9rZXksIHVubWFza2VkLCBt YXNrKTsKKwlvdnNfZmxvd19tYXNrX2tleSgmbWFza2VkX2tleSwgdW5tYXNrZWQsIGZhbHNlLCBt YXNrKTsKIAloYXNoID0gZmxvd19oYXNoKCZtYXNrZWRfa2V5LCBrZXlfc3RhcnQsIGtleV9lbmQp OwogCWhlYWQgPSBmaW5kX2J1Y2tldCh0aSwgaGFzaCk7CiAJaGxpc3RfZm9yX2VhY2hfZW50cnlf cmN1KGZsb3csIGhlYWQsIGhhc2hfbm9kZVt0aS0+bm9kZV92ZXJdKSB7CmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvZmxvd190YWJsZS5oIGIvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUu aAppbmRleCA1OTE4YmZmLi4yZjBjZjIwIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZmxv d190YWJsZS5oCisrKyBiL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmgKQEAgLTgyLDUgKzgy LDUgQEAgYm9vbCBvdnNfZmxvd19jbXBfdW5tYXNrZWRfa2V5KGNvbnN0IHN0cnVjdCBzd19mbG93 ICpmbG93LAogCQkJICAgICAgIHN0cnVjdCBzd19mbG93X21hdGNoICptYXRjaCk7CiAKIHZvaWQg b3ZzX2Zsb3dfbWFza19rZXkoc3RydWN0IHN3X2Zsb3dfa2V5ICpkc3QsIGNvbnN0IHN0cnVjdCBz d19mbG93X2tleSAqc3JjLAotCQkgICAgICAgY29uc3Qgc3RydWN0IHN3X2Zsb3dfbWFzayAqbWFz ayk7CisJCSAgICAgICBib29sIGZ1bGwsIGNvbnN0IHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2sp OwogI2VuZGlmIC8qIGZsb3dfdGFibGUuaCAqLwotLSAKMi4xLjAKCgpGcm9tIDkxNDlkNWRlZjky NmVmYjNjM2E0ZTZiYzY2ZDNiM2Y2MDU5MWRkYmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMyBTZXAg MjAxNSAxNDowMDoyMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTEvMTJdIHRjcDogYWRkIHByb3Bl ciBUUyB2YWwgaW50byBSU1QgcGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgNjc1ZWUyMzFkOTYw YWYyYWYzNjA2YjQ0ODAzMjRlMjY3OTdlYjAxMCBdCgpSU1QgcGFja2V0cyBzZW50IG9uIGJlaGFs ZiBvZiBUQ1AgY29ubmVjdGlvbnMgd2l0aCBUUyBvcHRpb24gKFJGQyA3MzIzClRDUCB0aW1lc3Rh bXBzKSBoYXZlIGluY29ycmVjdCBUUyB2YWwgKHNldCB0byAwKSwgYnV0IGNvcnJlY3QgVFMgZWNy LgoKQSA+IEI6IEZsYWdzIFtTXSwgc2VxIDAsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbXNzIDEwMDAs bm9wLG5vcCxUUyB2YWwgMTAwCmVjciAwXSwgbGVuZ3RoIDAKQiA+IEE6IEZsYWdzIFtTLl0sIHNl cSAyNDQ0NzU1Nzk0LCBhY2sgMSwgd2luIDI4OTYwLCBvcHRpb25zIFttc3MKMTQ2MCxub3Asbm9w LFRTIHZhbCA3MjY0MzQ0IGVjciAxMDBdLCBsZW5ndGggMApBID4gQjogRmxhZ3MgWy5dLCBhY2sg MSwgd2luIDY1NTM1LCBvcHRpb25zIFtub3Asbm9wLFRTIHZhbCAxMTAgZWNyCjcyNjQzNDRdLCBs ZW5ndGggMAoKQiA+IEE6IEZsYWdzIFtSLl0sIHNlcSAxLCBhY2sgMSwgd2luIDI4OTYwLCBvcHRp b25zIFtub3Asbm9wLFRTIHZhbCAwCmVjciAxMTBdLCBsZW5ndGggMAoKV2UgbmVlZCB0byBjYWxs IHNrYl9tc3RhbXBfZ2V0KCkgdG8gZ2V0IHByb3BlciBUUyB2YWwsCmRlcml2ZWQgZnJvbSBza2It PnNrYl9tc3RhbXAKCk5vdGUgdGhhdCBSRkMgMTMyMyB3YXMgYWR2b2NhdGluZyB0byBub3Qgc2Vu ZCBUUyBvcHRpb24gaW4gUlNUIHNlZ21lbnQsCmJ1dCBSRkMgNzMyMyByZWNvbW1lbmRzIHRoZSBv cHBvc2l0ZSA6CgogIE9uY2UgVFNvcHQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IG5lZ290aWF0ZWQs IHRoYXQgaXMgYm90aCA8U1lOPiBhbmQKICA8U1lOLEFDSz4gY29udGFpbiBUU29wdCwgdGhlIFRT b3B0IE1VU1QgYmUgc2VudCBpbiBldmVyeSBub24tPFJTVD4KICBzZWdtZW50IGZvciB0aGUgZHVy YXRpb24gb2YgdGhlIGNvbm5lY3Rpb24sIGFuZCBTSE9VTEQgYmUgc2VudCBpbiBhbgogIDxSU1Q+ IHNlZ21lbnQgKHNlZSBTZWN0aW9uIDUuMiBmb3IgZGV0YWlscykKCk5vdGUgdGhpcyBSRkMgcmVj b21tZW5kcyB0byBzZW5kIFRTIHZhbCA9IDAsIGJ1dCB3ZSBiZWxpZXZlIGl0IGlzCnByZW1hdHVy ZSA6IFdlIGRvIG5vdCBrbm93IGlmIGFsbCBUQ1Agc3RhY2tzIGFyZSBwcm9wZXJseQpoYW5kbGlu ZyB0aGUgcmVjZWl2ZSBzaWRlIDoKCiAgIFdoZW4gYW4gPFJTVD4gc2VnbWVudCBpcwogICByZWNl aXZlZCwgaXQgTVVTVCBOT1QgYmUgc3ViamVjdGVkIHRvIHRoZSBQQVdTIGNoZWNrIGJ5IHZlcmlm eWluZyBhbgogICBhY2NlcHRhYmxlIHZhbHVlIGluIFNFRy5UU3ZhbCwgYW5kIGluZm9ybWF0aW9u IGZyb20gdGhlIFRpbWVzdGFtcHMKICAgb3B0aW9uIE1VU1QgTk9UIGJlIHVzZWQgdG8gdXBkYXRl IGNvbm5lY3Rpb24gc3RhdGUgaW5mb3JtYXRpb24uCiAgIFNFRy5UU2VjciBNQVkgYmUgdXNlZCB0 byBwcm92aWRlIHN0cmljdGVyIDxSU1Q+IGFjY2VwdGFuY2UgY2hlY2tzLgoKSW4gNSB5ZWFycywg aWYvd2hlbiBhbGwgVENQIHN0YWNrIGFyZSBSRkMgNzMyMyByZWFkeSwgd2UgbWlnaHQgY29uc2lk ZXIKdG8gZGVjaWRlIHRvIHNlbmQgVFMgdmFsID0gMCwgaWYgaXQgYnV5cyBzb21ldGhpbmcuCgpG aXhlczogN2ZhZWU1YzBkNTE0ICgidGNwOiByZW1vdmUgVENQX1NLQl9DQihza2IpLT53aGVuIikK U2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1i eTogWXVjaHVuZyBDaGVuZyA8eWNoZW5nQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC90Y3Bfb3V0cHV0 LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCBkYzlmOTI1 Li45YzdkODg4NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5jCisrKyBiL25ldC9p cHY0L3RjcF9vdXRwdXQuYwpAQCAtMjc5OCw2ICsyNzk4LDcgQEAgdm9pZCB0Y3Bfc2VuZF9hY3Rp dmVfcmVzZXQoc3RydWN0IHNvY2sgKnNrLCBnZnBfdCBwcmlvcml0eSkKIAlza2JfcmVzZXJ2ZShz a2IsIE1BWF9UQ1BfSEVBREVSKTsKIAl0Y3BfaW5pdF9ub25kYXRhX3NrYihza2IsIHRjcF9hY2Nl cHRhYmxlX3NlcShzayksCiAJCQkgICAgIFRDUEhEUl9BQ0sgfCBUQ1BIRFJfUlNUKTsKKwlza2Jf bXN0YW1wX2dldCgmc2tiLT5za2JfbXN0YW1wKTsKIAkvKiBTZW5kIGl0IG9mZi4gKi8KIAlpZiAo dGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCAwLCBwcmlvcml0eSkpCiAJCU5FVF9JTkNfU1RBVFMo c29ja19uZXQoc2spLCBMSU5VWF9NSUJfVENQQUJPUlRGQUlMRUQpOwotLSAKMi4xLjAKCgpGcm9t IDM3NGQzNzgyZTAyOTdhODNhMzk4ZGRhZDFhNjdlYWM2MDY3MjBlMjIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdpbHNvbiBLb2sgPHdrb2tAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0 ZTogVHVlLCAyMiBTZXAgMjAxNSAyMTo0MDoyMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMTJd IGZpYl9ydWxlczogZml4IGZpYiBydWxlIGR1bXBzIGFjcm9zcyBtdWx0aXBsZSBza2JzCgpbIFVw c3RyZWFtIGNvbW1pdCA0MWZjMDE0MzMyZDkxZWU5MGMzMjg0MGJmMTYxZjk2ODViN2ZiZjJiIF0K CmR1bXBfcnVsZXMgcmV0dXJucyBza2IgbGVuZ3RoIGFuZCBub3QgZXJyb3IuCkJ1dCB3aGVuIGZh bWlseSA9PSBBRl9VTlNQRUMsIHRoZSBjYWxsZXIgb2YgZHVtcF9ydWxlcwphc3N1bWVzIHRoYXQg aXQgcmV0dXJucyBhbiBlcnJvci4gSGVuY2UsIHdoZW4gZmFtaWx5ID09IEFGX1VOU1BFQywKd2Ug Y29udGludWUgdHJ5aW5nIHRvIGR1bXAgb24gLUVNU0dTSVpFIGVycm9ycyByZXN1bHRpbmcgaW4K aW5jb3JyZWN0IGR1bXAgaWR4IGNhcnJpZWQgYmV0d2VlbiBza2JzIGJlbG9uZ2luZyB0byB0aGUg c2FtZSBkdW1wLgpUaGlzIHJlc3VsdHMgaW4gZmliIHJ1bGUgZHVtcCBhbHdheXMgb25seSBkdW1w aW5nIHJ1bGVzIHRoYXQgZml0CmludG8gdGhlIGZpcnN0IHNrYi4KClRoaXMgcGF0Y2ggZml4ZXMg ZHVtcF9ydWxlcyB0byByZXR1cm4gZXJyb3Igc28gdGhhdCB3ZSBleGl0IGNvcnJlY3RseQphbmQg aWR4IGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGJldHdlZW4gc2ticyB0aGF0IGFyZSBwYXJ0IG9m IHRoZQpzYW1lIGR1bXAuCgpTaWduZWQtb2ZmLWJ5OiBXaWxzb24gS29rIDx3a29rQGN1bXVsdXNu ZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IFJvb3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25l dHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9jb3JlL2ZpYl9ydWxlcy5jIHwgMTQgKysrKysrKysrLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2NvcmUvZmliX3J1bGVzLmMgYi9uZXQvY29yZS9maWJfcnVsZXMuYwppbmRleCAxODVj MzQxLi5hZWVkYzNhIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWJfcnVsZXMuYworKysgYi9uZXQv Y29yZS9maWJfcnVsZXMuYwpAQCAtNjIxLDE1ICs2MjEsMTcgQEAgc3RhdGljIGludCBkdW1wX3J1 bGVzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYiwKIHsK IAlpbnQgaWR4ID0gMDsKIAlzdHJ1Y3QgZmliX3J1bGUgKnJ1bGU7CisJaW50IGVyciA9IDA7CiAK IAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocnVsZSwgJm9wcy0+ cnVsZXNfbGlzdCwgbGlzdCkgewogCQlpZiAoaWR4IDwgY2ItPmFyZ3NbMV0pCiAJCQlnb3RvIHNr aXA7CiAKLQkJaWYgKGZpYl9ubF9maWxsX3J1bGUoc2tiLCBydWxlLCBORVRMSU5LX0NCKGNiLT5z a2IpLnBvcnRpZCwKLQkJCQkgICAgIGNiLT5ubGgtPm5sbXNnX3NlcSwgUlRNX05FV1JVTEUsCi0J CQkJICAgICBOTE1fRl9NVUxUSSwgb3BzKSA8IDApCisJCWVyciA9IGZpYl9ubF9maWxsX3J1bGUo c2tiLCBydWxlLCBORVRMSU5LX0NCKGNiLT5za2IpLnBvcnRpZCwKKwkJCQkgICAgICAgY2ItPm5s aC0+bmxtc2dfc2VxLCBSVE1fTkVXUlVMRSwKKwkJCQkgICAgICAgTkxNX0ZfTVVMVEksIG9wcyk7 CisJCWlmIChlcnIpCiAJCQlicmVhazsKIHNraXA6CiAJCWlkeCsrOwpAQCAtNjM4LDcgKzY0MCw3 IEBAIHNraXA6CiAJY2ItPmFyZ3NbMV0gPSBpZHg7CiAJcnVsZXNfb3BzX3B1dChvcHMpOwogCi0J cmV0dXJuIHNrYi0+bGVuOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBpbnQgZmliX25sX2R1 bXBydWxlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikK QEAgLTY1NCw3ICs2NTYsOSBAQCBzdGF0aWMgaW50IGZpYl9ubF9kdW1wcnVsZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJCWlmIChvcHMgPT0gTlVM TCkKIAkJCXJldHVybiAtRUFGTk9TVVBQT1JUOwogCi0JCXJldHVybiBkdW1wX3J1bGVzKHNrYiwg Y2IsIG9wcyk7CisJCWR1bXBfcnVsZXMoc2tiLCBjYiwgb3BzKTsKKworCQlyZXR1cm4gc2tiLT5s ZW47CiAJfQogCiAJcmN1X3JlYWRfbG9jaygpOwotLSAKMi4xLjAKCg== ----Next_Part(Mon_Sep_28_21_54_08_2015_173)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_41.mbox" RnJvbSA5MjM0NjJkYjI2ODNjNWU0NmRjZjAzODUyODA5N2M3ZjBlNWI4M2QzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBodWFpYmluIFdhbmcgPGh1YWliaW4ud2FuZ0A2d2luZC5jb20+ CkRhdGU6IFR1ZSwgMjUgQXVnIDIwMTUgMTY6MjA6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAx LzI4XSBpcDZfZ3JlOiByZWxlYXNlIGNhY2hlZCBkc3Qgb24gdHVubmVsIHJlbW92YWwKClsgVXBz dHJlYW0gY29tbWl0IGQ0MjU3Mjk1YmExYjM4OWM2OTNiNzlkZTg1N2E5NmU0YjdjZDhhYzAgXQoK V2hlbiBhIHR1bm5lbCBpcyBkZWxldGVkLCB0aGUgY2FjaGVkIGRzdCBlbnRyeSBzaG91bGQgYmUg cmVsZWFzZWQuCgpUaGlzIHByb2JsZW0gbWF5IHByZXZlbnQgdGhlIHJlbW92YWwgb2YgYSBuZXRu cyAoc2VlbiB3aXRoIGEgeC1uZXRucyBJUHY2CmdyZSB0dW5uZWwpOgogIHVucmVnaXN0ZXJfbmV0 ZGV2aWNlOiB3YWl0aW5nIGZvciBsbyB0byBiZWNvbWUgZnJlZS4gVXNhZ2UgY291bnQgPSAzCgpD QzogRG1pdHJ5IEtvemxvdiA8eGViQG1haWwucnU+CkZpeGVzOiBjMTJiMzk1YTQ2NjQgKCJncmU6 IFN1cHBvcnQgR1JFIG92ZXIgSVB2NiIpClNpZ25lZC1vZmYtYnk6IGh1YWliaW4gV2FuZyA8aHVh aWJpbi53YW5nQDZ3aW5kLmNvbT4KU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNv bGFzLmRpY2h0ZWxANndpbmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5jIHwgMSArCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZ3JlLmMg Yi9uZXQvaXB2Ni9pcDZfZ3JlLmMKaW5kZXggYTM4ZDNhYy4uNjlmNGY2OCAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9pcHY2L2lwNl9ncmUuYwpAQCAtMzYxLDYgKzM2 MSw3IEBAIHN0YXRpYyB2b2lkIGlwNmdyZV90dW5uZWxfdW5pbml0KHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiAJc3RydWN0IGlwNmdyZV9uZXQgKmlnbiA9IG5ldF9nZW5lcmljKHQtPm5ldCwgaXA2 Z3JlX25ldF9pZCk7CiAKIAlpcDZncmVfdHVubmVsX3VubGluayhpZ24sIHQpOworCWlwNl90bmxf ZHN0X3Jlc2V0KHQpOwogCWRldl9wdXQoZGV2KTsKIH0KIAotLSAKMi4xLjAKCgpGcm9tIDk2MTVh OTBlMTZlNGRjNDY1Y2NiOGQwYjBhNmQ1YWFlOWYzZGRmZTAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwu Y29tPgpEYXRlOiBUdWUsIDI1IEF1ZyAyMDE1IDIwOjIyOjM1IC0wMzAwClN1YmplY3Q6IFtQQVRD SCAwMi8yOF0gdnhsYW46IHJlLWlnbm9yZSBFQUREUklOVVNFIGZyb20gaWdtcF9qb2luCgpbIFVw c3RyZWFtIGNvbW1pdCBiZWYwMDU3YjdiYTg4MWQ1YWU2N2VlYzg3NmRmN2EyNmZlNjcyYTU5IF0K CkJlZm9yZSA1NmVmOWM5MDliNDBbMV0gaXQgdXNlZCB0byBpZ25vcmUgYWxsIGVycm9ycyBmcm9t IGlnbXBfam9pbigpLgpUaGF0IGNvbW1pdCBlbmhhbmNlZCB0aGF0IGFuZCBtYWRlIGl0IGVycm9y IG91dCB3aGF0ZXZlciBlcnJvciBoYXBwZW5lZAp3aXRoIGlnbXBfam9pbigpLCBidXQgdGhhdCdz IG5vdCBnb29kIGJlY2F1c2Ugd2hlbiB1c2luZyBtdWx0aWNhc3QKZ3JvdXBzIHZ4bGFuIHdpbGwg dHJ5IHRvIGpvaW4gaXQgbXVsdGlwbGUgdGltZXMgaWYgdGhlIHNvY2tldCBpcyByZXVzZWQKYW5k IHRoZW4gdGhlIDJuZCBhbmQgZnVydGhlciBhdHRlbXB0cyB3aWxsIGZhaWwgd2l0aCBFQUREUklO VVNFLgoKQXMgd2UgZG9uJ3QgdHJhY2sgdG8gd2hpY2ggZ3JvdXBzIHRoZSBzb2NrZXQgaXMgYWxy ZWFkeSBzdWJzY3JpYmVkLCBpdCdzCm9rYXkgdG8ganVzdCBpZ25vcmUgdGhhdCBlcnJvci4KCkZp eGVzOiA1NmVmOWM5MDliNDAgKCJ2eGxhbjogTW92ZSBzb2NrZXQgaW5pdGlhbGl6YXRpb24gdG8g d2l0aGluIHJ0bmwgc2NvcGUiKQpSZXBvcnRlZC1ieTogSm9obiBOaWVsc2VuIDxsaXN0c0Bqbmll bHNlbi5uZXQ+ClNpZ25lZC1vZmYtYnk6IE1hcmNlbG8gUmljYXJkbyBMZWl0bmVyIDxtYXJjZWxv LmxlaXRuZXJAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdnhsYW4uYyB8IDIgKysKIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5j IGIvZHJpdmVycy9uZXQvdnhsYW4uYwppbmRleCAyMWEwZmJmLi4wMDg1YjhkIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC92eGxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTIyMTIs NiArMjIxMiw4IEBAIHN0YXRpYyBpbnQgdnhsYW5fb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCiAJaWYgKHZ4bGFuX2FkZHJfbXVsdGljYXN0KCZ2eGxhbi0+ZGVmYXVsdF9kc3QucmVtb3Rl X2lwKSkgewogCQlyZXQgPSB2eGxhbl9pZ21wX2pvaW4odnhsYW4pOworCQlpZiAocmV0ID09IC1F QUREUklOVVNFKQorCQkJcmV0ID0gMDsKIAkJaWYgKHJldCkgewogCQkJdnhsYW5fc29ja19yZWxl YXNlKHZzKTsKIAkJCXJldHVybiByZXQ7Ci0tIAoyLjEuMAoKCkZyb20gNTA4MjllYzRjNTE1YjM3 OTcyMTMwNGRiY2YwZTNkNjI4OGY1Njc2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog V0FORyBDb25nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjUgQXVnIDIw MTUgMTY6Mzg6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDAzLzI4XSBjbHNfdTMyOiBjb21wbGV0 ZSB0aGUgY2hlY2sgZm9yIG5vbi1mb3JjZWQgY2FzZSBpbgogdTMyX2Rlc3Ryb3koKQoKWyBVcHN0 cmVhbSBjb21taXQgYTZjMWFlYTA0NGU0OTBkYTNlNTkxMjRlYzU1OTkxZmUzMTY4MThkNSBdCgpJ biBjb21taXQgMWUwNTJiZTY5ZDA0ICgibmV0X3NjaGVkOiBkZXN0cm95IHByb3RvIHRwIHdoZW4g YWxsIGZpbHRlcnMgYXJlIGdvbmUiKQpJIGFkZGVkIGEgY2hlY2sgaW4gdTMyX2Rlc3Ryb3koKSB0 byBzZWUgaWYgYWxsIHJlYWwgZmlsdGVycyBhcmUgZ29uZQpmb3IgZWFjaCB0cCwgaG93ZXZlciwg dGhhdCBpcyBvbmx5IGRvbmUgZm9yIHJvb3RfaHQsIHNhbWUgaXMgbmVlZGVkCmZvciBvdGhlcnMu CgpUaGlzIGNhbiBiZSByZXByb2R1Y2VkIGJ5IHRoZSBmb2xsb3dpbmcgdGMgY29tbWFuZHM6Cgp0 YyBmaWx0ZXIgYWRkIGRldiBldGgwIHBhcmVudCAxOjAgcHJpbyA1IGhhbmRsZSAxNTogcHJvdG9j b2wgaXAgdTMyIGRpdmlzb3IgMjU2CnRjIGZpbHRlciBhZGQgZGV2IGV0aDAgcHJvdG9jb2wgaXAg cGFyZW50IDE6IHByaW8gNSBoYW5kbGUgMTU6MjoyIHUzMgpodCAxNToyOiBtYXRjaCBpcCBzcmMg MTAuMC4wLjIgZmxvd2lkIDE6MTAKdGMgZmlsdGVyIGFkZCBkZXYgZXRoMCBwcm90b2NvbCBpcCBw YXJlbnQgMTogcHJpbyA1IGhhbmRsZSAxNToyOjMgdTMyCmh0IDE1OjI6IG1hdGNoIGlwIHNyYyAx MC4wLjAuMyBmbG93aWQgMToxMAoKRml4ZXM6IDFlMDUyYmU2OWQwNCAoIm5ldF9zY2hlZDogZGVz dHJveSBwcm90byB0cCB3aGVuIGFsbCBmaWx0ZXJzIGFyZSBnb25lIikKUmVwb3J0ZWQtYnk6IEFr c2hhdCBLYWtrYXIgPGFrc2hhdC4xOTg0QGdtYWlsLmNvbT4KQ2M6IEphbWFsIEhhZGkgU2FsaW0g PGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2Nv bmdAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPGN3YW5nQHR3b3BlbnNvdXJj ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvc2NoZWQvY2xzX3UzMi5jIHwgMTMgKysrKysrKysrKysrKwogMSBmaWxlIGNo YW5nZWQsIDEzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX3UzMi5j IGIvbmV0L3NjaGVkL2Nsc191MzIuYwppbmRleCBjYWI5ZTliLi40ZmJiNjc0IDEwMDY0NAotLS0g YS9uZXQvc2NoZWQvY2xzX3UzMi5jCisrKyBiL25ldC9zY2hlZC9jbHNfdTMyLmMKQEAgLTQ5MCw2 ICs0OTAsMTkgQEAgc3RhdGljIGJvb2wgdTMyX2Rlc3Ryb3koc3RydWN0IHRjZl9wcm90byAqdHAs IGJvb2wgZm9yY2UpCiAJCQkJCXJldHVybiBmYWxzZTsKIAkJCX0KIAkJfQorCisJCWlmICh0cF9j LT5yZWZjbnQgPiAxKQorCQkJcmV0dXJuIGZhbHNlOworCisJCWlmICh0cF9jLT5yZWZjbnQgPT0g MSkgeworCQkJc3RydWN0IHRjX3VfaG5vZGUgKmh0OworCisJCQlmb3IgKGh0ID0gcnRubF9kZXJl ZmVyZW5jZSh0cF9jLT5obGlzdCk7CisJCQkgICAgIGh0OworCQkJICAgICBodCA9IHJ0bmxfZGVy ZWZlcmVuY2UoaHQtPm5leHQpKQorCQkJCWlmICghaHRfZW1wdHkoaHQpKQorCQkJCQlyZXR1cm4g ZmFsc2U7CisJCX0KIAl9CiAKIAlpZiAocm9vdF9odCAmJiAtLXJvb3RfaHQtPnJlZmNudCA9PSAw KQotLSAKMi4xLjAKCgpGcm9tIDkxN2E1MjIwY2U5OGQzZTBjOTY4OTlkNWQ5MjY2MzFlZTA5ZmM1 MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEV1Z2VuZSBTaGF0b2toaW4gPGV1Z2Vu ZS5zaGF0b2toaW5Acm9zYWxhYi5ydT4KRGF0ZTogTW9uLCAyNCBBdWcgMjAxNSAyMzoxMzo0MiAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjhdIHVzYm5ldDogR2V0IEVWRU5UX05PX1JVTlRJTUVf UE0gYml0IGJlZm9yZSBpdCBpcwogY2xlYXJlZAoKWyBVcHN0cmVhbSBjb21taXQgZjUwNzkxYWMx YWNhMWFjMWIwMzcwZDYyMzk3YjQzZTlmODMxNDIxYSBdCgpJdCBpcyBuZWVkZWQgdG8gY2hlY2sg RVZFTlRfTk9fUlVOVElNRV9QTSBiaXQgb2YgZGV2LT5mbGFncyBpbgp1c2JuZXRfc3RvcCgpLCBi dXQgaXRzIHZhbHVlIHNob3VsZCBiZSByZWFkIGJlZm9yZSBpdCBpcyBjbGVhcmVkCndoZW4gZGV2 LT5mbGFncyBpcyBzZXQgdG8gMC4KClRoZSBwcm9ibGVtIHdhcyBzcG90dGVkIGFuZCB0aGUgZml4 IHdhcyBwcm92aWRlZCBieQpPbGl2ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuZGU+LgoKU2lnbmVk LW9mZi1ieTogRXVnZW5lIFNoYXRva2hpbiA8ZXVnZW5lLnNoYXRva2hpbkByb3NhbGFiLnJ1PgpB Y2tlZC1ieTogT2xpdmVyIE5ldWt1bSA8b25ldWt1bUBzdXNlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Vz Yi91c2JuZXQuYyB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvdXNibmV0LmMgYi9k cml2ZXJzL25ldC91c2IvdXNibmV0LmMKaW5kZXggM2M4NmIxMC4uZTA0OTg1NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi91c2JuZXQu YwpAQCAtNzc4LDcgKzc3OCw3IEBAIGludCB1c2JuZXRfc3RvcCAoc3RydWN0IG5ldF9kZXZpY2Ug Km5ldCkKIHsKIAlzdHJ1Y3QgdXNibmV0CQkqZGV2ID0gbmV0ZGV2X3ByaXYobmV0KTsKIAlzdHJ1 Y3QgZHJpdmVyX2luZm8JKmluZm8gPSBkZXYtPmRyaXZlcl9pbmZvOwotCWludAkJCXJldHZhbCwg cG07CisJaW50CQkJcmV0dmFsLCBwbSwgbXBuOwogCiAJY2xlYXJfYml0KEVWRU5UX0RFVl9PUEVO LCAmZGV2LT5mbGFncyk7CiAJbmV0aWZfc3RvcF9xdWV1ZSAobmV0KTsKQEAgLTgwOSw2ICs4MDks OCBAQCBpbnQgdXNibmV0X3N0b3AgKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiAKIAl1c2JuZXRf cHVyZ2VfcGF1c2VkX3J4cShkZXYpOwogCisJbXBuID0gIXRlc3RfYW5kX2NsZWFyX2JpdChFVkVO VF9OT19SVU5USU1FX1BNLCAmZGV2LT5mbGFncyk7CisKIAkvKiBkZWZlcnJlZCB3b3JrICh0YXNr LCB0aW1lciwgc29mdGlycSkgbXVzdCBhbHNvIHN0b3AuCiAJICogY2FuJ3QgZmx1c2hfc2NoZWR1 bGVkX3dvcmsoKSB1bnRpbCB3ZSBkcm9wIHJ0bmwgKGxhdGVyKSwKIAkgKiBlbHNlIHdvcmtlcnMg Y291bGQgZGVhZGxvY2s7IHNvIG1ha2Ugd29ya2VycyBhIE5PUC4KQEAgLTgxOSw4ICs4MjEsNyBA QCBpbnQgdXNibmV0X3N0b3AgKHN0cnVjdCBuZXRfZGV2aWNlICpuZXQpCiAJaWYgKCFwbSkKIAkJ dXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNlKGRldi0+aW50Zik7CiAKLQlpZiAoaW5mby0+bWFuYWdl X3Bvd2VyICYmCi0JICAgICF0ZXN0X2FuZF9jbGVhcl9iaXQoRVZFTlRfTk9fUlVOVElNRV9QTSwg JmRldi0+ZmxhZ3MpKQorCWlmIChpbmZvLT5tYW5hZ2VfcG93ZXIgJiYgbXBuKQogCQlpbmZvLT5t YW5hZ2VfcG93ZXIoZGV2LCAwKTsKIAllbHNlCiAJCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZShk ZXYtPmludGYpOwotLSAKMi4xLjAKCgpGcm9tIDRhZTczZjZmYTlkNDJkNDJiZmE3NjJkNDhlN2Q4 MGM2MTIwZjU4YWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBCb3JrbWFu biA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFdlZCwgMiBTZXAgMjAxNSAxNDowMDozNiAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMjhdIHNvY2ssIGRpYWc6IGZpeCBwYW5pYyBpbiBzb2Nr X2RpYWdfcHV0X2ZpbHRlcmluZm8KClsgVXBzdHJlYW0gY29tbWl0IGIzODJjMDg2NTYwMDBjMTJh MTQ2NzIzYTE1M2I4NWIxM2E4NTViNDkgXQoKZGlhZyBzb2NrZXQncyBzb2NrX2RpYWdfcHV0X2Zp bHRlcmluZm8oKSBkdW1wcyBjbGFzc2ljIEJQRiBwcm9ncmFtcwp1cG9uIHJlcXVlc3QgdG8gdXNl ciBzcGFjZSAoc3MgLTAgLWIpLiBIb3dldmVyLCBuYXRpdmUgZUJQRiBwcm9ncmFtcwphdHRhY2hl ZCB0byBzb2NrZXRzIChTT19BVFRBQ0hfQlBGKSBjYW5ub3QgYmUgZHVtcGVkIHdpdGggdGhpcyBt ZXRob2Q6CgpUaGVpciBvcmlnX3Byb2cgaXMgYWx3YXlzIE5VTEwuIEhvd2V2ZXIsIHNvY2tfZGlh Z19wdXRfZmlsdGVyaW5mbygpCnVuY29uZGl0aW9uYWxseSB0cmllcyB0byBhY2Nlc3MgaXRzIGZp bHRlciBsZW5ndGggcmVzcC4gd2FudHMgdG8gY29weQp0aGUgZmlsdGVyIGluc25zIGZyb20gdGhl cmUuIEludGVybmFsIGNCUEYgdG8gZUJQRiB0cmFuc2Zvcm1hdGlvbnMKYXR0YWNoZWQgdG8gc29j a2V0cyBkb24ndCBoYXZlIHRoaXMgaXNzdWUsIGFzIG9yaWdfcHJvZyBzdGF0ZSBpcyBrZXB0LgoK SXQncyBjdXJyZW50bHkgb25seSB1c2VkIGJ5IHBhY2tldCBzb2NrZXRzLiBJZiB3ZSB3b3VsZCB3 YW50IHRvIGFkZApuYXRpdmUgZUJQRiBzdXBwb3J0IGluIHRoZSBmdXR1cmUsIHRoaXMgbmVlZHMg dG8gYmUgZG9uZSB0aHJvdWdoCmEgZGlmZmVyZW50IGF0dHJpYnV0ZSB0aGFuIFBBQ0tFVF9ESUFH X0ZJTFRFUiB0byBub3QgY29uZnVzZSBwb3NzaWJsZQp1c2VyIHNwYWNlIGRpc2Fzc2VtYmxlcnMg dGhhdCB3b3JrIG9uIGRpYWcgZGF0YS4KCkZpeGVzOiA4OWFhMDc1ODMyYjAgKCJuZXQ6IHNvY2s6 IGFsbG93IGVCUEYgcHJvZ3JhbXMgdG8gYmUgYXR0YWNoZWQgdG8gc29ja2V0cyIpClNpZ25lZC1v ZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFja2VkLWJ5OiBO aWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+CkFja2VkLWJ5OiBBbGV4 ZWkgU3Rhcm92b2l0b3YgPGFzdEBwbHVtZ3JpZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9zb2NrX2RpYWcuYyB8 IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUvc29ja19kaWFnLmMgYi9uZXQvY29yZS9zb2NrX2RpYWcuYwppbmRleCA3NGRkZGY4Li41 NTZlY2Y5NiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29ja19kaWFnLmMKKysrIGIvbmV0L2NvcmUv c29ja19kaWFnLmMKQEAgLTg2LDYgKzg2LDkgQEAgaW50IHNvY2tfZGlhZ19wdXRfZmlsdGVyaW5m byhib29sIG1heV9yZXBvcnRfZmlsdGVyaW5mbywgc3RydWN0IHNvY2sgKnNrLAogCQlnb3RvIG91 dDsKIAogCWZwcm9nID0gZmlsdGVyLT5wcm9nLT5vcmlnX3Byb2c7CisJaWYgKCFmcHJvZykKKwkJ Z290byBvdXQ7CisKIAlmbGVuID0gYnBmX2NsYXNzaWNfcHJvZ2xlbihmcHJvZyk7CiAKIAlhdHRy ID0gbmxhX3Jlc2VydmUoc2tiLCBhdHRydHlwZSwgZmxlbik7Ci0tIAoyLjEuMAoKCkZyb20gODI5 MThhMDdmZTIyMmZlZWE0ZWJlMmRjYTIzZjdjMGEzYzFlYjg3NCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTog VGh1LCAzIFNlcCAyMDE1IDAwOjI5OjA3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNi8yOF0gaXB2 NjogZml4IGV4dGhkcnMgb2ZmbG9hZCByZWdpc3RyYXRpb24gaW4gb3V0X3J0IHBhdGgKClsgVXBz dHJlYW0gY29tbWl0IGU0MWIwYmVkYmEwMjkzYjllMWU4ZDFlOGVkNTUzMTA0Yjk2OTM2NTYgXQoK V2UgcHJldmlvdXNseSByZWdpc3RlciBJUFBST1RPX1JPVVRJTkcgb2ZmbG9hZCB1bmRlciBpbmV0 Nl9hZGRfb2ZmbG9hZCgpLApidXQgaW4gZXJyb3IgcGF0aCwgd2UgdHJ5IHRvIHVucmVnaXN0ZXIg aXQgd2l0aCBpbmV0X2RlbF9vZmZsb2FkKCkuIFRoaXMKZG9lc24ndCBzZWVtIGNvcnJlY3QsIGl0 IHNob3VsZCBhY3R1YWxseSBiZSBpbmV0Nl9kZWxfb2ZmbG9hZCgpLCBhbHNvCmlwdjZfZXh0aGRy c19vZmZsb2FkX2V4aXQoKSBmcm9tIHRoYXQgY29tbWl0IHNlZW1zIHJhdGhlciBpbmNvcnJlY3Qg KGl0CmFsc28gdXNlcyBydGhkcl9vZmZsb2FkIHR3aWNlKSwgYnV0IGl0IGdvdCByZW1vdmVkIGVu dGlyZWx5IGxhdGVyIG9uLgoKRml4ZXM6IDMzMzYyODhhOWZlYSAoImlwdjY6IFN3aXRjaCB0byB1 c2luZyBuZXcgb2ZmbG9hZCBpbmZyYXN0cnVjdHVyZS4iKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwg Qm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvZXh0aGRyc19vZmZsb2Fk LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9leHRoZHJzX29mZmxvYWQuYyBiL25ldC9pcHY2L2V4dGhk cnNfb2ZmbG9hZC5jCmluZGV4IDQ0N2E3ZmIuLmY1ZTJiYTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L2V4dGhkcnNfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY2L2V4dGhkcnNfb2ZmbG9hZC5jCkBAIC0z Niw2ICszNiw2IEBAIG91dDoKIAlyZXR1cm4gcmV0OwogCiBvdXRfcnQ6Ci0JaW5ldF9kZWxfb2Zm bG9hZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19ST1VUSU5HKTsKKwlpbmV0Nl9kZWxfb2ZmbG9h ZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19ST1VUSU5HKTsKIAlnb3RvIG91dDsKIH0KLS0gCjIu MS4wCgoKRnJvbSBkZDIyMmQ1ZGVkMjA0NTJmNWQxZGIyMDlkY2U3YjdiYWJmNTRiZTVhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtLmxp bnV4Lm9yZy51az4KRGF0ZTogV2VkLCAyIFNlcCAyMDE1IDE3OjI0OjE0ICswODAwClN1YmplY3Q6 IFtQQVRDSCAwNy8yOF0gbmV0OiBmZWM6IGNsZWFyIHJlY2VpdmUgaW50ZXJydXB0cyBiZWZvcmUg cHJvY2Vzc2luZyBhCiBwYWNrZXQKClsgVXBzdHJlYW0gY29tbWl0IGVkNjNmMWRjZDU3ODhkMzZm OTQyZmJjY2UzNTA3NDIzODVlM2UxOGMgXQoKVGhlIHBhdGNoIGp1c3QgdG8gcmUtc3VibWl0IHRo ZSBwYXRjaCAiZGIzNDIxYzExNGNmYTYzMjYiIGJlY2F1c2UgdGhlCnBhdGNoICI0ZDQ5NGNkYzky YjNiOWEwIiByZW1vdmUgdGhlIGNoYW5nZS4KCkNsZWFyIGFueSBwZW5kaW5nIHJlY2VpdmUgaW50 ZXJydXB0IGJlZm9yZSB3ZSBwcm9jZXNzIGEgcGVuZGluZyBwYWNrZXQuClRoaXMgaGVscHMgdG8g YXZvaWQgYW55IHNwdXJpb3VzIGludGVycnVwdHMgYmVpbmcgcmFpc2VkIGFmdGVyIHdlIGhhdmUK ZnVsbHkgY2xlYW5lZCB0aGUgcmVjZWl2ZSByaW5nLCB3aGlsZSBzdGlsbCBhbGxvd2luZyBhbiBp bnRlcnJ1cHQgdG8gYmUKcmFpc2VkIGlmIHdlIHJlY2VpdmUgYW5vdGhlciBwYWNrZXQuCgpUaGUg cG9zaXRpb24gb2YgdGhpcyBpcyBjcml0aWNhbDogd2UgbXVzdCBkbyB0aGlzIHByaW9yIHRvIHJl YWRpbmcgdGhlCm5leHQgcGFja2V0IHN0YXR1cyB0byBhdm9pZCBwb3RlbnRpYWxseSBkcm9wcGlu ZyBhbiBpbnRlcnJ1cHQgd2hlbiBhCnBhY2tldCBpcyBzdGlsbCBwZW5kaW5nLgoKQWNrZWQtYnk6 IEZ1Z2FuZyBEdWFuIDxCMzg2MTFAZnJlZXNjYWxlLmNvbT4KU2lnbmVkLW9mZi1ieTogUnVzc2Vs bCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9mcmVlc2NhbGUvZmVjX21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWlu LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwppbmRleCA2NmQ0 N2U0Li41NzAzOTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUv ZmVjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4u YwpAQCAtMTM5Niw2ICsxMzk2LDcgQEAgZmVjX2VuZXRfcnhfcXVldWUoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYsIGludCBidWRnZXQsIHUxNiBxdWV1ZV9pZCkKIAkJaWYgKChzdGF0dXMgJiBCRF9F TkVUX1JYX0xBU1QpID09IDApCiAJCQluZXRkZXZfZXJyKG5kZXYsICJyY3YgaXMgbm90ICtsYXN0 XG4iKTsKIAorCQl3cml0ZWwoRkVDX0VORVRfUlhGLCBmZXAtPmh3cCArIEZFQ19JRVZFTlQpOwog CiAJCS8qIENoZWNrIGZvciBlcnJvcnMuICovCiAJCWlmIChzdGF0dXMgJiAoQkRfRU5FVF9SWF9M RyB8IEJEX0VORVRfUlhfU0ggfCBCRF9FTkVUX1JYX05PIHwKLS0gCjIuMS4wCgoKRnJvbSBlMTJi OTNkMGQyM2YzY2I0ZGQ2OGQwOTk0MDhmNGM5NTNmMGUxMzQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBBdHN1c2hpIE5lbW90byA8bmVtb3RvQHRvc2hpYmEtdG9wcy5jby5qcD4KRGF0 ZTogV2VkLCAyIFNlcCAyMDE1IDE3OjQ5OjI5ICswOTAwClN1YmplY3Q6IFtQQVRDSCAwOC8yOF0g bmV0OiBldGg6IGFsdGVyYTogZml4IG5hcGkgcG9sbF9saXN0IGNvcnJ1cHRpb24KClsgVXBzdHJl YW0gY29tbWl0IDQ1NDhhNjk3ZTQ5NjlkNjk1MDQ3Y2ViZDZkOWFmNWUyZjZjYzcyOGUgXQoKdHNl X3BvbGwoKSBjYWxscyBfX25hcGlfY29tcGxldGUoKSB3aXRoIGlycSBlbmFibGVkLiAgVGhpcyBs ZWFkcyBuYXBpCnBvbGxfbGlzdCBjb3JydXB0aW9uIGFuZCBtYXkgc3RvcCBhbGwgbmFwaSBkcml2 ZXJzIHdvcmtpbmcuClVzZSBuYXBpX2NvbXBsZXRlKCkgaW5zdGVhZCBvZiBfX25hcGlfY29tcGxl dGUoKS4KClNpZ25lZC1vZmYtYnk6IEF0c3VzaGkgTmVtb3RvIDxuZW1vdG9AdG9zaGliYS10b3Bz LmNvLmpwPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jIHwg MyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMKaW5kZXggZGE0 OGU2Ni4uODIwNzg3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2Fs dGVyYV90c2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFf dHNlX21haW4uYwpAQCAtNTExLDggKzUxMSw3IEBAIHN0YXRpYyBpbnQgdHNlX3BvbGwoc3RydWN0 IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCiAJaWYgKHJ4Y29tcGxldGUgPCBidWRn ZXQpIHsKIAotCQluYXBpX2dyb19mbHVzaChuYXBpLCBmYWxzZSk7Ci0JCV9fbmFwaV9jb21wbGV0 ZShuYXBpKTsKKwkJbmFwaV9jb21wbGV0ZShuYXBpKTsKIAogCQluZXRkZXZfZGJnKHByaXYtPmRl diwKIAkJCSAgICJOQVBJIENvbXBsZXRlLCBkaWQgJWQgcGFja2V0cyB3aXRoIGJ1ZGdldCAlZFxu IiwKLS0gCjIuMS4wCgoKRnJvbSBkOGJlMTI0YmQ3YTY4Y2NkODJjMzUyMmM0YTNkMTMyYzY2ZmZj MzI4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIExhaW5nIDxyaWNoYXJk LmxhaW5nQGFsbGllZHRlbGVzaXMuY28ubno+CkRhdGU6IFRodSwgMyBTZXAgMjAxNSAxMzo1Mjoz MSArMTIwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMjhdIG5ldC9pcHY2OiBDb3JyZWN0IFBJTTYgbXJ0 X2xvY2sgaGFuZGxpbmcKClsgVXBzdHJlYW0gY29tbWl0IDI1YjRhNDRjMTljODNkOThlOGMwODA3 YTdlZGUwN2MxZjI4ZWFiOGIgXQoKSW4gdGhlIElQdjYgbXVsdGljYXN0IHJvdXRpbmcgY29kZSB0 aGUgbXJ0X2xvY2sgd2FzIG5vdCBiZWluZyByZWxlYXNlZApjb3JyZWN0bHkgaW4gdGhlIE1GQyBp dGVyYXRvciwgYXMgYSByZXN1bHQgYWRkaW5nIG9yIGRlbGV0aW5nIGEgTUlGIHdvdWxkCmNhdXNl IGEgaGFuZyBiZWNhdXNlIHRoZSBtcnRfbG9jayBjb3VsZCBub3QgYmUgYWNxdWlyZWQuCgpUaGlz IGZpeCBpcyBhIGNvcHkgb2YgdGhlIGNvZGUgZm9yIHRoZSBJUHY0IGNhc2UgYW5kIGVuc3VyZXMg dGhhdCB0aGUgbG9jawppcyByZWxlYXNlZCBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBSaWNo YXJkIExhaW5nIDxyaWNoYXJkLmxhaW5nQGFsbGllZHRlbGVzaXMuY28ubno+CkFja2VkLWJ5OiBD b25nIFdhbmcgPGN3YW5nQHR3b3BlbnNvdXJjZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZtci5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggNzRjZWI3My4u NWYzNjI2NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZt ci5jCkBAIC01NTAsNyArNTUwLDcgQEAgc3RhdGljIHZvaWQgaXBtcl9tZmNfc2VxX3N0b3Aoc3Ry dWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpCiAKIAlpZiAoaXQtPmNhY2hlID09ICZtcnQtPm1m YzZfdW5yZXNfcXVldWUpCiAJCXNwaW5fdW5sb2NrX2JoKCZtZmNfdW5yZXNfbG9jayk7Ci0JZWxz ZSBpZiAoaXQtPmNhY2hlID09IG1ydC0+bWZjNl9jYWNoZV9hcnJheSkKKwllbHNlIGlmIChpdC0+ Y2FjaGUgPT0gJm1ydC0+bWZjNl9jYWNoZV9hcnJheVtpdC0+Y3RdKQogCQlyZWFkX3VubG9jaygm bXJ0X2xvY2spOwogfQogCi0tIAoyLjEuMAoKCkZyb20gM2JhOTU3YjcxYzRiNmRlMjAwNDhkYmEw Mjg1NTZjZDRhZWVlM2FlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBG YWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNSBTZXAgMjAxNSAxMzow NzoyNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjhdIG5ldDogZHNhOiBiY21fc2YyOiBGaXgg YWdlaW5nIGNvbmRpdGlvbnMgYW5kIG9wZXJhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgMzk3OTdh Mjc5ZDYyOTcyY2Q5MTRlZjU4MGZkZmFjYjEzZTUwOGJmOCBdCgpUaGUgY29tcGFyaXNvbiBjaGVj ayBiZXR3ZWVuIGN1cl9od19zdGF0ZSBhbmQgaHdfc3RhdGUgaXMgY3VycmVudGx5CmludmFsaWQg YmVjYXVzZSBjdXJfaHdfc3RhdGUgaXMgcmlnaHQgc2hpZnRlZCBieSBHX01JU1RQX1NISUZULCB3 aGlsZQpod19zdGF0ZSBpcyBub3QsIHNvIHdlIGVuZC11cCBjb21wYXJpbmcgYml0cyAyOjAgd2l0 aCBiaXRzIDc6NSwgd2hpY2ggaXMKZ29pbmcgdG8gY2F1c2UgYW4gYWRkaXRpb25hbCBhZ2luZyB0 byBvY2N1ci4gRml4IHRoaXMgYnkgbm90IHNoaWZ0aW5nCmN1cl9od19zdGF0ZSB3aGlsZSByZWFk aW5nIGl0LCBidXQgaW5zdGVhZCwgbWFzayB0aGUgdmFsdWUgd2l0aCB0aGUKYXBwcm9wcmlhdGVs eSBzaGl0ZnRlZCBiaXRtYXNrLgoKVGhlIG90aGVyIHByb2JsZW0gd2l0aCB0aGUgZmFzdC1hZ2Vp bmcgcHJvY2VzcyBpcyB0aGF0IHdlIGRpZCBub3Qgc2V0CnRoZSBFTl9BR0VfRFlOQU1JQyBiaXQg dG8gcmVxdWVzdCB0aGUgYWdlaW5nIHRvIG9jY3VyIGZvciBkeW5hbWljYWxseQpsZWFybmVkIE1B QyBhZGRyZXNzZXMuIEZpbmFsbHksIHdyaXRlIGJhY2sgMCB0byB0aGUgRkFTVF9BR0VfQ1RSTApy ZWdpc3RlciB0byBhdm9pZCBsZWF2aW5nIHNwdXJpb3VzIGJpdHMgc2V0cyBmcm9tIG9uZSBvcGVy YXRpb24gdG8gdGhlCm90aGVyLgoKRml4ZXM6IDEyZjQ2MGYyMzQyMyAoIm5ldDogZHNhOiBiY21f c2YyOiBhZGQgSFcgYnJpZGdpbmcgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFp bmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYyB8 IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jIGIvZHJpdmVy cy9uZXQvZHNhL2JjbV9zZjIuYwppbmRleCBjZWRiNTcyLi5mMjRjNGZlIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMK QEAgLTQxNyw3ICs0MTcsNyBAQCBzdGF0aWMgaW50IGJjbV9zZjJfc3dfZmFzdF9hZ2VfcG9ydChz dHJ1Y3QgZHNhX3N3aXRjaCAgKmRzLCBpbnQgcG9ydCkKIAljb3JlX3dyaXRlbChwcml2LCBwb3J0 LCBDT1JFX0ZBU1RfQUdFX1BPUlQpOwogCiAJcmVnID0gY29yZV9yZWFkbChwcml2LCBDT1JFX0ZB U1RfQUdFX0NUUkwpOwotCXJlZyB8PSBFTl9BR0VfUE9SVCB8IEZBU1RfQUdFX1NUUl9ET05FOwor CXJlZyB8PSBFTl9BR0VfUE9SVCB8IEVOX0FHRV9EWU5BTUlDIHwgRkFTVF9BR0VfU1RSX0RPTkU7 CiAJY29yZV93cml0ZWwocHJpdiwgcmVnLCBDT1JFX0ZBU1RfQUdFX0NUUkwpOwogCiAJZG8gewpA QCAtNDMxLDYgKzQzMSw4IEBAIHN0YXRpYyBpbnQgYmNtX3NmMl9zd19mYXN0X2FnZV9wb3J0KHN0 cnVjdCBkc2Ffc3dpdGNoICAqZHMsIGludCBwb3J0KQogCWlmICghdGltZW91dCkKIAkJcmV0dXJu IC1FVElNRURPVVQ7CiAKKwljb3JlX3dyaXRlbChwcml2LCAwLCBDT1JFX0ZBU1RfQUdFX0NUUkwp OworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTUwNiw3ICs1MDgsNyBAQCBzdGF0aWMgaW50IGJjbV9z ZjJfc3dfYnJfc2V0X3N0cF9zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAog CXUzMiByZWc7CiAKIAlyZWcgPSBjb3JlX3JlYWRsKHByaXYsIENPUkVfR19QQ1RMX1BPUlQocG9y dCkpOwotCWN1cl9od19zdGF0ZSA9IHJlZyA+PiBHX01JU1RQX1NUQVRFX1NISUZUOworCWN1cl9o d19zdGF0ZSA9IHJlZyAmIChHX01JU1RQX1NUQVRFX01BU0sgPDwgR19NSVNUUF9TVEFURV9TSElG VCk7CiAKIAlzd2l0Y2ggKHN0YXRlKSB7CiAJY2FzZSBCUl9TVEFURV9ESVNBQkxFRDoKQEAgLTUz MCwxMCArNTMyLDEyIEBAIHN0YXRpYyBpbnQgYmNtX3NmMl9zd19icl9zZXRfc3RwX3N0YXRlKHN0 cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJfQogCiAJLyogRmFzdC1hZ2UgQVJMIGVu dHJpZXMgaWYgd2UgYXJlIG1vdmluZyBhIHBvcnQgZnJvbSBMZWFybmluZyBvcgotCSAqIEZvcndh cmRpbmcgc3RhdGUgdG8gRGlzYWJsZWQsIEJsb2NraW5nIG9yIExpc3RlbmluZyBzdGF0ZQorCSAq IEZvcndhcmRpbmcgKGN1cl9od19zdGF0ZSkgc3RhdGUgdG8gRGlzYWJsZWQsIEJsb2NraW5nIG9y IExpc3RlbmluZworCSAqIHN0YXRlIChod19zdGF0ZSkKIAkgKi8KIAlpZiAoY3VyX2h3X3N0YXRl ICE9IGh3X3N0YXRlKSB7Ci0JCWlmIChjdXJfaHdfc3RhdGUgJiA0ICYmICEoaHdfc3RhdGUgJiA0 KSkgeworCQlpZiAoY3VyX2h3X3N0YXRlID49IEdfTUlTVFBfTEVBUk5fU1RBVEUgJiYKKwkJICAg IGh3X3N0YXRlIDw9IEdfTUlTVFBfTElTVEVOX1NUQVRFKSB7CiAJCQlyZXQgPSBiY21fc2YyX3N3 X2Zhc3RfYWdlX3BvcnQoZHMsIHBvcnQpOwogCQkJaWYgKHJldCkgewogCQkJCXByX2VycigiJXM6 IGZhc3QtYWdlaW5nIGZhaWxlZFxuIiwgX19mdW5jX18pOwotLSAKMi4xLjAKCgpGcm9tIDU0YWU1 NGIxMTMzMmQwODlkYzRkOWFkOTg5YmJmNjM0MjhkNDk2NDEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFJvb3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTog VHVlLCA4IFNlcCAyMDE1IDEwOjUzOjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8yOF0gaXB2 NjogZml4IG11bHRpcGF0aCByb3V0ZSByZXBsYWNlIGVycm9yIHJlY292ZXJ5CgpbIFVwc3RyZWFt IGNvbW1pdCA2YjllYTVhNjRlZDVlZWIzZjY4ZjJlNmZjY2UwZWQxMTc5ODAxZDFlIF0KClByb2Js ZW06ClRoZSBlY21wIHJvdXRlIHJlcGxhY2Ugc3VwcG9ydCBmb3IgaXB2NiBpbiB0aGUga2VybmVs LCBkZWxldGVzIHRoZQpleGlzdGluZyBlY21wIHJvdXRlIHRvbyBlYXJseSwgaWUgd2hlbiBpdCBp bnN0YWxscyB0aGUgZmlyc3QgbmV4dGhvcC4KSWYgdGhlcmUgaXMgYW4gZXJyb3IgaW4gaW5zdGFs bGluZyB0aGUgc3Vic2VxdWVudCBuZXh0aG9wcywgaXRzIHRvbyBsYXRlCnRvIHJlY292ZXIgdGhl IGFscmVhZHkgZGVsZXRlZCBleGlzdGluZyByb3V0ZSBsZWF2aW5nIHRoZSBmaWIKaW4gYW4gaW5j b25zaXN0ZW50IHN0YXRlLgoKVGhpcyBwYXRjaCByZWR1Y2VzIHRoZSBwb3NzaWJpbGl0eSBvZiB0 aGlzIGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmc6CmEpIENoYW5nZXMgdGhlIGV4aXN0aW5nIG11bHRp cGF0aCByb3V0ZSBhZGQgY29kZSB0byBhIHR3byBzdGFnZSBwcm9jZXNzOgogIGJ1aWxkIHJ0Nl9p bmZvcyArIGluc2VydCB0aGVtCglpcDZfcm91dGVfYWRkIHJ0Nl9pbmZvIGNyZWF0aW9uIGNvZGUg aXMgbW92ZWQgaW50bwoJaXA2X3JvdXRlX2luZm9fY3JlYXRlLgpiKSBUaGlzIGVuc3VyZXMgdGhh dCBtb3N0IGVycm9ycyBhcmUgY2F1Z2h0IGR1cmluZyBidWlsZGluZyBydDZfaW5mb3MKICBhbmQg d2UgZmFpbCBlYXJseQpjKSBTZXBhcmF0ZXMgbXVsdGlwYXRoIGFkZCBhbmQgZGVsIGNvZGUuIEJl Y2F1c2UgYWRkIG5lZWRzIHRoZSBzcGVjaWFsCiAgdHdvIHN0YWdlIG1vZGUgaW4gYSkgYW5kIGRl bGV0ZSBlc3NlbnRpYWxseSBkb2VzIG5vdCBjYXJlLgpkKSBJbiBhbnkgZXZlbnQgaWYgdGhlIGNv ZGUgZmFpbHMgZHVyaW5nIGluc2VydGluZyBhIHJvdXRlIGFnYWluLCBhCiAgd2FybmluZyBpcyBw cmludGVkIChUaGlzIHNob3VsZCBiZSB1bmxpa2VseSkKCkJlZm9yZSB0aGUgcGF0Y2g6CiRpcCAt NiByb3V0ZSBzaG93CjMwMDA6MTAwMDoxMDAwOjEwMDA6OjIgdmlhIGZlODA6OjIwMjpmZjpmZTAw OmIgZGV2IHN3cDQ5czAgbWV0cmljIDEwMjQKMzAwMDoxMDAwOjEwMDA6MTAwMDo6MiB2aWEgZmU4 MDo6MjAyOmZmOmZlMDA6ZCBkZXYgc3dwNDlzMSBtZXRyaWMgMTAyNAozMDAwOjEwMDA6MTAwMDox MDAwOjoyIHZpYSBmZTgwOjoyMDI6ZmY6ZmUwMDpmIGRldiBzd3A0OXMyIG1ldHJpYyAxMDI0Cgov KiBUcnkgcmVwbGFjaW5nIHRoZSByb3V0ZSB3aXRoIGEgZHVwbGljYXRlIG5leHRob3AgKi8KJGlw IC02IHJvdXRlIGNoYW5nZSAzMDAwOjEwMDA6MTAwMDoxMDAwOjoyLzEyOCBuZXh0aG9wIHZpYQpm ZTgwOjoyMDI6ZmY6ZmUwMDpiIGRldiBzd3A0OXMwIG5leHRob3AgdmlhIGZlODA6OjIwMjpmZjpm ZTAwOmQgZGV2CnN3cDQ5czEgbmV4dGhvcCB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZCBkZXYgc3dw NDlzMQpSVE5FVExJTksgYW5zd2VyczogRmlsZSBleGlzdHMKCiRpcCAtNiByb3V0ZSBzaG93Ci8q IHByZXZpb3VzbHkgYWRkZWQgZWNtcCByb3V0ZSAzMDAwOjEwMDA6MTAwMDoxMDAwOjoyIGRpc3Nh cHBlYXJzIGZyb20KICoga2VybmVsICovCgpBZnRlciB0aGUgcGF0Y2g6CiRpcCAtNiByb3V0ZSBz aG93CjMwMDA6MTAwMDoxMDAwOjEwMDA6OjIgdmlhIGZlODA6OjIwMjpmZjpmZTAwOmIgZGV2IHN3 cDQ5czAgbWV0cmljIDEwMjQKMzAwMDoxMDAwOjEwMDA6MTAwMDo6MiB2aWEgZmU4MDo6MjAyOmZm OmZlMDA6ZCBkZXYgc3dwNDlzMSBtZXRyaWMgMTAyNAozMDAwOjEwMDA6MTAwMDoxMDAwOjoyIHZp YSBmZTgwOjoyMDI6ZmY6ZmUwMDpmIGRldiBzd3A0OXMyIG1ldHJpYyAxMDI0CgovKiBUcnkgcmVw bGFjaW5nIHRoZSByb3V0ZSB3aXRoIGEgZHVwbGljYXRlIG5leHRob3AgKi8KJGlwIC02IHJvdXRl IGNoYW5nZSAzMDAwOjEwMDA6MTAwMDoxMDAwOjoyLzEyOCBuZXh0aG9wIHZpYQpmZTgwOjoyMDI6 ZmY6ZmUwMDpiIGRldiBzd3A0OXMwIG5leHRob3AgdmlhIGZlODA6OjIwMjpmZjpmZTAwOmQgZGV2 CnN3cDQ5czEgbmV4dGhvcCB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZCBkZXYgc3dwNDlzMQpSVE5F VExJTksgYW5zd2VyczogRmlsZSBleGlzdHMKCiRpcCAtNiByb3V0ZSBzaG93CjMwMDA6MTAwMDox MDAwOjEwMDA6OjIgdmlhIGZlODA6OjIwMjpmZjpmZTAwOmIgZGV2IHN3cDQ5czAgbWV0cmljIDEw MjQKMzAwMDoxMDAwOjEwMDA6MTAwMDo6MiB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZCBkZXYgc3dw NDlzMSBtZXRyaWMgMTAyNAozMDAwOjEwMDA6MTAwMDoxMDAwOjoyIHZpYSBmZTgwOjoyMDI6ZmY6 ZmUwMDpmIGRldiBzd3A0OXMyIG1ldHJpYyAxMDI0CgpGaXhlczogMjc1OTY0NzI0NzNhICgiaXB2 NjogZml4IEVDTVAgcm91dGUgcmVwbGFjZW1lbnQiKQpTaWduZWQtb2ZmLWJ5OiBSb29wYSBQcmFi aHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClJldmlld2VkLWJ5OiBOaWtvbGF5IEFsZWtz YW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkFja2VkLWJ5OiBOaWNvbGFzIERp Y2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yb3V0ZS5jIHwgMjAx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAxNzUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggYzczYWU1 MC4uZjM3MWZlZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9y b3V0ZS5jCkBAIC0xNTE1LDcgKzE1MTUsNyBAQCBzdGF0aWMgaW50IGlwNl9jb252ZXJ0X21ldHJp Y3Moc3RydWN0IG14Nl9jb25maWcgKm14YywKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIAotaW50IGlw Nl9yb3V0ZV9hZGQoc3RydWN0IGZpYjZfY29uZmlnICpjZmcpCitpbnQgaXA2X3JvdXRlX2luZm9f Y3JlYXRlKHN0cnVjdCBmaWI2X2NvbmZpZyAqY2ZnLCBzdHJ1Y3QgcnQ2X2luZm8gKipydF9yZXQp CiB7CiAJaW50IGVycjsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBjZmctPmZjX25saW5mby5ubF9uZXQ7 CkBAIC0xNTIzLDcgKzE1MjMsNiBAQCBpbnQgaXA2X3JvdXRlX2FkZChzdHJ1Y3QgZmliNl9jb25m aWcgKmNmZykKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gTlVMTDsKIAlzdHJ1Y3QgaW5ldDZf ZGV2ICppZGV2ID0gTlVMTDsKIAlzdHJ1Y3QgZmliNl90YWJsZSAqdGFibGU7Ci0Jc3RydWN0IG14 Nl9jb25maWcgbXhjID0geyAubXggPSBOVUxMLCB9OwogCWludCBhZGRyX3R5cGU7CiAKIAlpZiAo Y2ZnLT5mY19kc3RfbGVuID4gMTI4IHx8IGNmZy0+ZmNfc3JjX2xlbiA+IDEyOCkKQEAgLTE3MTks NiArMTcxOCwzMiBAQCBpbnN0YWxsX3JvdXRlOgogCiAJY2ZnLT5mY19ubGluZm8ubmxfbmV0ID0g ZGV2X25ldChkZXYpOwogCisJKnJ0X3JldCA9IHJ0OworCisJcmV0dXJuIDA7CitvdXQ6CisJaWYg KGRldikKKwkJZGV2X3B1dChkZXYpOworCWlmIChpZGV2KQorCQlpbjZfZGV2X3B1dChpZGV2KTsK KwlpZiAocnQpCisJCWRzdF9mcmVlKCZydC0+ZHN0KTsKKworCSpydF9yZXQgPSBOVUxMOworCisJ cmV0dXJuIGVycjsKK30KKworaW50IGlwNl9yb3V0ZV9hZGQoc3RydWN0IGZpYjZfY29uZmlnICpj ZmcpCit7CisJc3RydWN0IG14Nl9jb25maWcgbXhjID0geyAubXggPSBOVUxMLCB9OworCXN0cnVj dCBydDZfaW5mbyAqcnQgPSBOVUxMOworCWludCBlcnI7CisKKwllcnIgPSBpcDZfcm91dGVfaW5m b19jcmVhdGUoY2ZnLCAmcnQpOworCWlmIChlcnIpCisJCWdvdG8gb3V0OworCiAJZXJyID0gaXA2 X2NvbnZlcnRfbWV0cmljcygmbXhjLCBjZmcpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwpAQCAt MTcyNiwxNCArMTc1MSwxMiBAQCBpbnN0YWxsX3JvdXRlOgogCWVyciA9IF9faXA2X2luc19ydChy dCwgJmNmZy0+ZmNfbmxpbmZvLCAmbXhjKTsKIAogCWtmcmVlKG14Yy5teCk7CisKIAlyZXR1cm4g ZXJyOwogb3V0OgotCWlmIChkZXYpCi0JCWRldl9wdXQoZGV2KTsKLQlpZiAoaWRldikKLQkJaW42 X2Rldl9wdXQoaWRldik7CiAJaWYgKHJ0KQogCQlkc3RfZnJlZSgmcnQtPmRzdCk7CisKIAlyZXR1 cm4gZXJyOwogfQogCkBAIC0yNDk2LDE5ICsyNTE5LDc4IEBAIGVycm91dDoKIAlyZXR1cm4gZXJy OwogfQogCi1zdGF0aWMgaW50IGlwNl9yb3V0ZV9tdWx0aXBhdGgoc3RydWN0IGZpYjZfY29uZmln ICpjZmcsIGludCBhZGQpCitzdHJ1Y3QgcnQ2X25oIHsKKwlzdHJ1Y3QgcnQ2X2luZm8gKnJ0Nl9p bmZvOworCXN0cnVjdCBmaWI2X2NvbmZpZyByX2NmZzsKKwlzdHJ1Y3QgbXg2X2NvbmZpZyBteGM7 CisJc3RydWN0IGxpc3RfaGVhZCBuZXh0OworfTsKKworc3RhdGljIHZvaWQgaXA2X3ByaW50X3Jl cGxhY2Vfcm91dGVfZXJyKHN0cnVjdCBsaXN0X2hlYWQgKnJ0Nl9uaF9saXN0KQoreworCXN0cnVj dCBydDZfbmggKm5oOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShuaCwgcnQ2X25oX2xpc3QsIG5l eHQpIHsKKwkJcHJfd2FybigiSVBWNjogbXVsdGlwYXRoIHJvdXRlIHJlcGxhY2UgZmFpbGVkIChj aGVjayBjb25zaXN0ZW5jeSBvZiBpbnN0YWxsZWQgcm91dGVzKTogJXBJNiBuZXh0aG9wICVwSTYg aWZpICVkXG4iLAorCQkgICAgICAgICZuaC0+cl9jZmcuZmNfZHN0LCAmbmgtPnJfY2ZnLmZjX2dh dGV3YXksCisJCSAgICAgICAgbmgtPnJfY2ZnLmZjX2lmaW5kZXgpOworCX0KK30KKworc3RhdGlj IGludCBpcDZfcm91dGVfaW5mb19hcHBlbmQoc3RydWN0IGxpc3RfaGVhZCAqcnQ2X25oX2xpc3Qs CisJCQkJIHN0cnVjdCBydDZfaW5mbyAqcnQsIHN0cnVjdCBmaWI2X2NvbmZpZyAqcl9jZmcpCit7 CisJc3RydWN0IHJ0Nl9uaCAqbmg7CisJc3RydWN0IHJ0Nl9pbmZvICpydG5oOworCWludCBlcnIg PSAtRUVYSVNUOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShuaCwgcnQ2X25oX2xpc3QsIG5leHQp IHsKKwkJLyogY2hlY2sgaWYgcnQ2X2luZm8gYWxyZWFkeSBleGlzdHMgKi8KKwkJcnRuaCA9IG5o LT5ydDZfaW5mbzsKKworCQlpZiAocnRuaC0+ZHN0LmRldiA9PSBydC0+ZHN0LmRldiAmJgorCQkg ICAgcnRuaC0+cnQ2aV9pZGV2ID09IHJ0LT5ydDZpX2lkZXYgJiYKKwkJICAgIGlwdjZfYWRkcl9l cXVhbCgmcnRuaC0+cnQ2aV9nYXRld2F5LAorCQkJCSAgICAmcnQtPnJ0NmlfZ2F0ZXdheSkpCisJ CQlyZXR1cm4gZXJyOworCX0KKworCW5oID0ga3phbGxvYyhzaXplb2YoKm5oKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFuaCkKKwkJcmV0dXJuIC1FTk9NRU07CisJbmgtPnJ0Nl9pbmZvID0gcnQ7CisJ ZXJyID0gaXA2X2NvbnZlcnRfbWV0cmljcygmbmgtPm14Yywgcl9jZmcpOworCWlmIChlcnIpIHsK KwkJa2ZyZWUobmgpOworCQlyZXR1cm4gZXJyOworCX0KKwltZW1jcHkoJm5oLT5yX2NmZywgcl9j ZmcsIHNpemVvZigqcl9jZmcpKTsKKwlsaXN0X2FkZF90YWlsKCZuaC0+bmV4dCwgcnQ2X25oX2xp c3QpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaXA2X3JvdXRlX211bHRpcGF0aF9h ZGQoc3RydWN0IGZpYjZfY29uZmlnICpjZmcpCiB7CiAJc3RydWN0IGZpYjZfY29uZmlnIHJfY2Zn OwogCXN0cnVjdCBydG5leHRob3AgKnJ0bmg7CisJc3RydWN0IHJ0Nl9pbmZvICpydDsKKwlzdHJ1 Y3QgcnQ2X25oICplcnJfbmg7CisJc3RydWN0IHJ0Nl9uaCAqbmgsICpuaF9zYWZlOwogCWludCBy ZW1haW5pbmc7CiAJaW50IGF0dHJsZW47Ci0JaW50IGVyciA9IDAsIGxhc3RfZXJyID0gMDsKKwlp bnQgZXJyID0gMTsKKwlpbnQgbmhuID0gMDsKKwlpbnQgcmVwbGFjZSA9IChjZmctPmZjX25saW5m by5ubGggJiYKKwkJICAgICAgIChjZmctPmZjX25saW5mby5ubGgtPm5sbXNnX2ZsYWdzICYgTkxN X0ZfUkVQTEFDRSkpOworCUxJU1RfSEVBRChydDZfbmhfbGlzdCk7CiAKIAlyZW1haW5pbmcgPSBj ZmctPmZjX21wX2xlbjsKLWJlZ2lubmluZzoKIAlydG5oID0gKHN0cnVjdCBydG5leHRob3AgKilj ZmctPmZjX21wOwogCi0JLyogUGFyc2UgYSBNdWx0aXBhdGggRW50cnkgKi8KKwkvKiBQYXJzZSBh IE11bHRpcGF0aCBFbnRyeSBhbmQgYnVpbGQgYSBsaXN0IChydDZfbmhfbGlzdCkgb2YKKwkgKiBy dDZfaW5mbyBzdHJ1Y3RzIHBlciBuZXh0aG9wCisJICovCiAJd2hpbGUgKHJ0bmhfb2socnRuaCwg cmVtYWluaW5nKSkgewogCQltZW1jcHkoJnJfY2ZnLCBjZmcsIHNpemVvZigqY2ZnKSk7CiAJCWlm IChydG5oLT5ydG5oX2lmaW5kZXgpCkBAIC0yNTI0LDIyICsyNjA2LDMyIEBAIGJlZ2lubmluZzoK IAkJCQlyX2NmZy5mY19mbGFncyB8PSBSVEZfR0FURVdBWTsKIAkJCX0KIAkJfQotCQllcnIgPSBh ZGQgPyBpcDZfcm91dGVfYWRkKCZyX2NmZykgOiBpcDZfcm91dGVfZGVsKCZyX2NmZyk7CisKKwkJ ZXJyID0gaXA2X3JvdXRlX2luZm9fY3JlYXRlKCZyX2NmZywgJnJ0KTsKKwkJaWYgKGVycikKKwkJ CWdvdG8gY2xlYW51cDsKKworCQllcnIgPSBpcDZfcm91dGVfaW5mb19hcHBlbmQoJnJ0Nl9uaF9s aXN0LCBydCwgJnJfY2ZnKTsKIAkJaWYgKGVycikgewotCQkJbGFzdF9lcnIgPSBlcnI7Ci0JCQkv KiBJZiB3ZSBhcmUgdHJ5aW5nIHRvIHJlbW92ZSBhIHJvdXRlLCBkbyBub3Qgc3RvcCB0aGUKLQkJ CSAqIGxvb3Agd2hlbiBpcDZfcm91dGVfZGVsKCkgZmFpbHMgKGJlY2F1c2UgbmV4dCBob3AgaXMK LQkJCSAqIGFscmVhZHkgZ29uZSksIHdlIHNob3VsZCB0cnkgdG8gcmVtb3ZlIGFsbCBuZXh0IGhv cHMuCi0JCQkgKi8KLQkJCWlmIChhZGQpIHsKLQkJCQkvKiBJZiBhZGQgZmFpbHMsIHdlIHNob3Vs ZCB0cnkgdG8gZGVsZXRlIGFsbAotCQkJCSAqIG5leHQgaG9wcyB0aGF0IGhhdmUgYmVlbiBhbHJl YWR5IGFkZGVkLgotCQkJCSAqLwotCQkJCWFkZCA9IDA7Ci0JCQkJcmVtYWluaW5nID0gY2ZnLT5m Y19tcF9sZW4gLSByZW1haW5pbmc7Ci0JCQkJZ290byBiZWdpbm5pbmc7Ci0JCQl9CisJCQlkc3Rf ZnJlZSgmcnQtPmRzdCk7CisJCQlnb3RvIGNsZWFudXA7CisJCX0KKworCQlydG5oID0gcnRuaF9u ZXh0KHJ0bmgsICZyZW1haW5pbmcpOworCX0KKworCWVycl9uaCA9IE5VTEw7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShuaCwgJnJ0Nl9uaF9saXN0LCBuZXh0KSB7CisJCWVyciA9IF9faXA2X2luc19y dChuaC0+cnQ2X2luZm8sICZjZmctPmZjX25saW5mbywgJm5oLT5teGMpOworCQkvKiBuaC0+cnQ2 X2luZm8gaXMgdXNlZCBvciBmcmVlZCBhdCB0aGlzIHBvaW50LCByZXNldCB0byBOVUxMKi8KKwkJ bmgtPnJ0Nl9pbmZvID0gTlVMTDsKKwkJaWYgKGVycikgeworCQkJaWYgKHJlcGxhY2UgJiYgbmhu KQorCQkJCWlwNl9wcmludF9yZXBsYWNlX3JvdXRlX2VycigmcnQ2X25oX2xpc3QpOworCQkJZXJy X25oID0gbmg7CisJCQlnb3RvIGFkZF9lcnJvdXQ7CiAJCX0KKwogCQkvKiBCZWNhdXNlIGVhY2gg cm91dGUgaXMgYWRkZWQgbGlrZSBhIHNpbmdsZSByb3V0ZSB3ZSByZW1vdmUKIAkJICogdGhlc2Ug ZmxhZ3MgYWZ0ZXIgdGhlIGZpcnN0IG5leHRob3A6IGlmIHRoZXJlIGlzIGEgY29sbGlzaW9uLAog CQkgKiB3ZSBoYXZlIGFscmVhZHkgZmFpbGVkIHRvIGFkZCB0aGUgZmlyc3QgbmV4dGhvcDoKQEAg LTI1NDksNiArMjY0MSw2MyBAQCBiZWdpbm5pbmc6CiAJCSAqLwogCQljZmctPmZjX25saW5mby5u bGgtPm5sbXNnX2ZsYWdzICY9IH4oTkxNX0ZfRVhDTCB8CiAJCQkJCQkgICAgIE5MTV9GX1JFUExB Q0UpOworCQluaG4rKzsKKwl9CisKKwlnb3RvIGNsZWFudXA7CisKK2FkZF9lcnJvdXQ6CisJLyog RGVsZXRlIHJvdXRlcyB0aGF0IHdlcmUgYWxyZWFkeSBhZGRlZCAqLworCWxpc3RfZm9yX2VhY2hf ZW50cnkobmgsICZydDZfbmhfbGlzdCwgbmV4dCkgeworCQlpZiAoZXJyX25oID09IG5oKQorCQkJ YnJlYWs7CisJCWlwNl9yb3V0ZV9kZWwoJm5oLT5yX2NmZyk7CisJfQorCitjbGVhbnVwOgorCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShuaCwgbmhfc2FmZSwgJnJ0Nl9uaF9saXN0LCBuZXh0KSB7 CisJCWlmIChuaC0+cnQ2X2luZm8pCisJCQlkc3RfZnJlZSgmbmgtPnJ0Nl9pbmZvLT5kc3QpOwor CQlpZiAobmgtPm14Yy5teCkKKwkJCWtmcmVlKG5oLT5teGMubXgpOworCQlsaXN0X2RlbCgmbmgt Pm5leHQpOworCQlrZnJlZShuaCk7CisJfQorCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGlu dCBpcDZfcm91dGVfbXVsdGlwYXRoX2RlbChzdHJ1Y3QgZmliNl9jb25maWcgKmNmZykKK3sKKwlz dHJ1Y3QgZmliNl9jb25maWcgcl9jZmc7CisJc3RydWN0IHJ0bmV4dGhvcCAqcnRuaDsKKwlpbnQg cmVtYWluaW5nOworCWludCBhdHRybGVuOworCWludCBlcnIgPSAxLCBsYXN0X2VyciA9IDA7CisK KwlyZW1haW5pbmcgPSBjZmctPmZjX21wX2xlbjsKKwlydG5oID0gKHN0cnVjdCBydG5leHRob3Ag KiljZmctPmZjX21wOworCisJLyogUGFyc2UgYSBNdWx0aXBhdGggRW50cnkgKi8KKwl3aGlsZSAo cnRuaF9vayhydG5oLCByZW1haW5pbmcpKSB7CisJCW1lbWNweSgmcl9jZmcsIGNmZywgc2l6ZW9m KCpjZmcpKTsKKwkJaWYgKHJ0bmgtPnJ0bmhfaWZpbmRleCkKKwkJCXJfY2ZnLmZjX2lmaW5kZXgg PSBydG5oLT5ydG5oX2lmaW5kZXg7CisKKwkJYXR0cmxlbiA9IHJ0bmhfYXR0cmxlbihydG5oKTsK KwkJaWYgKGF0dHJsZW4gPiAwKSB7CisJCQlzdHJ1Y3QgbmxhdHRyICpubGEsICphdHRycyA9IHJ0 bmhfYXR0cnMocnRuaCk7CisKKwkJCW5sYSA9IG5sYV9maW5kKGF0dHJzLCBhdHRybGVuLCBSVEFf R0FURVdBWSk7CisJCQlpZiAobmxhKSB7CisJCQkJbmxhX21lbWNweSgmcl9jZmcuZmNfZ2F0ZXdh eSwgbmxhLCAxNik7CisJCQkJcl9jZmcuZmNfZmxhZ3MgfD0gUlRGX0dBVEVXQVk7CisJCQl9CisJ CX0KKwkJZXJyID0gaXA2X3JvdXRlX2RlbCgmcl9jZmcpOworCQlpZiAoZXJyKQorCQkJbGFzdF9l cnIgPSBlcnI7CisKIAkJcnRuaCA9IHJ0bmhfbmV4dChydG5oLCAmcmVtYWluaW5nKTsKIAl9CiAK QEAgLTI1NjUsNyArMjcxNCw3IEBAIHN0YXRpYyBpbnQgaW5ldDZfcnRtX2RlbHJvdXRlKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoKQogCQlyZXR1cm4gZXJyOwogCiAJ aWYgKGNmZy5mY19tcCkKLQkJcmV0dXJuIGlwNl9yb3V0ZV9tdWx0aXBhdGgoJmNmZywgMCk7CisJ CXJldHVybiBpcDZfcm91dGVfbXVsdGlwYXRoX2RlbCgmY2ZnKTsKIAllbHNlCiAJCXJldHVybiBp cDZfcm91dGVfZGVsKCZjZmcpOwogfQpAQCAtMjU4MCw3ICsyNzI5LDcgQEAgc3RhdGljIGludCBp bmV0Nl9ydG1fbmV3cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpu bGgpCiAJCXJldHVybiBlcnI7CiAKIAlpZiAoY2ZnLmZjX21wKQotCQlyZXR1cm4gaXA2X3JvdXRl X211bHRpcGF0aCgmY2ZnLCAxKTsKKwkJcmV0dXJuIGlwNl9yb3V0ZV9tdWx0aXBhdGhfYWRkKCZj ZmcpOwogCWVsc2UKIAkJcmV0dXJuIGlwNl9yb3V0ZV9hZGQoJmNmZyk7CiB9Ci0tIAoyLjEuMAoK CkZyb20gOWViZTEyMDAxY2I3NmQ5YjQ3ZmUwZmFiNjkxOTgwZmU4ZTFlN2MyNSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAxNSAyMDowNjo0MSAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjhdIG5ldDogZHNhOiBiY21fc2YyOiBGaXggNjQtYml0cyByZWdpc3RlciB3cml0ZXMKClsg VXBzdHJlYW0gY29tbWl0IDAzNjc5YTE0NzM5YTBkNGMxNGI1MmJhNjVhNjlmZjU1M2JmYmE3M2Ig XQoKVGhlIG1hY3JvIHRvIHdyaXRlIDY0LWJpdHMgcXVhbnRpdGllcyB0byB0aGUgMzItYml0cyBy ZWdpc3RlciBzd2FwcGVkCnRoZSB2YWx1ZSBhbmQgb2Zmc2V0cyBhcmd1bWVudHMsIHdlIHdhbnQg dG8gcHJlc2VydmUgdGhlIG9yZGVyaW5nIG9mIHRoZQphcmd1bWVudHMgd2l0aCByZXNwZWN0IHRv IGhvdyB3cml0ZWwoKSBpcyBpbXBsZW1lbnRlZCBmb3IgaW5zdGFuY2U6CnZhbHVlIGZpcnN0LCBv ZmZzZXQvYmFzZSBzZWNvbmQuCgpGaXhlczogMjQ2ZDdmNzczYzEzICgibmV0OiBkc2E6IGFkZCBC cm9hZGNvbSBTRjIgc3dpdGNoIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3JpYW4gRmFpbmVs bGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogVml2aWVuIERpZGVsb3QgPHZp dmllbi5kaWRlbG90QHNhdm9pcmZhaXJlbGludXguY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL2JjbV9z ZjIuaCB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5oIGIvZHJpdmVycy9u ZXQvZHNhL2JjbV9zZjIuaAppbmRleCAyMmUyZWJmLi43ODlkN2I3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9kc2EvYmNtX3NmMi5oCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmgKQEAg LTExMiw4ICsxMTIsOCBAQCBzdGF0aWMgaW5saW5lIHU2NCBuYW1lIyNfcmVhZHEoc3RydWN0IGJj bV9zZjJfcHJpdiAqcHJpdiwgdTMyIG9mZikJXAogCXNwaW5fdW5sb2NrKCZwcml2LT5pbmRpcl9s b2NrKTsJCQkJCVwKIAlyZXR1cm4gKHU2NClpbmRpciA8PCAzMiB8IGRpcjsJCQkJCVwKIH0JCQkJ CQkJCQlcCi1zdGF0aWMgaW5saW5lIHZvaWQgbmFtZSMjX3dyaXRlcShzdHJ1Y3QgYmNtX3NmMl9w cml2ICpwcml2LCB1MzIgb2ZmLAlcCi0JCQkJCQkJdTY0IHZhbCkJXAorc3RhdGljIGlubGluZSB2 b2lkIG5hbWUjI193cml0ZXEoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgdTY0IHZhbCwJXAor CQkJCQkJCXUzMiBvZmYpCVwKIHsJCQkJCQkJCQlcCiAJc3Bpbl9sb2NrKCZwcml2LT5pbmRpcl9s b2NrKTsJCQkJCVwKIAlyZWdfd3JpdGVsKHByaXYsIHVwcGVyXzMyX2JpdHModmFsKSwgUkVHX0RJ Ul9EQVRBX1dSSVRFKTsJXAotLSAKMi4xLjAKCgpGcm9tIDMxNzk3NTFkZDg4YzM4N2QxMmZlNjA3 YjExMWZkZTNmM2VjZjVhMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBC b3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkRhdGU6IFRodSwgMTAgU2VwIDIwMTUgMjA6 MDU6NDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzI4XSBuZXRsaW5rLCBtbWFwOiB0cmFuc2Zv cm0gbW1hcCBza2IgaW50byBmdWxsIHNrYiBvbiB0YXBzCgpbIFVwc3RyZWFtIGNvbW1pdCAxODUz Yzk0OTY0NjAwNWI1OTU5YzQ4M2JlY2RlODY2MDhmNTQ4ZjI0IF0KCktlbi1pY2hpcm91IHJlcG9y dGVkIHRoYXQgcnVubmluZyBuZXRsaW5rIGluIG1tYXAgbW9kZSBmb3IgcmVjZWl2ZSBpbgpjb21i aW5hdGlvbiB3aXRoIG5sbW9uIHdpbGwgdGhyb3cgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ug aW4KX19rZnJlZV9za2IoKSBvbiBubG1vbl94bWl0KCksIGluIG15IGNhc2UgSSBjYW4gYWxzbyB0 cmlnZ2VyIGFuICJ1bmFibGUKdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcgcmVxdWVzdCIuIFRoZSBw cm9ibGVtIGlzIHRoZSBza2JfY2xvbmUoKSBpbgpfX25ldGxpbmtfZGVsaXZlcl90YXBfc2tiKCkg Zm9yIHNrYnMgdGhhdCBhcmUgbW1hcGVkLgoKSS5lLiB0aGUgY2xvbmVkIHNrYiBkb2Vzbid0IGhh dmUgYSBkZXN0cnVjdG9yLCB3aGVyZWFzIHRoZSBtbWFwIG5ldGxpbmsKc2tiIGhhcyBpdCBwb2lu dGVkIHRvIG5ldGxpbmtfc2tiX2Rlc3RydWN0b3IoKSwgc2V0IGluIHRoZSBoYW5kbGVyCm5ldGxp bmtfcmluZ19zZXR1cF9za2IoKS4gVGhlcmUsIHNrYi0+aGVhZCBpcyBiZWluZyBzZXQgdG8gTlVM TCwgc28KdGhhdCBpbiBzdWNoIGNhc2VzLCBfX2tmcmVlX3NrYigpIGRvZXNuJ3QgcGVyZm9ybSBh IHNrYl9yZWxlYXNlX2RhdGEoKQp2aWEgc2tiX3JlbGVhc2VfYWxsKCksIHdoZXJlIHNrYi0+aGVh ZCBpcyBwb3NzaWJseSBiZWluZyBmcmVlZCB0aHJvdWdoCmtmcmVlKGhlYWQpIGludG8gc2xhYiBh bGxvY2F0b3IsIGFsdGhvdWdoIG5ldGxpbmsgbW1hcCBza2ItPmhlYWQgcG9pbnRzCnRvIHRoZSBt bWFwIGJ1ZmZlci4gU2ltaWxhcmx5LCB0aGUgc2FtZSBoYXMgdG8gYmUgZG9uZSBhbHNvIGZvciBs YXJnZQpuZXRsaW5rIHNrYnMgd2hlcmUgdGhlIGRhdGEgYXJlYSBpcyB2bWFsbG9jZWQuIFRoZXJl Zm9yZSwgYXMgZGlzY3Vzc2VkLAptYWtlIGEgY29weSBmb3IgdGhlc2UgcmF0aGVyIHJhcmUgY2Fz ZXMgZm9yIG5vdy4gVGhpcyBmaXhlcyB0aGUgaXNzdWUKb24gbXkgYW5kIEtlbi1pY2hpcm91J3Mg dGVzdC1jYXNlcy4KClJlZmVyZW5jZTogaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUubGlu dXgubmV0d29yay8zNzExMjkKRml4ZXM6IGJjYmRlMGQ0NDllZCAoIm5ldDogbmV0bGluazogdmly dHVhbCB0YXAgZGV2aWNlIG1hbmFnZW1lbnQiKQpSZXBvcnRlZC1ieTogS2VuLWljaGlyb3UgTUFU U1VaQVdBIDxjaGFtYWtlbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFu biA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+ClRlc3RlZC1ieTogS2VuLWljaGlyb3UgTUFUU1VaQVdB IDxjaGFtYWtlbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCAzMCArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuaCB8ICA5 ICsrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5r L2FmX25ldGxpbmsuYwppbmRleCBiZjZlNzY2Li5jYTA4ZmZiIDEwMDY0NAotLS0gYS9uZXQvbmV0 bGluay9hZl9uZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0xMjMs NiArMTIzLDI0IEBAIHN0YXRpYyBpbmxpbmUgdTMyIG5ldGxpbmtfZ3JvdXBfbWFzayh1MzIgZ3Jv dXApCiAJcmV0dXJuIGdyb3VwID8gMSA8PCAoZ3JvdXAgLSAxKSA6IDA7CiB9CiAKK3N0YXRpYyBz dHJ1Y3Qgc2tfYnVmZiAqbmV0bGlua190b19mdWxsX3NrYihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLAorCQkJCQkgICBnZnBfdCBnZnBfbWFzaykKK3sKKwl1bnNpZ25lZCBpbnQgbGVuID0gc2ti X2VuZF9vZmZzZXQoc2tiKTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqbmV3OworCisJbmV3ID0gYWxsb2Nf c2tiKGxlbiwgZ2ZwX21hc2spOworCWlmIChuZXcgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisK KwlORVRMSU5LX0NCKG5ldykucG9ydGlkID0gTkVUTElOS19DQihza2IpLnBvcnRpZDsKKwlORVRM SU5LX0NCKG5ldykuZHN0X2dyb3VwID0gTkVUTElOS19DQihza2IpLmRzdF9ncm91cDsKKwlORVRM SU5LX0NCKG5ldykuY3JlZHMgPSBORVRMSU5LX0NCKHNrYikuY3JlZHM7CisKKwltZW1jcHkoc2ti X3B1dChuZXcsIGxlbiksIHNrYi0+ZGF0YSwgbGVuKTsKKwlyZXR1cm4gbmV3OworfQorCiBpbnQg bmV0bGlua19hZGRfdGFwKHN0cnVjdCBuZXRsaW5rX3RhcCAqbnQpCiB7CiAJaWYgKHVubGlrZWx5 KG50LT5kZXYtPnR5cGUgIT0gQVJQSFJEX05FVExJTkspKQpAQCAtMjA0LDcgKzIyMiwxMSBAQCBz dGF0aWMgaW50IF9fbmV0bGlua19kZWxpdmVyX3RhcF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwK IAlpbnQgcmV0ID0gLUVOT01FTTsKIAogCWRldl9ob2xkKGRldik7Ci0JbnNrYiA9IHNrYl9jbG9u ZShza2IsIEdGUF9BVE9NSUMpOworCisJaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBlZChza2IpIHx8 IGlzX3ZtYWxsb2NfYWRkcihza2ItPmhlYWQpKQorCQluc2tiID0gbmV0bGlua190b19mdWxsX3Nr Yihza2IsIEdGUF9BVE9NSUMpOworCWVsc2UKKwkJbnNrYiA9IHNrYl9jbG9uZShza2IsIEdGUF9B VE9NSUMpOwogCWlmIChuc2tiKSB7CiAJCW5za2ItPmRldiA9IGRldjsKIAkJbnNrYi0+cHJvdG9j b2wgPSBodG9ucygodTE2KSBzay0+c2tfcHJvdG9jb2wpOwpAQCAtMjc2LDExICsyOTgsNiBAQCBz dGF0aWMgdm9pZCBuZXRsaW5rX3Jjdl93YWtlKHN0cnVjdCBzb2NrICpzaykKIH0KIAogI2lmZGVm IENPTkZJR19ORVRMSU5LX01NQVAKLXN0YXRpYyBib29sIG5ldGxpbmtfc2tiX2lzX21tYXBlZChj b25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCXJldHVybiBORVRMSU5LX0NCKHNrYikuZmxh Z3MgJiBORVRMSU5LX1NLQl9NTUFQRUQ7Ci19Ci0KIHN0YXRpYyBib29sIG5ldGxpbmtfcnhfaXNf bW1hcGVkKHN0cnVjdCBzb2NrICpzaykKIHsKIAlyZXR1cm4gbmxrX3NrKHNrKS0+cnhfcmluZy5w Z192ZWMgIT0gTlVMTDsKQEAgLTgxNyw3ICs4MzQsNiBAQCBzdGF0aWMgdm9pZCBuZXRsaW5rX3Jp bmdfc2V0X2NvcGllZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB9CiAK ICNlbHNlIC8qIENPTkZJR19ORVRMSU5LX01NQVAgKi8KLSNkZWZpbmUgbmV0bGlua19za2JfaXNf bW1hcGVkKHNrYikJZmFsc2UKICNkZWZpbmUgbmV0bGlua19yeF9pc19tbWFwZWQoc2spCWZhbHNl CiAjZGVmaW5lIG5ldGxpbmtfdHhfaXNfbW1hcGVkKHNrKQlmYWxzZQogI2RlZmluZSBuZXRsaW5r X21tYXAJCQlzb2NrX25vX21tYXAKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu aCBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaAppbmRleCA4OTAwODQwLi5kZjlhMDYwIDEwMDY0 NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKKysrIGIvbmV0L25ldGxpbmsvYWZfbmV0 bGluay5oCkBAIC01OSw2ICs1OSwxNSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBuZXRsaW5rX3Nv Y2sgKm5sa19zayhzdHJ1Y3Qgc29jayAqc2spCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihzaywgc3Ry dWN0IG5ldGxpbmtfc29jaywgc2spOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgbmV0bGlua19z a2JfaXNfbW1hcGVkKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCit7CisjaWZkZWYgQ09ORklH X05FVExJTktfTU1BUAorCXJldHVybiBORVRMSU5LX0NCKHNrYikuZmxhZ3MgJiBORVRMSU5LX1NL Ql9NTUFQRUQ7CisjZWxzZQorCXJldHVybiBmYWxzZTsKKyNlbmRpZiAvKiBDT05GSUdfTkVUTElO S19NTUFQICovCit9CisKIHN0cnVjdCBuZXRsaW5rX3RhYmxlIHsKIAlzdHJ1Y3Qgcmhhc2h0YWJs ZQloYXNoOwogCXN0cnVjdCBobGlzdF9oZWFkCW1jX2xpc3Q7Ci0tIAoyLjEuMAoKCkZyb20gOGQ4 OTU2NjA4NjZiY2EzZmQ2ODNlMmNkYzMzMWI2NTFmODU1ZjZkMiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFp bC5jb20+CkRhdGU6IFRodSwgMTAgU2VwIDIwMTUgMTc6MzE6MTUgLTAzMDAKU3ViamVjdDogW1BB VENIIDE0LzI4XSBzY3RwOiBmaXggcmFjZSBvbiBwcm90b2NvbC9uZXRucyBpbml0aWFsaXphdGlv bgoKWyBVcHN0cmVhbSBjb21taXQgOGUyZDYxZTBhZWQyYjdjNGVjYjM1ODQ0ZmUwN2UwYjJiNzYy ZGVlNCBdCgpDb25zaWRlciBzY3RwIG1vZHVsZSBpcyB1bmxvYWRlZCBhbmQgaXMgYmVpbmcgcmVx dWVzdGVkIGJlY2F1c2UgYW4gdXNlcgppcyBjcmVhdGluZyBhIHNjdHAgc29ja2V0LgoKRHVyaW5n IGluaXRpYWxpemF0aW9uLCBzY3RwIHdpbGwgYWRkIHRoZSBuZXcgcHJvdG9jb2wgdHlwZSBhbmQg dGhlbgppbml0aWFsaXplIHBlcm5ldCBzdWJzeXM6CgogICAgICAgIHN0YXR1cyA9IHNjdHBfdjRf cHJvdG9zd19pbml0KCk7CiAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAgICAgICAgIGdvdG8g ZXJyX3Byb3Rvc3dfaW5pdDsKCiAgICAgICAgc3RhdHVzID0gc2N0cF92Nl9wcm90b3N3X2luaXQo KTsKICAgICAgICBpZiAoc3RhdHVzKQogICAgICAgICAgICAgICAgZ290byBlcnJfdjZfcHJvdG9z d19pbml0OwoKICAgICAgICBzdGF0dXMgPSByZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZzY3RwX25l dF9vcHMpOwoKVGhlIHByb2JsZW0gaXMgdGhhdCBhZnRlciB0aG9zZSBjYWxscyB0byBzY3RwX3Z7 NCw2fV9wcm90b3N3X2luaXQoKSwgaXQKaXMgcG9zc2libGUgZm9yIHVzZXJzcGFjZSB0byBjcmVh dGUgU0NUUCBzb2NrZXRzIGxpa2UgaWYgdGhlIG1vZHVsZSBpcwphbHJlYWR5IGZ1bGx5IGxvYWRl ZC4gSWYgdGhhdCBoYXBwZW5zLCBvbmUgb2YgdGhlIHBvc3NpYmxlIGVmZmVjdHMgaXMKdGhhdCB3 ZSB3aWxsIGhhdmUgcmVhZGVycyBmb3IgbmV0LT5zY3RwLmxvY2FsX2FkZHJfbGlzdCBsaXN0IGVh cmxpZXIKdGhhbiBleHBlY3RlZCBhbmQgc2N0cF9uZXRfaW5pdCgpIGRvZXMgbm90IHRha2UgcHJl Y2F1dGlvbnMgd2hpbGUKZGVhbGluZyB3aXRoIHRoYXQgbGlzdCwgbGVhZGluZyB0byBhIHBvdGVu dGlhbCBwYW5pYyBidXQgbm90IGxpbWl0ZWQgdG8KdGhhdCwgYXMgc2N0cF9zb2NrX2luaXQoKSB3 aWxsIGNvcHkgYSBidW5jaCBvZiBibGFuay9wYXJ0aWFsbHkKaW5pdGlhbGl6ZWQgdmFsdWVzIGZy b20gbmV0LT5zY3RwLgoKVGhlIHJhY2UgaGFwcGVucyBsaWtlIHRoaXM6CgogICAgIENQVSAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgQ1BVIDEKICBzb2NrZXQoKSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKICAgX19zb2NrX2NyZWF0ZSAgICAgICAgICAgICAgICAgICAgIHwgc29j a2V0KCkKICAgIGluZXRfY3JlYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIF9fc29ja19jcmVh dGUKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSggICAgICAgIHwKICAgICAgICBhbnN3ZXIs ICZpbmV0c3dbc29jay0+dHlwZV0sIHwKICAgICAgICBsaXN0KSB7ICAgICAgICAgICAgICAgICAg ICAgIHwgICBpbmV0X2NyZWF0ZQogICAgICAvKiBubyBoaXRzICovICAgICAgICAgICAgICAgICAg fAogICAgIGlmICh1bmxpa2VseShlcnIpKSB7ICAgICAgICAgICAgfAogICAgICAuLi4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAogICAgICByZXF1ZXN0X21vZHVsZSgpICAgICAgICAgICAg ICAgfAogICAgICAvKiBzb2NrZXQgY3JlYXRpb24gaXMgYmxvY2tlZCAgfAogICAgICAgKiB0aGUg bW9kdWxlIGlzIGZ1bGx5IGxvYWRlZCAgfAogICAgICAgKi8gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAogICAgICAgc2N0cF9pbml0ICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgIHNj dHBfdjRfcHJvdG9zd19pbml0ICAgICAgICAgfAogICAgICAgICBpbmV0X3JlZ2lzdGVyX3Byb3Rv c3cgICAgICAgfAogICAgICAgICAgbGlzdF9hZGRfcmN1KCZwLT5saXN0LCAgICAgfAogICAgICAg ICAgICAgICAgICAgICAgIGxhc3RfcGVybSk7ICAgfAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICBhbnN3ZXIsICZpbmV0c3dbc29jay0+dHlwZV0sCiAg ICAgICAgc2N0cF92Nl9wcm90b3N3X2luaXQgICAgICAgICB8ICAgICBsaXN0KSB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAvKiBoaXQsIHNvIGFzc3VtZXMgcHJv dG9jb2wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAqIGlzIGFs cmVhZHkgbG9hZGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg Ki8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIC8qIHNvY2tldCBjcmVh dGlvbiBjb250aW51ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAq IGJlZm9yZSBuZXRucyBpcyBpbml0aWFsaXplZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICovCiAgICAgICAgcmVnaXN0ZXJfcGVybmV0X3N1YnN5cyAgICAgICB8CgpT aW1wbHkgaW52ZXJ0aW5nIHRoZSBpbml0aWFsaXphdGlvbiBvcmRlciBiZXR3ZWVuCnJlZ2lzdGVy X3Blcm5ldF9zdWJzeXMoKSBhbmQgc2N0cF92NF9wcm90b3N3X2luaXQoKSBpcyBub3QgcG9zc2li bGUKYmVjYXVzZSByZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCkgd2lsbCBjcmVhdGUgYSBjb250cm9s IHNjdHAgc29ja2V0LCBzbwp0aGUgcHJvdG9jb2wgbXVzdCBiZSBhbHJlYWR5IHZpc2libGUgYnkg dGhlbi4gRGVmZXJyaW5nIHRoZSBzb2NrZXQKY3JlYXRpb24gdG8gYSB3b3JrLXF1ZXVlIGlzIG5v dCBnb29kIHNwZWNpYWxseSBiZWNhdXNlIHdlIGxvb3NlIHRoZQphYmlsaXR5IHRvIGhhbmRsZSBp dHMgZXJyb3JzLgoKU28sIGFzIHN1Z2dlc3RlZCBieSBWbGFkLCB0aGUgZml4IGlzIHRvIHNwbGl0 IG5ldG5zIGluaXRpYWxpemF0aW9uIGluCnR3byBtb21lbnRzOiBkZWZhdWx0cyBhbmQgY29udHJv bCBzb2NrZXQsIHNvIHRoYXQgdGhlIGRlZmF1bHRzIGFyZQphbHJlYWR5IGxvYWRlZCBieSB3aGVu IHdlIHJlZ2lzdGVyIHRoZSBwcm90b2NvbCwgd2hpbGUgY29udHJvbCBzb2NrZXQKaW5pdGlhbGl6 YXRpb24gaXMga2VwdCBhdCB0aGUgc2FtZSBtb21lbnQgaXQgaXMgdG9kYXkuCgpGaXhlczogNGRi NjdlODA4NjQwICgic2N0cDogTWFrZSB0aGUgYWRkcmVzcyBsaXN0cyBwZXIgbmV0d29yayBuYW1l c3BhY2UiKQpTaWduZWQtb2ZmLWJ5OiBWbGFkIFlhc2V2aWNoIDx2eWFzZXZpY2hAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVy QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zY3RwL3Byb3RvY29sLmMgfCA2NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQxIGlu c2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3Byb3Rv Y29sLmMgYi9uZXQvc2N0cC9wcm90b2NvbC5jCmluZGV4IDUzYjdhY2QuLmUxM2MzYzMgMTAwNjQ0 Ci0tLSBhL25ldC9zY3RwL3Byb3RvY29sLmMKKysrIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwpAQCAt MTE2Niw3ICsxMTY2LDcgQEAgc3RhdGljIHZvaWQgc2N0cF92NF9kZWxfcHJvdG9jb2wodm9pZCkK IAl1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKCZzY3RwX2luZXRhZGRyX25vdGlmaWVyKTsK IH0KIAotc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBfbmV0X2luaXQoc3RydWN0IG5ldCAqbmV0 KQorc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBfZGVmYXVsdHNfaW5pdChzdHJ1Y3QgbmV0ICpu ZXQpCiB7CiAJaW50IHN0YXR1czsKIApAQCAtMTI1OSwxMiArMTI1OSw2IEBAIHN0YXRpYyBpbnQg X19uZXRfaW5pdCBzY3RwX25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKIAogCXNjdHBfZGJnX29i amNudF9pbml0KG5ldCk7CiAKLQkvKiBJbml0aWFsaXplIHRoZSBjb250cm9sIGlub2RlL3NvY2tl dCBmb3IgaGFuZGxpbmcgT09UQiBwYWNrZXRzLiAgKi8KLQlpZiAoKHN0YXR1cyA9IHNjdHBfY3Rs X3NvY2tfaW5pdChuZXQpKSkgewotCQlwcl9lcnIoIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBT Q1RQIGNvbnRyb2wgc29ja1xuIik7Ci0JCWdvdG8gZXJyX2N0bF9zb2NrX2luaXQ7Ci0JfQotCiAJ LyogSW5pdGlhbGl6ZSB0aGUgbG9jYWwgYWRkcmVzcyBsaXN0LiAqLwogCUlOSVRfTElTVF9IRUFE KCZuZXQtPnNjdHAubG9jYWxfYWRkcl9saXN0KTsKIAlzcGluX2xvY2tfaW5pdCgmbmV0LT5zY3Rw LmxvY2FsX2FkZHJfbG9jayk7CkBAIC0xMjgwLDkgKzEyNzQsNiBAQCBzdGF0aWMgaW50IF9fbmV0 X2luaXQgc2N0cF9uZXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCiAKIAlyZXR1cm4gMDsKIAotZXJy X2N0bF9zb2NrX2luaXQ6Ci0Jc2N0cF9kYmdfb2JqY250X2V4aXQobmV0KTsKLQlzY3RwX3Byb2Nf ZXhpdChuZXQpOwogZXJyX2luaXRfcHJvYzoKIAljbGVhbnVwX3NjdHBfbWlicyhuZXQpOwogZXJy X2luaXRfbWliczoKQEAgLTEyOTEsMTUgKzEyODIsMTIgQEAgZXJyX3N5c2N0bF9yZWdpc3RlcjoK IAlyZXR1cm4gc3RhdHVzOwogfQogCi1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHNjdHBfbmV0X2V4 aXQoc3RydWN0IG5ldCAqbmV0KQorc3RhdGljIHZvaWQgX19uZXRfZXhpdCBzY3RwX2RlZmF1bHRz X2V4aXQoc3RydWN0IG5ldCAqbmV0KQogewogCS8qIEZyZWUgdGhlIGxvY2FsIGFkZHJlc3MgbGlz dCAqLwogCXNjdHBfZnJlZV9hZGRyX3dxKG5ldCk7CiAJc2N0cF9mcmVlX2xvY2FsX2FkZHJfbGlz dChuZXQpOwogCi0JLyogRnJlZSB0aGUgY29udHJvbCBlbmRwb2ludC4gICovCi0JaW5ldF9jdGxf c29ja19kZXN0cm95KG5ldC0+c2N0cC5jdGxfc29jayk7Ci0KIAlzY3RwX2RiZ19vYmpjbnRfZXhp dChuZXQpOwogCiAJc2N0cF9wcm9jX2V4aXQobmV0KTsKQEAgLTEzMDcsOSArMTI5NSwzMiBAQCBz dGF0aWMgdm9pZCBfX25ldF9leGl0IHNjdHBfbmV0X2V4aXQoc3RydWN0IG5ldCAqbmV0KQogCXNj dHBfc3lzY3RsX25ldF91bnJlZ2lzdGVyKG5ldCk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGVybmV0 X29wZXJhdGlvbnMgc2N0cF9uZXRfb3BzID0gewotCS5pbml0ID0gc2N0cF9uZXRfaW5pdCwKLQku ZXhpdCA9IHNjdHBfbmV0X2V4aXQsCitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIHNj dHBfZGVmYXVsdHNfb3BzID0geworCS5pbml0ID0gc2N0cF9kZWZhdWx0c19pbml0LAorCS5leGl0 ID0gc2N0cF9kZWZhdWx0c19leGl0LAorfTsKKworc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBf Y3RybHNvY2tfaW5pdChzdHJ1Y3QgbmV0ICpuZXQpCit7CisJaW50IHN0YXR1czsKKworCS8qIElu aXRpYWxpemUgdGhlIGNvbnRyb2wgaW5vZGUvc29ja2V0IGZvciBoYW5kbGluZyBPT1RCIHBhY2tl dHMuICAqLworCXN0YXR1cyA9IHNjdHBfY3RsX3NvY2tfaW5pdChuZXQpOworCWlmIChzdGF0dXMp CisJCXByX2VycigiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIFNDVFAgY29udHJvbCBzb2NrXG4i KTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyB2b2lkIF9fbmV0X2luaXQgc2N0cF9j dHJsc29ja19leGl0KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwkvKiBGcmVlIHRoZSBjb250cm9sIGVu ZHBvaW50LiAgKi8KKwlpbmV0X2N0bF9zb2NrX2Rlc3Ryb3kobmV0LT5zY3RwLmN0bF9zb2NrKTsK K30KKworc3RhdGljIHN0cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyBzY3RwX2N0cmxzb2NrX29wcyA9 IHsKKwkuaW5pdCA9IHNjdHBfY3RybHNvY2tfaW5pdCwKKwkuZXhpdCA9IHNjdHBfY3RybHNvY2tf ZXhpdCwKIH07CiAKIC8qIEluaXRpYWxpemUgdGhlIHVuaXZlcnNlIGludG8gc29tZXRoaW5nIHNl bnNpYmxlLiAgKi8KQEAgLTE0NDIsOCArMTQ1MywxMSBAQCBzdGF0aWMgX19pbml0IGludCBzY3Rw X2luaXQodm9pZCkKIAlzY3RwX3Y0X3BmX2luaXQoKTsKIAlzY3RwX3Y2X3BmX2luaXQoKTsKIAot CXN0YXR1cyA9IHNjdHBfdjRfcHJvdG9zd19pbml0KCk7CisJc3RhdHVzID0gcmVnaXN0ZXJfcGVy bmV0X3N1YnN5cygmc2N0cF9kZWZhdWx0c19vcHMpOworCWlmIChzdGF0dXMpCisJCWdvdG8gZXJy X3JlZ2lzdGVyX2RlZmF1bHRzOwogCisJc3RhdHVzID0gc2N0cF92NF9wcm90b3N3X2luaXQoKTsK IAlpZiAoc3RhdHVzKQogCQlnb3RvIGVycl9wcm90b3N3X2luaXQ7CiAKQEAgLTE0NTEsOSArMTQ2 NSw5IEBAIHN0YXRpYyBfX2luaXQgaW50IHNjdHBfaW5pdCh2b2lkKQogCWlmIChzdGF0dXMpCiAJ CWdvdG8gZXJyX3Y2X3Byb3Rvc3dfaW5pdDsKIAotCXN0YXR1cyA9IHJlZ2lzdGVyX3Blcm5ldF9z dWJzeXMoJnNjdHBfbmV0X29wcyk7CisJc3RhdHVzID0gcmVnaXN0ZXJfcGVybmV0X3N1YnN5cygm c2N0cF9jdHJsc29ja19vcHMpOwogCWlmIChzdGF0dXMpCi0JCWdvdG8gZXJyX3JlZ2lzdGVyX3Bl cm5ldF9zdWJzeXM7CisJCWdvdG8gZXJyX3JlZ2lzdGVyX2N0cmxzb2NrOwogCiAJc3RhdHVzID0g c2N0cF92NF9hZGRfcHJvdG9jb2woKTsKIAlpZiAoc3RhdHVzKQpAQCAtMTQ2OSwxMiArMTQ4Mywx NCBAQCBvdXQ6CiBlcnJfdjZfYWRkX3Byb3RvY29sOgogCXNjdHBfdjRfZGVsX3Byb3RvY29sKCk7 CiBlcnJfYWRkX3Byb3RvY29sOgotCXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9uZXRf b3BzKTsKLWVycl9yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzOgorCXVucmVnaXN0ZXJfcGVybmV0X3N1 YnN5cygmc2N0cF9jdHJsc29ja19vcHMpOworZXJyX3JlZ2lzdGVyX2N0cmxzb2NrOgogCXNjdHBf djZfcHJvdG9zd19leGl0KCk7CiBlcnJfdjZfcHJvdG9zd19pbml0OgogCXNjdHBfdjRfcHJvdG9z d19leGl0KCk7CiBlcnJfcHJvdG9zd19pbml0OgorCXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygm c2N0cF9kZWZhdWx0c19vcHMpOworZXJyX3JlZ2lzdGVyX2RlZmF1bHRzOgogCXNjdHBfdjRfcGZf ZXhpdCgpOwogCXNjdHBfdjZfcGZfZXhpdCgpOwogCXNjdHBfc3lzY3RsX3VucmVnaXN0ZXIoKTsK QEAgLTE1MDcsMTIgKzE1MjMsMTQgQEAgc3RhdGljIF9fZXhpdCB2b2lkIHNjdHBfZXhpdCh2b2lk KQogCXNjdHBfdjZfZGVsX3Byb3RvY29sKCk7CiAJc2N0cF92NF9kZWxfcHJvdG9jb2woKTsKIAot CXVucmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9uZXRfb3BzKTsKKwl1bnJlZ2lzdGVyX3Bl cm5ldF9zdWJzeXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKIAogCS8qIEZyZWUgcHJvdG9zdyByZWdp c3RyYXRpb25zICovCiAJc2N0cF92Nl9wcm90b3N3X2V4aXQoKTsKIAlzY3RwX3Y0X3Byb3Rvc3df ZXhpdCgpOwogCisJdW5yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZzY3RwX2RlZmF1bHRzX29wcyk7 CisKIAkvKiBVbnJlZ2lzdGVyIHdpdGggc29ja2V0IGxheWVyLiAqLwogCXNjdHBfdjZfcGZfZXhp dCgpOwogCXNjdHBfdjRfcGZfZXhpdCgpOwotLSAKMi4xLjAKCgpGcm9tIDkwMmZkMjI4MGVlMzBk MWJlNTU3Mzk2NDM3MDRkNzlkOGM5MmIxYWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 ID0/VVRGLTg/cT9MaW51cz0yMEw9QzM9QkNzc2luZz89IDxsaW51cy5sdWVzc2luZ0BjMGQzLmJs dWU+CkRhdGU6IEZyaSwgMTEgU2VwIDIwMTUgMTg6Mzk6NDggKzAyMDAKU3ViamVjdDogW1BBVENI IDE1LzI4XSBicmlkZ2U6IGZpeCBpZ21wdjMgLyBtbGR2MiByZXBvcnQgcGFyc2luZwpNSU1FLVZl cnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgYzJkNGZiZDIxNjNl NjA3OTE1Y2MwNTc5OGNlN2ZiN2YzMTExN2NjMSBdCgpXaXRoIHRoZSBuZXdseSBpbnRyb2R1Y2Vk IGhlbHBlciBmdW5jdGlvbnMgdGhlIHNrYiBwdWxsaW5nIGlzIGhpZGRlbiBpbgp0aGUgY2hlY2tz dW1taW5nIGZ1bmN0aW9uIC0gYW5kIHVuZG9uZSBiZWZvcmUgcmV0dXJuaW5nIHRvIHRoZSBjYWxs ZXIuCgpUaGUgSUdNUHYzIGFuZCBNTER2MiByZXBvcnQgcGFyc2luZyBmdW5jdGlvbnMgaW4gdGhl IGJyaWRnZSBzdGlsbAphc3N1bWVkIHRoYXQgdGhlIHNrYiBpcyBwb2ludGluZyB0byB0aGUgYmVn aW5uaW5nIG9mIHRoZSBJR01QL01MRAptZXNzYWdlIHdoaWxlIGl0IGlzIG5vdyBrZXB0IGF0IHRo ZSBiZWdpbm5pbmcgb2YgdGhlIElQdjQvNiBoZWFkZXIsCmJyZWFraW5nIHRoZSBtZXNzYWdlIHBh cnNpbmcgYW5kIGNyZWF0aW5nIHBhY2tldCBsb3NzLgoKRml4aW5nIHRoaXMgYnkgdGFraW5nIHRo ZSBvZmZzZXQgYmV0d2VlbiBJUCBhbmQgSUdNUC9NTEQgaGVhZGVyIGludG8KYWNjb3VudCwgdG9v LgoKRml4ZXM6IDlhZmQ4NWM5ZTQ1NSAoIm5ldDogRXhwb3J0IElHTVAvTUxEIG1lc3NhZ2UgdmFs aWRhdGlvbiBjb2RlIikKUmVwb3J0ZWQtYnk6IFRvYmlhcyBQb3dhbG93c2tpIDx0b2JpYXMucG93 YWxvd3NraUBnb29nbGVtYWlsLmNvbT4KVGVzdGVkLWJ5OiBUb2JpYXMgUG93YWxvd3NraSA8dG9i aWFzLnBvd2Fsb3dza2lAZ29vZ2xlbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IExpbnVzIEzDvHNz aW5nIDxsaW51cy5sdWVzc2luZ0BjMGQzLmJsdWU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvYnJpZGdlL2JyX211bHRpY2FzdC5j IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMgYi9uZXQvYnJpZGdlL2Jy X211bHRpY2FzdC5jCmluZGV4IGZmNjY3ZTEuLjliYTM4M2YgMTAwNjQ0Ci0tLSBhL25ldC9icmlk Z2UvYnJfbXVsdGljYXN0LmMKKysrIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwpAQCAtOTgw LDcgKzk4MCw3IEBAIHN0YXRpYyBpbnQgYnJfaXA0X211bHRpY2FzdF9pZ21wM19yZXBvcnQoc3Ry dWN0IG5ldF9icmlkZ2UgKmJyLAogCiAJaWggPSBpZ21wdjNfcmVwb3J0X2hkcihza2IpOwogCW51 bSA9IG50b2hzKGloLT5uZ3JlYyk7Ci0JbGVuID0gc2l6ZW9mKCppaCk7CisJbGVuID0gc2tiX3Ry YW5zcG9ydF9vZmZzZXQoc2tiKSArIHNpemVvZigqaWgpOwogCiAJZm9yIChpID0gMDsgaSA8IG51 bTsgaSsrKSB7CiAJCWxlbiArPSBzaXplb2YoKmdyZWMpOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAg c3RhdGljIGludCBicl9pcDZfbXVsdGljYXN0X21sZDJfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdl ICpiciwKIAogCWljbXA2aCA9IGljbXA2X2hkcihza2IpOwogCW51bSA9IG50b2hzKGljbXA2aC0+ aWNtcDZfZGF0YXVuLnVuX2RhdGExNlsxXSk7Ci0JbGVuID0gc2l6ZW9mKCppY21wNmgpOworCWxl biA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyBzaXplb2YoKmljbXA2aCk7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKIAkJX19iZTE2ICpuc3JjcywgX25zcmNzOwotLSAKMi4x LjAKCgpGcm9tIDNiMTBiYWE4NDhkNTQyMWU3MzAwZTYyOWRkMWQ0N2RjNWQ1Y2Y3ZTUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAxNSAxODoyOTo0NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjhdIG5ldC9tbHg0X2VuOiByZWFsbHkgYWxsb3cgdG8gY2hhbmdlIFJTUyBrZXkKClsgVXBz dGVhbSBjb21taXQgNDY3MWZjNmQ0N2UwYTAxMDhmZTI0YTRkODMwMzQ3ZDZhNmVmNGFhNyBdCgpX aGVuIGNoYW5naW5nIHJzcyBrZXksIHdlIGRvIG5vdCB3YW50IHRvIG92ZXJ3cml0ZSB1c2VyIHBy b3ZpZGVkIGtleQpieSB0aGUgb25lIHByb3ZpZGVkIGJ5IG5ldGRldl9yc3Nfa2V5X2ZpbGwoKSwg d2hpY2ggaXMgdGhlIGhvc3QgcmFuZG9tCmtleSBnZW5lcmF0ZWQgYXQgYm9vdCB0aW1lLgoKRml4 ZXM6IDk0N2NiYjBhYzI0MiAoIm5ldC9tbHg0X2VuOiBTdXBwb3J0IGZvciBjb25maWd1cmFibGUg UlNTIGhhc2ggZnVuY3Rpb24iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+CkNjOiBFeWFsIFBlcnJ5IDxleWFscGVAbWVsbGFub3guY29tPgpDQzogQW1p ciBWYWRhaSA8YW1pcnZAbWVsbGFub3guY29tPgpBY2tlZC1ieTogT3IgR2VybGl0eiA8b2dlcmxp dHpAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9y eC5jIHwgMiAtLQogMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCmluZGV4IGVhYjRlMDguLjgwYWFjMjAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvZW5fcnguYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMKQEAgLTEyNTYsOCAr MTI1Niw2IEBAIGludCBtbHg0X2VuX2NvbmZpZ19yc3Nfc3RlZXIoc3RydWN0IG1seDRfZW5fcHJp diAqcHJpdikKIAkJcnNzX2NvbnRleHQtPmhhc2hfZm4gPSBNTFg0X1JTU19IQVNIX1RPUDsKIAkJ bWVtY3B5KHJzc19jb250ZXh0LT5yc3Nfa2V5LCBwcml2LT5yc3Nfa2V5LAogCQkgICAgICAgTUxY NF9FTl9SU1NfS0VZX1NJWkUpOwotCQluZXRkZXZfcnNzX2tleV9maWxsKHJzc19jb250ZXh0LT5y c3Nfa2V5LAotCQkJCSAgICBNTFg0X0VOX1JTU19LRVlfU0laRSk7CiAJfSBlbHNlIHsKIAkJZW5f ZXJyKHByaXYsICJVbmtub3duIFJTUyBoYXNoIGZ1bmN0aW9uIHJlcXVlc3RlZFxuIik7CiAJCWVy ciA9IC1FSU5WQUw7Ci0tIAoyLjEuMAoKCkZyb20gNTUwZTA5OGJkMzI0MWUwMmE2MGVlMWQ1MTNl MDFkZmE1OGEyY2QxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIk1pY2hhZWwgUy4g VHNpcmtpbiIgPG1zdEByZWRoYXQuY29tPgpEYXRlOiBGcmksIDE4IFNlcCAyMDE1IDEzOjQxOjA5 ICswMzAwClN1YmplY3Q6IFtQQVRDSCAxNy8yOF0gbWFjdnRhcDogZml4IFRVTlNFVFNOREJVRiB2 YWx1ZXMgPiA2NGsKClsgVXBzdHJlYW0gY29tbWl0IDNlYTc5MjQ5ZTgxZTVlZDA1MWYyZTY0ODBj YmRlODk2ZDk5MDQ2ZTggXQoKVXBvbiBUVU5TRVRTTkRCVUYsICBtYWN2dGFwIHJlYWRzIHRoZSBy ZXF1ZXN0ZWQgc25kYnVmIHNpemUgaW50bwphIGxvY2FsIHZhcmlhYmxlIHUuCmNvbW1pdCAzOWVj N2RlNzA5MmIgKCJtYWN2dGFwOiBmaXggdW5pbml0aWFsaXplZCBhY2Nlc3Mgb24KVFVOU0VUSUZG IikgY2hhbmdlZCBpdHMgdHlwZSB0byB1MTYgKHdoaWNoIGlzIHRoZSByaWdodCB0aGluZyB0bwpk byBmb3IgYWxsIG90aGVyIG1hY3Z0YXAgaW9jdGxzKSwgYnJlYWtpbmcgYWxsIHZhbHVlcyA+IDY0 ay4KClRoZSB2YWx1ZSBvZiBUVU5TRVRTTkRCVUYgaXMgYWN0dWFsbHkgYSBzaWduZWQgMzIgYml0 IGludGVnZXIsIHNvCnRoZSByaWdodCB0aGluZyB0byBkbyBpcyB0byByZWFkIGl0IGludG8gYW4g aW50LgoKQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KRml4ZXM6IDM5 ZWM3ZGU3MDkyYiAoIm1hY3Z0YXA6IGZpeCB1bmluaXRpYWxpemVkIGFjY2VzcyBvbiBUVU5TRVRJ RkYiKQpSZXBvcnRlZC1ieTogTWFyayBBLiBQZWxvcXVpbgpCaXNlY3RlZC1ieTogTWF0dGhldyBS b3NhdG8gPG1qcm9zYXRvQGxpbnV4LnZuZXQuaWJtLmNvbT4KUmVwb3J0ZWQtYnk6IENocmlzdGlh biBCb3JudHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KVGVzdGVkLWJ5OiAgTWF0dGhldyBSb3Nh dG8gPG1qcm9zYXRvQGxpbnV4LnZuZXQuaWJtLmNvbT4KQWNrZWQtYnk6IENocmlzdGlhbiBCb3Ju dHJhZWdlciA8Ym9ybnRyYWVnZXJAZGUuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3Z0YXAuYyB8 IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWN2dGFwLmMgYi9kcml2ZXJzL25ldC9tYWN2dGFw LmMKaW5kZXggOGMzNTBjNS4uNTg4NThjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdnRh cC5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwpAQCAtMTA1NCwxMCArMTA1NCwxMCBAQCBz dGF0aWMgbG9uZyBtYWN2dGFwX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQg Y21kLAogCQlyZXR1cm4gMDsKIAogCWNhc2UgVFVOU0VUU05EQlVGOgotCQlpZiAoZ2V0X3VzZXIo dSwgdXApKQorCQlpZiAoZ2V0X3VzZXIocywgc3ApKQogCQkJcmV0dXJuIC1FRkFVTFQ7CiAKLQkJ cS0+c2suc2tfc25kYnVmID0gdTsKKwkJcS0+c2suc2tfc25kYnVmID0gczsKIAkJcmV0dXJuIDA7 CiAKIAljYXNlIFRVTkdFVFZORVRIRFJTWjoKLS0gCjIuMS4wCgoKRnJvbSBiOTM0Zjk1ODFmZTRk YjA5MjNlZTgyZjYzM2FiOGVmYWI2NzVlMmUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IEZyaSwgMTgg U2VwIDIwMTUgMTk6MTY6NTAgKzA4MDAKU3ViamVjdDogW1BBVENIIDE4LzI4XSBuZXRsaW5rOiBG aXggYXV0b2JpbmQgcmFjZSBjb25kaXRpb24gdGhhdCBsZWFkcyB0byB6ZXJvCiBwb3J0IElECgpb IFVwc3RyZWFtIGNvbW1pdCAxZjc3MGMwYTA5ZGE4NTVhMmI1MWFmNmQxOWRlOTdmYjk1NWVjYTg1 IF0KClRoZSBjb21taXQgYzBiYjA3ZGY3ZDk4MWU0MDkxNDMyNzU0ZTMwYzljNzIwZTJjMGM3OCAo Im5ldGxpbms6ClJlc2V0IHBvcnRpZCBhZnRlciBuZXRsaW5rX2luc2VydCBmYWlsdXJlIikgaW50 cm9kdWNlZCBhIHJhY2UKY29uZGl0aW9uIHdoZXJlIGlmIHR3byB0aHJlYWRzIHRyeSB0byBhdXRv YmluZCB0aGUgc2FtZSBzb2NrZXQKb25lIG9mIHRoZW0gbWF5IGVuZCB1cCB3aXRoIGEgemVybyBw b3J0IElELiAgVGhpcyBsZWQgdG8ga2VybmVsCmRlYWRsb2NrcyB0aGF0IHdlcmUgb2JzZXJ2ZWQg YnkgbXVsdGlwbGUgcGVvcGxlLgoKVGhpcyBwYXRjaCByZXZlcnRzIHRoYXQgY29tbWl0IGFuZCBp bnN0ZWFkIGZpeGVzIGl0IGJ5IGludHJvZHVjaW5nCmEgc2VwYXJ0ZSByaGFzaF9wb3J0aWQgdmFy aWFibGUgc28gdGhhdCB0aGUgcmVhbCBwb3J0aWQgaXMgb25seSBzZXQKYWZ0ZXIgdGhlIHNvY2tl dCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaGFzaGVkLgoKRml4ZXM6IGMwYmIwN2RmN2Q5OCAoIm5l dGxpbms6IFJlc2V0IHBvcnRpZCBhZnRlciBuZXRsaW5rX2luc2VydCBmYWlsdXJlIikKUmVwb3J0 ZWQtYnk6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KUmVwb3J0ZWQtYnk6IExpbnVzIFRvcnZh bGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogSGVyYmVy dCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jIHwgMTIgKysrKysrKy0tLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmggfCAgMSArCiAy IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMK aW5kZXggY2EwOGZmYi4uN2QyMGFiZSAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGlu ay5jCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwpAQCAtMTAwMiw3ICsxMDAyLDcgQEAg c3RhdGljIGlubGluZSBpbnQgbmV0bGlua19jb21wYXJlKHN0cnVjdCByaGFzaHRhYmxlX2NvbXBh cmVfYXJnICphcmcsCiAJY29uc3Qgc3RydWN0IG5ldGxpbmtfY29tcGFyZV9hcmcgKnggPSBhcmct PmtleTsKIAljb25zdCBzdHJ1Y3QgbmV0bGlua19zb2NrICpubGsgPSBwdHI7CiAKLQlyZXR1cm4g bmxrLT5wb3J0aWQgIT0geC0+cG9ydGlkIHx8CisJcmV0dXJuIG5say0+cmhhc2hfcG9ydGlkICE9 IHgtPnBvcnRpZCB8fAogCSAgICAgICAhbmV0X2VxKHNvY2tfbmV0KCZubGstPnNrKSwgcmVhZF9w bmV0KCZ4LT5wbmV0KSk7CiB9CiAKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHN0YXRpYyBpbnQgX19u ZXRsaW5rX2luc2VydChzdHJ1Y3QgbmV0bGlua190YWJsZSAqdGFibGUsIHN0cnVjdCBzb2NrICpz aykKIHsKIAlzdHJ1Y3QgbmV0bGlua19jb21wYXJlX2FyZyBhcmc7CiAKLQluZXRsaW5rX2NvbXBh cmVfYXJnX2luaXQoJmFyZywgc29ja19uZXQoc2spLCBubGtfc2soc2spLT5wb3J0aWQpOworCW5l dGxpbmtfY29tcGFyZV9hcmdfaW5pdCgmYXJnLCBzb2NrX25ldChzayksIG5sa19zayhzayktPnJo YXNoX3BvcnRpZCk7CiAJcmV0dXJuIHJoYXNodGFibGVfbG9va3VwX2luc2VydF9rZXkoJnRhYmxl LT5oYXNoLCAmYXJnLAogCQkJCQkgICAgJm5sa19zayhzayktPm5vZGUsCiAJCQkJCSAgICBuZXRs aW5rX3JoYXNodGFibGVfcGFyYW1zKTsKQEAgLTEwOTAsMTcgKzEwOTAsMTkgQEAgc3RhdGljIGlu dCBuZXRsaW5rX2luc2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0aWQpCiAJICAgIHVubGlr ZWx5KGF0b21pY19yZWFkKCZ0YWJsZS0+aGFzaC5uZWxlbXMpID49IFVJTlRfTUFYKSkKIAkJZ290 byBlcnI7CiAKLQlubGtfc2soc2spLT5wb3J0aWQgPSBwb3J0aWQ7CisJbmxrX3NrKHNrKS0+cmhh c2hfcG9ydGlkID0gcG9ydGlkOwogCXNvY2tfaG9sZChzayk7CiAKIAllcnIgPSBfX25ldGxpbmtf aW5zZXJ0KHRhYmxlLCBzayk7CiAJaWYgKGVycikgewogCQlpZiAoZXJyID09IC1FRVhJU1QpCiAJ CQllcnIgPSAtRUFERFJJTlVTRTsKLQkJbmxrX3NrKHNrKS0+cG9ydGlkID0gMDsKIAkJc29ja19w dXQoc2spOworCQlnb3RvIGVycjsKIAl9CiAKKwlubGtfc2soc2spLT5wb3J0aWQgPSBwb3J0aWQ7 CisKIGVycjoKIAlyZWxlYXNlX3NvY2soc2spOwogCXJldHVybiBlcnI7CkBAIC0zMTQ3LDcgKzMx NDksNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBuZXRsaW5rX2hhc2goY29uc3Qgdm9pZCAqZGF0YSwg dTMyIGxlbiwgdTMyIHNlZWQpCiAJY29uc3Qgc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gZGF0 YTsKIAlzdHJ1Y3QgbmV0bGlua19jb21wYXJlX2FyZyBhcmc7CiAKLQluZXRsaW5rX2NvbXBhcmVf YXJnX2luaXQoJmFyZywgc29ja19uZXQoJm5say0+c2spLCBubGstPnBvcnRpZCk7CisJbmV0bGlu a19jb21wYXJlX2FyZ19pbml0KCZhcmcsIHNvY2tfbmV0KCZubGstPnNrKSwgbmxrLT5yaGFzaF9w b3J0aWQpOwogCXJldHVybiBqaGFzaDIoKHUzMiAqKSZhcmcsIG5ldGxpbmtfY29tcGFyZV9hcmdf bGVuIC8gc2l6ZW9mKHUzMiksIHNlZWQpOwogfQogCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9h Zl9uZXRsaW5rLmggYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKaW5kZXggZGY5YTA2MC4uODBi MmI3NSAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5oCisrKyBiL25ldC9uZXRs aW5rL2FmX25ldGxpbmsuaApAQCAtMjUsNiArMjUsNyBAQCBzdHJ1Y3QgbmV0bGlua19yaW5nIHsK IHN0cnVjdCBuZXRsaW5rX3NvY2sgewogCS8qIHN0cnVjdCBzb2NrIGhhcyB0byBiZSB0aGUgZmly c3QgbWVtYmVyIG9mIG5ldGxpbmtfc29jayAqLwogCXN0cnVjdCBzb2NrCQlzazsKKwl1MzIJCQly aGFzaF9wb3J0aWQ7CiAJdTMyCQkJcG9ydGlkOwogCXUzMgkJCWRzdF9wb3J0aWQ7CiAJdTMyCQkJ ZHN0X2dyb3VwOwotLSAKMi4xLjAKCgpGcm9tIDQwM2IwOWVhMjA3MzQxZTA1Yzg3N2YxMDEwOThm MzY2N2MyMzIxMTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhl cmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogVHVlLCAyMiBTZXAgMjAxNSAxMTozODo1 NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMjhdIG5ldGxpbms6IFJlcGxhY2Ugcmhhc2hfcG9y dGlkIHdpdGggYm91bmQKClsgVXBzdHJlYW0gY29tbWl0IGRhMzE0Yzk5MjNmZWQ1NTNhMDA3Nzg1 YTkwMWZkMzk1YjdlYjZjMTkgXQoKT24gTW9uLCBTZXAgMjEsIDIwMTUgYXQgMDI6MjA6MjJQTSAt MDQwMCwgVGVqdW4gSGVvIHdyb3RlOgo+Cj4gc3RvcmVfcmVsZWFzZSBhbmQgbG9hZF9hY3F1aXJl IGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgdXN1YWwgbWVtb3J5Cj4gYmFycmllcnMgYW5kIGNhbid0 IGJlIHBhaXJlZCB0aGlzIHdheS4gIFlvdSBoYXZlIHRvIHBhaXIgc3RvcmVfcmVsZWFzZQo+IGFu ZCBsb2FkX2FjcXVpcmUuICBCZXNpZGVzLCBpdCBpc24ndCBhIHBhcnRpY3VsYXJseSBnb29kIGlk ZWEgdG8KCk9LIEkndmUgZGVjaWRlZCB0byBkcm9wIHRoZSBhY3F1aXJlL3JlbGVhc2UgaGVscGVy cyBhcyB0aGV5IGRvbid0CmhlbHAgdXMgYXQgYWxsIGFuZCBzaW1wbHkgcGVzc2ltaXNlcyB0aGUg Y29kZSBieSB1c2luZyBmdWxsIG1lbW9yeQpiYXJyaWVycyAob24gc29tZSBhcmNoaXRlY3R1cmVz KSB3aGVyZSBvbmx5IGEgd3JpdGUgb3IgcmVhZCBiYXJyaWVyCmlzIG5lZWRlZC4KCj4gZGVwZW5k IG9uIG1lbW9yeSBiYXJyaWVycyBlbWJlZGRlZCBpbiBvdGhlciBkYXRhIHN0cnVjdHVyZXMgbGlr ZSB0aGUKPiBhYm92ZS4gIEhlcmUsIGVzcGVjaWFsbHksIHJoYXNodGFibGVfaW5zZXJ0KCkgd291 bGQgaGF2ZSB3cml0ZSBiYXJyaWVyCj4gKmJlZm9yZSogdGhlIGVudHJ5IGlzIGhhc2hlZCBub3Qg bmVjZXNzYXJpbHkgKmFmdGVyKiwgd2hpY2ggbWVhbnMgdGhhdAo+IGluIHRoZSBhYm92ZSBjYXNl LCBhIHNvY2tldCB3aGljaCBhcHBlYXJzIHRvIGhhdmUgc2V0IGJvdW5kIHRvIGEKPiByZWFkZXIg bWlnaHQgbm90IHZpc2libGUgd2hlbiB0aGUgcmVhZGVyIHRyaWVzIHRvIGxvb2sgdXAgdGhlIHNv Y2tldAo+IG9uIHRoZSBoYXNodGFibGUuCgpCdXQgeW91IGFyZSByaWdodCB3ZSBkbyBuZWVkIGFu IGV4cGxpY2l0IHdyaXRlIGJhcnJpZXIgaGVyZSB0bwplbnN1cmUgdGhhdCB0aGUgaGFzaGluZyBp cyB2aXNpYmxlLgoKPiBUaGVyZSdzIG5vIHJlYXNvbiB0byBiZSBvdmVybHkgc21hcnQgaGVyZS4g IFRoaXMgaXNuJ3QgYSBjcmF6eSBob3QKPiBwYXRoLCB3cml0ZSBiYXJyaWVycyB0ZW5kIHRvIGJl IHZlcnkgY2hlYXAsIHN0b3JlX3JlbGVhc2UgbW9yZSBzby4KPiBQbGVhc2UganVzdCBkbyBzbXBf c3RvcmVfcmVsZWFzZSgpIGFuZCBub3RlIHdoYXQgaXQncyBwYWlyZWQgd2l0aC4KCkl0J3Mgbm90 IGFib3V0IGJlaW5nIG92ZXJseSBzbWFydC4gIEl0J3MgYWJvdXQgYWN0dWFsbHkgdW5kZXJzdGFu ZGluZwp3aGF0J3MgZ29pbmcgb24gd2l0aCB0aGUgY29kZS4gIEkndmUgc2VlbiB0b28gbWFueSBp bnN0YW5jZXMgb2YKcGVvcGxlIHNpbXBseSBzcHJpbmtsaW5nIHN5bmNocm9uaXNhdGlvbiBwcmlt aXRpdmVzIGFyb3VuZCB3aXRob3V0CmFueSBrbm93bGVkZ2Ugb2Ygd2hhdCBpcyBoYXBwZW5pbmcg dW5kZXJuZWF0aCwgd2hpY2ggaXMganVzdCBhIHJlY2lwZQpmb3IgY3JlYXRpbmcgaGFyZC10by1k ZWJ1ZyByYWNlcy4KCj4gPiBAQCAtMTUzOSw3ICsxNTQ2LDcgQEAgc3RhdGljIGludCBuZXRsaW5r X2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAo+ID4gIAkJ fQo+ID4gIAl9Cj4gPgo+ID4gLQlpZiAoIW5say0+cG9ydGlkKSB7Cj4gPiArCWlmICghbmxrLT5i b3VuZCkgewo+Cj4gSSBkb24ndCB0aGluayB5b3UgY2FuIHNraXAgbG9hZF9hY3F1aXJlIGhlcmUg anVzdCBiZWNhdXNlIHRoaXMgaXMgdGhlCj4gc2Vjb25kIGRlcmVmIG9mIHRoZSB2YXJpYWJsZS4g IFRoYXQgZG9lc24ndCBjaGFuZ2UgYW55dGhpbmcuICBSYWNlCj4gY29uZGl0aW9uIGNvdWxkIHN0 aWxsIGhhcHBlbiBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgc2Vjb25kIHRlc3RzIGFuZAo+IHNraXBw aW5nIHRoZSBzZWNvbmQgd291bGQgbGVhZCB0byB0aGUgc2FtZSBraW5kIG9mIGJ1Zy4KClRoZSBy ZWFzb24gdGhpcyBvbmUgaXMgT0sgaXMgYmVjYXVzZSB3ZSBkbyBub3QgdXNlIG5say0+cG9ydGlk IG9yCnRyeSB0byBnZXQgbmxrIGZyb20gdGhlIGhhc2ggdGFibGUgYmVmb3JlIHdlIHJldHVybiB0 byB1c2VyLXNwYWNlLgoKSG93ZXZlciwgdGhlcmUgaXMgYSByZWFsIGJ1ZyBoZXJlIHRoYXQgbm9u ZSBvZiB0aGVzZSBhY3F1aXJlL3JlbGVhc2UKaGVscGVycyBkaXNjb3ZlcmVkLiAgVGhlIHR3byBi b3VuZCB0ZXN0cyBoZXJlIHVzZWQgdG8gYmUgYSBzaW5nbGUKb25lLiAgTm93IHRoYXQgdGhleSBh cmUgc2VwYXJhdGUgaXQgaXMgZW50aXJlbHkgcG9zc2libGUgZm9yIGFub3RoZXIKdGhyZWFkIHRv IGNvbWUgaW4gdGhlIG1pZGRsZSBhbmQgYmluZCB0aGUgc29ja2V0LiAgU28gd2UgbmVlZCB0bwpy ZXBlYXQgdGhlIHBvcnRpZCBjaGVjayBpbiBvcmRlciB0byBtYWludGFpbiBjb25zaXN0ZW5jeS4K Cj4gPiBAQCAtMTU4Nyw3ICsxNTk0LDcgQEAgc3RhdGljIGludCBuZXRsaW5rX2Nvbm5lY3Qoc3Ry dWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAo+ID4gIAkgICAgIW5ldGxp bmtfYWxsb3dlZChzb2NrLCBOTF9DRkdfRl9OT05ST09UX1NFTkQpKQo+ID4gIAkJcmV0dXJuIC1F UEVSTTsKPiA+Cj4gPiAtCWlmICghbmxrLT5wb3J0aWQpCj4gPiArCWlmICghbmxrLT5ib3VuZCkK Pgo+IERvbid0IHdlIG5lZWQgbG9hZF9hY3F1aXJlIGhlcmUgdG9vPyAgSXMgdGhpcyBwYXRoIGhv bGRpbmcgYSBsb2NrCj4gd2hpY2ggbWFrZXMgdGhhdCB1bm5lY2Vzc2FyeT8KCkRpdHRvLgoKLS0t ODwtLS0KVGhlIGNvbW1pdCAxZjc3MGMwYTA5ZGE4NTVhMmI1MWFmNmQxOWRlOTdmYjk1NWVjYTg1 ICgibmV0bGluazoKRml4IGF1dG9iaW5kIHJhY2UgY29uZGl0aW9uIHRoYXQgbGVhZHMgdG8gemVy byBwb3J0IElEIikgY3JlYXRlZApzb21lIG5ldyByYWNlcyB0aGF0IGNhbiBvY2N1ciBkdWUgdG8g aW5jb25jc2lzdGVuY2llcyBiZXR3ZWVuIHRoZQp0d28gcG9ydCBJRHMuCgpUZWp1biBpcyByaWdo dCB0aGF0IGEgYmFycmllciBpcyB1bmF2b2lkYWJsZS4gIFRoZXJlZm9yZSBJIGFtCnJldmVydGlu ZyB0byB0aGUgb3JpZ2luYWwgcGF0Y2ggdGhhdCB1c2VkIGEgYm9vbGVhbiB0byBpbmRpY2F0ZQp0 aGF0IGEgdXNlciBuZXRsaW5rIHNvY2tldCBoYXMgYmVlbiBib3VuZC4KCkJhcnJpZXJzIGhhdmUg YmVlbiBhZGRlZCB3aGVyZSBuZWNlc3NhcnkgdG8gZW5zdXJlIHRoYXQgYSB2YWxpZApwb3J0aWQg YW5kIHRoZSBoYXNoZWQgc29ja2V0IGlzIHZpc2libGUuCgpJIGhhdmUgYWxzbyBjaGFuZ2VkIG5l dGxpbmtfaW5zZXJ0IHRvIG9ubHkgcmV0dXJuIEVCVVNZIGlmIHRoZQpzb2NrZXQgaXMgYm91bmQg dG8gYSBwb3J0aWQgZGlmZmVyZW50IHRvIHRoZSByZXF1ZXN0ZWQgb25lLiAgVGhpcwpjb21iaW5l ZCB3aXRoIG9ubHkgcmVhZGluZyBubGstPmJvdW5kIG9uY2UgaW4gbmV0bGlua19iaW5kIGZpeGVz CmEgcmFjZSB3aGVyZSB0d28gdGhyZWFkcyB0aGF0IGJpbmQgdGhlIHNvY2tldCBhdCB0aGUgc2Ft ZSB0aW1lCndpdGggZGlmZmVyZW50IHBvcnQgSURzIG1heSBib3RoIHN1Y2NlZWQuCgpGaXhlczog MWY3NzBjMGEwOWRhICgibmV0bGluazogRml4IGF1dG9iaW5kIHJhY2UgY29uZGl0aW9uIHRoYXQg bGVhZHMgdG8gemVybyBwb3J0IElEIikKUmVwb3J0ZWQtYnk6IFRlanVuIEhlbyA8dGpAa2VybmVs Lm9yZz4KUmVwb3J0ZWQtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0 aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEu b3JnLmF1PgpOYWNrZWQtYnk6IFRlanVuIEhlbyA8dGpAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRsaW5r L2FmX25ldGxpbmsuYyB8IDM5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LQogbmV0L25ldGxpbmsvYWZfbmV0bGluay5oIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjkg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsv YWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmluZGV4IDdkMjBhYmUuLjdk ODI0YWMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0 bGluay9hZl9uZXRsaW5rLmMKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHN0YXRpYyBpbmxpbmUgaW50 IG5ldGxpbmtfY29tcGFyZShzdHJ1Y3Qgcmhhc2h0YWJsZV9jb21wYXJlX2FyZyAqYXJnLAogCWNv bnN0IHN0cnVjdCBuZXRsaW5rX2NvbXBhcmVfYXJnICp4ID0gYXJnLT5rZXk7CiAJY29uc3Qgc3Ry dWN0IG5ldGxpbmtfc29jayAqbmxrID0gcHRyOwogCi0JcmV0dXJuIG5say0+cmhhc2hfcG9ydGlk ICE9IHgtPnBvcnRpZCB8fAorCXJldHVybiBubGstPnBvcnRpZCAhPSB4LT5wb3J0aWQgfHwKIAkg ICAgICAgIW5ldF9lcShzb2NrX25ldCgmbmxrLT5zayksIHJlYWRfcG5ldCgmeC0+cG5ldCkpOwog fQogCkBAIC0xMDI4LDcgKzEwMjgsNyBAQCBzdGF0aWMgaW50IF9fbmV0bGlua19pbnNlcnQoc3Ry dWN0IG5ldGxpbmtfdGFibGUgKnRhYmxlLCBzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IG5l dGxpbmtfY29tcGFyZV9hcmcgYXJnOwogCi0JbmV0bGlua19jb21wYXJlX2FyZ19pbml0KCZhcmcs IHNvY2tfbmV0KHNrKSwgbmxrX3NrKHNrKS0+cmhhc2hfcG9ydGlkKTsKKwluZXRsaW5rX2NvbXBh cmVfYXJnX2luaXQoJmFyZywgc29ja19uZXQoc2spLCBubGtfc2soc2spLT5wb3J0aWQpOwogCXJl dHVybiByaGFzaHRhYmxlX2xvb2t1cF9pbnNlcnRfa2V5KCZ0YWJsZS0+aGFzaCwgJmFyZywKIAkJ CQkJICAgICZubGtfc2soc2spLT5ub2RlLAogCQkJCQkgICAgbmV0bGlua19yaGFzaHRhYmxlX3Bh cmFtcyk7CkBAIC0xMDgxLDggKzEwODEsOCBAQCBzdGF0aWMgaW50IG5ldGxpbmtfaW5zZXJ0KHN0 cnVjdCBzb2NrICpzaywgdTMyIHBvcnRpZCkKIAogCWxvY2tfc29jayhzayk7CiAKLQllcnIgPSAt RUJVU1k7Ci0JaWYgKG5sa19zayhzayktPnBvcnRpZCkKKwllcnIgPSBubGtfc2soc2spLT5wb3J0 aWQgPT0gcG9ydGlkID8gMCA6IC1FQlVTWTsKKwlpZiAobmxrX3NrKHNrKS0+Ym91bmQpCiAJCWdv dG8gZXJyOwogCiAJZXJyID0gLUVOT01FTTsKQEAgLTEwOTAsNyArMTA5MCw3IEBAIHN0YXRpYyBp bnQgbmV0bGlua19pbnNlcnQoc3RydWN0IHNvY2sgKnNrLCB1MzIgcG9ydGlkKQogCSAgICB1bmxp a2VseShhdG9taWNfcmVhZCgmdGFibGUtPmhhc2gubmVsZW1zKSA+PSBVSU5UX01BWCkpCiAJCWdv dG8gZXJyOwogCi0JbmxrX3NrKHNrKS0+cmhhc2hfcG9ydGlkID0gcG9ydGlkOworCW5sa19zayhz ayktPnBvcnRpZCA9IHBvcnRpZDsKIAlzb2NrX2hvbGQoc2spOwogCiAJZXJyID0gX19uZXRsaW5r X2luc2VydCh0YWJsZSwgc2spOwpAQCAtMTEwMSw3ICsxMTAxLDkgQEAgc3RhdGljIGludCBuZXRs aW5rX2luc2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0aWQpCiAJCWdvdG8gZXJyOwogCX0K IAotCW5sa19zayhzayktPnBvcnRpZCA9IHBvcnRpZDsKKwkvKiBXZSBuZWVkIHRvIGVuc3VyZSB0 aGF0IHRoZSBzb2NrZXQgaXMgaGFzaGVkIGFuZCB2aXNpYmxlLiAqLworCXNtcF93bWIoKTsKKwlu bGtfc2soc2spLT5ib3VuZCA9IHBvcnRpZDsKIAogZXJyOgogCXJlbGVhc2Vfc29jayhzayk7CkBA IC0xNDgyLDYgKzE0ODQsNyBAQCBzdGF0aWMgaW50IG5ldGxpbmtfYmluZChzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsCiAJc3RydWN0IHNvY2thZGRyX25sICpubGFk ZHIgPSAoc3RydWN0IHNvY2thZGRyX25sICopYWRkcjsKIAlpbnQgZXJyOwogCWxvbmcgdW5zaWdu ZWQgaW50IGdyb3VwcyA9IG5sYWRkci0+bmxfZ3JvdXBzOworCWJvb2wgYm91bmQ7CiAKIAlpZiAo YWRkcl9sZW4gPCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX25sKSkKIAkJcmV0dXJuIC1FSU5WQUw7 CkBAIC0xNDk4LDkgKzE1MDEsMTQgQEAgc3RhdGljIGludCBuZXRsaW5rX2JpbmQoc3RydWN0IHNv Y2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCQkJcmV0dXJuIGVycjsKIAl9CiAK LQlpZiAobmxrLT5wb3J0aWQpCisJYm91bmQgPSBubGstPmJvdW5kOworCWlmIChib3VuZCkgewor CQkvKiBFbnN1cmUgbmxrLT5wb3J0aWQgaXMgdXAtdG8tZGF0ZS4gKi8KKwkJc21wX3JtYigpOwor CiAJCWlmIChubGFkZHItPm5sX3BpZCAhPSBubGstPnBvcnRpZCkKIAkJCXJldHVybiAtRUlOVkFM OworCX0KIAogCWlmIChubGstPm5ldGxpbmtfYmluZCAmJiBncm91cHMpIHsKIAkJaW50IGdyb3Vw OwpAQCAtMTUxNiw3ICsxNTI0LDEwIEBAIHN0YXRpYyBpbnQgbmV0bGlua19iaW5kKHN0cnVjdCBz b2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAkJfQogCX0KIAotCWlmICghbmxr LT5wb3J0aWQpIHsKKwkvKiBObyBuZWVkIGZvciBiYXJyaWVycyBoZXJlIGFzIHdlIHJldHVybiB0 byB1c2VyLXNwYWNlIHdpdGhvdXQKKwkgKiB1c2luZyBhbnkgb2YgdGhlIGJvdW5kIGF0dHJpYnV0 ZXMuCisJICovCisJaWYgKCFib3VuZCkgewogCQllcnIgPSBubGFkZHItPm5sX3BpZCA/CiAJCQlu ZXRsaW5rX2luc2VydChzaywgbmxhZGRyLT5ubF9waWQpIDoKIAkJCW5ldGxpbmtfYXV0b2JpbmQo c29jayk7CkBAIC0xNTY0LDcgKzE1NzUsMTAgQEAgc3RhdGljIGludCBuZXRsaW5rX2Nvbm5lY3Qo c3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCSAgICAhbmV0bGlu a19hbGxvd2VkKHNvY2ssIE5MX0NGR19GX05PTlJPT1RfU0VORCkpCiAJCXJldHVybiAtRVBFUk07 CiAKLQlpZiAoIW5say0+cG9ydGlkKQorCS8qIE5vIG5lZWQgZm9yIGJhcnJpZXJzIGhlcmUgYXMg d2UgcmV0dXJuIHRvIHVzZXItc3BhY2Ugd2l0aG91dAorCSAqIHVzaW5nIGFueSBvZiB0aGUgYm91 bmQgYXR0cmlidXRlcy4KKwkgKi8KKwlpZiAoIW5say0+Ym91bmQpCiAJCWVyciA9IG5ldGxpbmtf YXV0b2JpbmQoc29jayk7CiAKIAlpZiAoZXJyID09IDApIHsKQEAgLTIzMjEsMTAgKzIzMzUsMTMg QEAgc3RhdGljIGludCBuZXRsaW5rX3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0 IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuKQogCQlkc3RfZ3JvdXAgPSBubGstPmRzdF9ncm91cDsK IAl9CiAKLQlpZiAoIW5say0+cG9ydGlkKSB7CisJaWYgKCFubGstPmJvdW5kKSB7CiAJCWVyciA9 IG5ldGxpbmtfYXV0b2JpbmQoc29jayk7CiAJCWlmIChlcnIpCiAJCQlnb3RvIG91dDsKKwl9IGVs c2UgeworCQkvKiBFbnN1cmUgbmxrIGlzIGhhc2hlZCBhbmQgdmlzaWJsZS4gKi8KKwkJc21wX3Jt YigpOwogCX0KIAogCS8qIEl0J3MgYSByZWFsbHkgY29udm9sdXRlZCB3YXkgZm9yIHVzZXJsYW5k IHRvIGFzayBmb3IgbW1hcGVkCkBAIC0zMTQ5LDcgKzMxNjYsNyBAQCBzdGF0aWMgaW5saW5lIHUz MiBuZXRsaW5rX2hhc2goY29uc3Qgdm9pZCAqZGF0YSwgdTMyIGxlbiwgdTMyIHNlZWQpCiAJY29u c3Qgc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gZGF0YTsKIAlzdHJ1Y3QgbmV0bGlua19jb21w YXJlX2FyZyBhcmc7CiAKLQluZXRsaW5rX2NvbXBhcmVfYXJnX2luaXQoJmFyZywgc29ja19uZXQo Jm5say0+c2spLCBubGstPnJoYXNoX3BvcnRpZCk7CisJbmV0bGlua19jb21wYXJlX2FyZ19pbml0 KCZhcmcsIHNvY2tfbmV0KCZubGstPnNrKSwgbmxrLT5wb3J0aWQpOwogCXJldHVybiBqaGFzaDIo KHUzMiAqKSZhcmcsIG5ldGxpbmtfY29tcGFyZV9hcmdfbGVuIC8gc2l6ZW9mKHUzMiksIHNlZWQp OwogfQogCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmggYi9uZXQvbmV0bGlu ay9hZl9uZXRsaW5rLmgKaW5kZXggODBiMmI3NS4uMTQ0MzdkOSAxMDA2NDQKLS0tIGEvbmV0L25l dGxpbmsvYWZfbmV0bGluay5oCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaApAQCAtMjUs NyArMjUsNiBAQCBzdHJ1Y3QgbmV0bGlua19yaW5nIHsKIHN0cnVjdCBuZXRsaW5rX3NvY2sgewog CS8qIHN0cnVjdCBzb2NrIGhhcyB0byBiZSB0aGUgZmlyc3QgbWVtYmVyIG9mIG5ldGxpbmtfc29j ayAqLwogCXN0cnVjdCBzb2NrCQlzazsKLQl1MzIJCQlyaGFzaF9wb3J0aWQ7CiAJdTMyCQkJcG9y dGlkOwogCXUzMgkJCWRzdF9wb3J0aWQ7CiAJdTMyCQkJZHN0X2dyb3VwOwpAQCAtMzYsNiArMzUs NyBAQCBzdHJ1Y3QgbmV0bGlua19zb2NrIHsKIAl1bnNpZ25lZCBsb25nCQlzdGF0ZTsKIAlzaXpl X3QJCQltYXhfcmVjdm1zZ19sZW47CiAJd2FpdF9xdWV1ZV9oZWFkX3QJd2FpdDsKKwlib29sCQkJ Ym91bmQ7CiAJYm9vbAkJCWNiX3J1bm5pbmc7CiAJc3RydWN0IG5ldGxpbmtfY2FsbGJhY2sJY2I7 CiAJc3RydWN0IG11dGV4CQkqY2JfbXV0ZXg7Ci0tIAoyLjEuMAoKCkZyb20gMzM2ZjMyZmUxMDVl MzRlNjEwZDViN2Q0NmMxNDdiYTAxZDI0ZmVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSmVzc2UgR3Jvc3MgPGplc3NlQG5pY2lyYS5jb20+CkRhdGU6IE1vbiwgMjEgU2VwIDIwMTUg MjA6MjE6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzI4XSBvcGVudnN3aXRjaDogWmVybyBm bG93cyBvbiBhbGxvY2F0aW9uLgoKWyBVcHN0cmVhbSBjb21taXQgYWU1ZjJmYjFkNTFmYTEyOGE0 NjBiY2ZiZTNjNTZkN2FiOGJmNmE0MyBdCgpXaGVuIHN1cHBvcnQgZm9yIG1lZ2FmbG93cyB3YXMg aW50cm9kdWNlZCwgT1ZTIG5lZWRlZCB0byBzdGFydAppbnN0YWxsaW5nIGZsb3dzIHdpdGggYSBt YXNrIGFwcGxpZWQgdG8gdGhlbS4gU2luY2UgbWFza2luZyBpcyBhbgpleHBlbnNpdmUgb3BlcmF0 aW9uLCBPVlMgYWxzbyBoYWQgYW4gb3B0aW1pemF0aW9uIHRoYXQgd291bGQgb25seQp0YWtlIHRo ZSBwYXJ0cyBvZiB0aGUgZmxvdyBrZXlzIHRoYXQgd2VyZSBjb3ZlcmVkIGJ5IGEgbm9uLXplcm8K bWFzay4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHJlbWFpbmluZyBwaWVjZXMgc2hvdWxkIG5v dCBtYXR0ZXIKYmVjYXVzZSB0aGV5IGFyZSBtYXNrZWQgb3V0LgoKV2hpbGUgdGhpcyB3b3JrcyBm aW5lIGZvciB0aGUgcHVycG9zZXMgb2YgbWF0Y2hpbmcgKHdoaWNoIG11c3QgYWx3YXlzCmxvb2sg YXQgdGhlIG1hc2spLCBzZXJpYWxpemF0aW9uIHRvIG5ldGxpbmsgY2FuIGJlIHByb2JsZW1hdGlj LiBTaW5jZQp0aGUgZmxvdyBhbmQgdGhlIG1hc2sgYXJlIHNlcmlhbGl6ZWQgc2VwYXJhdGVseSwg dGhlIHVuaW5pdGlhbGl6ZWQKcG9ydGlvbnMgb2YgdGhlIGZsb3cgY2FuIGJlIGVuY29kZWQgd2l0 aCB3aGF0ZXZlciB2YWx1ZXMgaGFwcGVuIHRvIGJlCnByZXNlbnQuCgpJbiB0ZXJtcyBvZiBmdW5j dGlvbmFsaXR5LCB0aGlzIGhhcyBsaXR0bGUgZWZmZWN0IHNpbmNlIHRoZXNlIGZpZWxkcwp3aWxs IGJlIG1hc2tlZCBvdXQgYnkgZGVmaW5pdGlvbi4gSG93ZXZlciwgaXQgbGVha3Mga2VybmVsIG1l bW9yeSB0bwp1c2Vyc3BhY2UsIHdoaWNoIGlzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFi aWxpdHkuIEl0IGlzIGFsc28KcG9zc2libGUgdGhhdCBvdGhlciBjb2RlIHBhdGhzIGNvdWxkIGxv b2sgYXQgdGhlIG1hc2tlZCBrZXkgYW5kIGdldAp1bmluaXRpYWxpemVkIGRhdGEsIGFsdGhvdWdo IHRoaXMgZG9lcyBub3QgY3VycmVudGx5IGFwcGVhciB0byBiZSBhbgppc3N1ZSBpbiBwcmFjdGlj ZS4KClRoaXMgcmVtb3ZlcyB0aGUgbWFzayBvcHRpbWl6YXRpb24gZm9yIGZsb3dzIHRoYXQgYXJl IGJlaW5nIGluc3RhbGxlZC4KVGhpcyB3YXMgYWx3YXlzIGludGVuZGVkIHRvIGJlIHRoZSBjYXNl IGFzIHRoZSBtYXNrIG9wdGltaXphdGlvbnMgd2VyZQpyZWFsbHkgdGFyZ2V0dGluZyBwZXItcGFj a2V0IGZsb3cgb3BlcmF0aW9ucy4KCkZpeGVzOiAwM2YwZDkxNiAoIm9wZW52c3dpdGNoOiBNZWdh IGZsb3cgaW1wbGVtZW50YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBKZXNzZSBHcm9zcyA8amVzc2VA bmljaXJhLmNvbT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgICB8ICA0ICsrLS0KIG5ldC9vcGVudnN3aXRj aC9mbG93X3RhYmxlLmMgfCAyMyArKysrKysrKysrKystLS0tLS0tLS0tLQogbmV0L29wZW52c3dp dGNoL2Zsb3dfdGFibGUuaCB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMo KyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0 aC5jIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKaW5kZXggMDk2YzYyNy4uMjdlMTQ5NiAx MDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52c3dp dGNoL2RhdGFwYXRoLmMKQEAgLTkwNiw3ICs5MDYsNyBAQCBzdGF0aWMgaW50IG92c19mbG93X2Nt ZF9uZXcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAlpZiAo ZXJyb3IpCiAJCWdvdG8gZXJyX2tmcmVlX2Zsb3c7CiAKLQlvdnNfZmxvd19tYXNrX2tleSgmbmV3 X2Zsb3ctPmtleSwgJmtleSwgJm1hc2spOworCW92c19mbG93X21hc2tfa2V5KCZuZXdfZmxvdy0+ a2V5LCAma2V5LCB0cnVlLCAmbWFzayk7CiAKIAkvKiBFeHRyYWN0IGZsb3cgaWRlbnRpZmllci4g Ki8KIAllcnJvciA9IG92c19ubGFfZ2V0X2lkZW50aWZpZXIoJm5ld19mbG93LT5pZCwgYVtPVlNf RkxPV19BVFRSX1VGSURdLApAQCAtMTAzMyw3ICsxMDMzLDcgQEAgc3RhdGljIHN0cnVjdCBzd19m bG93X2FjdGlvbnMgKmdldF9mbG93X2FjdGlvbnMoY29uc3Qgc3RydWN0IG5sYXR0ciAqYSwKIAlz dHJ1Y3Qgc3dfZmxvd19rZXkgbWFza2VkX2tleTsKIAlpbnQgZXJyb3I7CiAKLQlvdnNfZmxvd19t YXNrX2tleSgmbWFza2VkX2tleSwga2V5LCBtYXNrKTsKKwlvdnNfZmxvd19tYXNrX2tleSgmbWFz a2VkX2tleSwga2V5LCB0cnVlLCBtYXNrKTsKIAllcnJvciA9IG92c19ubGFfY29weV9hY3Rpb25z KGEsICZtYXNrZWRfa2V5LCAmYWN0cywgbG9nKTsKIAlpZiAoZXJyb3IpIHsKIAkJT1ZTX05MRVJS KGxvZywKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmMgYi9uZXQvb3Bl bnZzd2l0Y2gvZmxvd190YWJsZS5jCmluZGV4IDQ2MTNkZjguLmFhMzQ5NTEgMTAwNjQ0Ci0tLSBh L25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2Zsb3df dGFibGUuYwpAQCAtNTYsMjAgKzU2LDIxIEBAIHN0YXRpYyB1MTYgcmFuZ2Vfbl9ieXRlcyhjb25z dCBzdHJ1Y3Qgc3dfZmxvd19rZXlfcmFuZ2UgKnJhbmdlKQogfQogCiB2b2lkIG92c19mbG93X21h c2tfa2V5KHN0cnVjdCBzd19mbG93X2tleSAqZHN0LCBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkg KnNyYywKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2spCisJCSAgICAg ICBib29sIGZ1bGwsIGNvbnN0IHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2spCiB7Ci0JY29uc3Qg bG9uZyAqbSA9IChjb25zdCBsb25nICopKChjb25zdCB1OCAqKSZtYXNrLT5rZXkgKwotCQkJCW1h c2stPnJhbmdlLnN0YXJ0KTsKLQljb25zdCBsb25nICpzID0gKGNvbnN0IGxvbmcgKikoKGNvbnN0 IHU4ICopc3JjICsKLQkJCQltYXNrLT5yYW5nZS5zdGFydCk7Ci0JbG9uZyAqZCA9IChsb25nICop KCh1OCAqKWRzdCArIG1hc2stPnJhbmdlLnN0YXJ0KTsKKwlpbnQgc3RhcnQgPSBmdWxsID8gMCA6 IG1hc2stPnJhbmdlLnN0YXJ0OworCWludCBsZW4gPSBmdWxsID8gc2l6ZW9mICpkc3QgOiByYW5n ZV9uX2J5dGVzKCZtYXNrLT5yYW5nZSk7CisJY29uc3QgbG9uZyAqbSA9IChjb25zdCBsb25nICop KChjb25zdCB1OCAqKSZtYXNrLT5rZXkgKyBzdGFydCk7CisJY29uc3QgbG9uZyAqcyA9IChjb25z dCBsb25nICopKChjb25zdCB1OCAqKXNyYyArIHN0YXJ0KTsKKwlsb25nICpkID0gKGxvbmcgKiko KHU4ICopZHN0ICsgc3RhcnQpOwogCWludCBpOwogCi0JLyogVGhlIG1lbW9yeSBvdXRzaWRlIG9m IHRoZSAnbWFzay0+cmFuZ2UnIGFyZSBub3Qgc2V0IHNpbmNlCi0JICogZnVydGhlciBvcGVyYXRp b25zIG9uICdkc3QnIG9ubHkgdXNlcyBjb250ZW50cyB3aXRoaW4KLQkgKiAnbWFzay0+cmFuZ2Un LgorCS8qIElmICdmdWxsJyBpcyB0cnVlIHRoZW4gYWxsIG9mICdkc3QnIGlzIGZ1bGx5IGluaXRp YWxpemVkLiBPdGhlcndpc2UsCisJICogaWYgJ2Z1bGwnIGlzIGZhbHNlIHRoZSBtZW1vcnkgb3V0 c2lkZSBvZiB0aGUgJ21hc2stPnJhbmdlJyBpcyBsZWZ0CisJICogdW5pbml0aWFsaXplZC4gVGhp cyBjYW4gYmUgdXNlZCBhcyBhbiBvcHRpbWl6YXRpb24gd2hlbiBmdXJ0aGVyCisJICogb3BlcmF0 aW9ucyBvbiAnZHN0JyBvbmx5IHVzZSBjb250ZW50cyB3aXRoaW4gJ21hc2stPnJhbmdlJy4KIAkg Ki8KLQlmb3IgKGkgPSAwOyBpIDwgcmFuZ2Vfbl9ieXRlcygmbWFzay0+cmFuZ2UpOyBpICs9IHNp emVvZihsb25nKSkKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IHNpemVvZihsb25nKSkKIAkJ KmQrKyA9ICpzKysgJiAqbSsrOwogfQogCkBAIC00NzMsNyArNDc0LDcgQEAgc3RhdGljIHN0cnVj dCBzd19mbG93ICptYXNrZWRfZmxvd19sb29rdXAoc3RydWN0IHRhYmxlX2luc3RhbmNlICp0aSwK IAl1MzIgaGFzaDsKIAlzdHJ1Y3Qgc3dfZmxvd19rZXkgbWFza2VkX2tleTsKIAotCW92c19mbG93 X21hc2tfa2V5KCZtYXNrZWRfa2V5LCB1bm1hc2tlZCwgbWFzayk7CisJb3ZzX2Zsb3dfbWFza19r ZXkoJm1hc2tlZF9rZXksIHVubWFza2VkLCBmYWxzZSwgbWFzayk7CiAJaGFzaCA9IGZsb3dfaGFz aCgmbWFza2VkX2tleSwgJm1hc2stPnJhbmdlKTsKIAloZWFkID0gZmluZF9idWNrZXQodGksIGhh c2gpOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShmbG93LCBoZWFkLCBmbG93X3RhYmxlLm5v ZGVbdGktPm5vZGVfdmVyXSkgewpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFi bGUuaCBiL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmgKaW5kZXggNjE2ZWRhMS4uMmRkOTkw MCAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUuaAorKysgYi9uZXQvb3Bl bnZzd2l0Y2gvZmxvd190YWJsZS5oCkBAIC04Niw1ICs4Niw1IEBAIHN0cnVjdCBzd19mbG93ICpv dnNfZmxvd190YmxfbG9va3VwX3VmaWQoc3RydWN0IGZsb3dfdGFibGUgKiwKIGJvb2wgb3ZzX2Zs b3dfY21wKGNvbnN0IHN0cnVjdCBzd19mbG93ICosIGNvbnN0IHN0cnVjdCBzd19mbG93X21hdGNo ICopOwogCiB2b2lkIG92c19mbG93X21hc2tfa2V5KHN0cnVjdCBzd19mbG93X2tleSAqZHN0LCBj b25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnNyYywKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBzd19m bG93X21hc2sgKm1hc2spOworCQkgICAgICAgYm9vbCBmdWxsLCBjb25zdCBzdHJ1Y3Qgc3dfZmxv d19tYXNrICptYXNrKTsKICNlbmRpZiAvKiBmbG93X3RhYmxlLmggKi8KLS0gCjIuMS4wCgoKRnJv bSBmNzAyNDQxYzY5MWQ0N2ZhNjNmNjlkYTZiNjlmMDQxYjJiNmYzMjYxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6 IFdlZCwgMjMgU2VwIDIwMTUgMTQ6MDA6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIIDIxLzI4XSB0 Y3A6IGFkZCBwcm9wZXIgVFMgdmFsIGludG8gUlNUIHBhY2tldHMKClsgVXBzdHJlYW0gY29tbWl0 IDY3NWVlMjMxZDk2MGFmMmFmMzYwNmI0NDgwMzI0ZTI2Nzk3ZWIwMTAgXQoKUlNUIHBhY2tldHMg c2VudCBvbiBiZWhhbGYgb2YgVENQIGNvbm5lY3Rpb25zIHdpdGggVFMgb3B0aW9uIChSRkMgNzMy MwpUQ1AgdGltZXN0YW1wcykgaGF2ZSBpbmNvcnJlY3QgVFMgdmFsIChzZXQgdG8gMCksIGJ1dCBj b3JyZWN0IFRTIGVjci4KCkEgPiBCOiBGbGFncyBbU10sIHNlcSAwLCB3aW4gNjU1MzUsIG9wdGlv bnMgW21zcyAxMDAwLG5vcCxub3AsVFMgdmFsIDEwMAplY3IgMF0sIGxlbmd0aCAwCkIgPiBBOiBG bGFncyBbUy5dLCBzZXEgMjQ0NDc1NTc5NCwgYWNrIDEsIHdpbiAyODk2MCwgb3B0aW9ucyBbbXNz CjE0NjAsbm9wLG5vcCxUUyB2YWwgNzI2NDM0NCBlY3IgMTAwXSwgbGVuZ3RoIDAKQSA+IEI6IEZs YWdzIFsuXSwgYWNrIDEsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMTEwIGVj cgo3MjY0MzQ0XSwgbGVuZ3RoIDAKCkIgPiBBOiBGbGFncyBbUi5dLCBzZXEgMSwgYWNrIDEsIHdp biAyODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMAplY3IgMTEwXSwgbGVuZ3RoIDAKCldl IG5lZWQgdG8gY2FsbCBza2JfbXN0YW1wX2dldCgpIHRvIGdldCBwcm9wZXIgVFMgdmFsLApkZXJp dmVkIGZyb20gc2tiLT5za2JfbXN0YW1wCgpOb3RlIHRoYXQgUkZDIDEzMjMgd2FzIGFkdm9jYXRp bmcgdG8gbm90IHNlbmQgVFMgb3B0aW9uIGluIFJTVCBzZWdtZW50LApidXQgUkZDIDczMjMgcmVj b21tZW5kcyB0aGUgb3Bwb3NpdGUgOgoKICBPbmNlIFRTb3B0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxs eSBuZWdvdGlhdGVkLCB0aGF0IGlzIGJvdGggPFNZTj4gYW5kCiAgPFNZTixBQ0s+IGNvbnRhaW4g VFNvcHQsIHRoZSBUU29wdCBNVVNUIGJlIHNlbnQgaW4gZXZlcnkgbm9uLTxSU1Q+CiAgc2VnbWVu dCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLCBhbmQgU0hPVUxEIGJlIHNlbnQg aW4gYW4KICA8UlNUPiBzZWdtZW50IChzZWUgU2VjdGlvbiA1LjIgZm9yIGRldGFpbHMpCgpOb3Rl IHRoaXMgUkZDIHJlY29tbWVuZHMgdG8gc2VuZCBUUyB2YWwgPSAwLCBidXQgd2UgYmVsaWV2ZSBp dCBpcwpwcmVtYXR1cmUgOiBXZSBkbyBub3Qga25vdyBpZiBhbGwgVENQIHN0YWNrcyBhcmUgcHJv cGVybHkKaGFuZGxpbmcgdGhlIHJlY2VpdmUgc2lkZSA6CgogICBXaGVuIGFuIDxSU1Q+IHNlZ21l bnQgaXMKICAgcmVjZWl2ZWQsIGl0IE1VU1QgTk9UIGJlIHN1YmplY3RlZCB0byB0aGUgUEFXUyBj aGVjayBieSB2ZXJpZnlpbmcgYW4KICAgYWNjZXB0YWJsZSB2YWx1ZSBpbiBTRUcuVFN2YWwsIGFu ZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBUaW1lc3RhbXBzCiAgIG9wdGlvbiBNVVNUIE5PVCBiZSB1 c2VkIHRvIHVwZGF0ZSBjb25uZWN0aW9uIHN0YXRlIGluZm9ybWF0aW9uLgogICBTRUcuVFNlY3Ig TUFZIGJlIHVzZWQgdG8gcHJvdmlkZSBzdHJpY3RlciA8UlNUPiBhY2NlcHRhbmNlIGNoZWNrcy4K CkluIDUgeWVhcnMsIGlmL3doZW4gYWxsIFRDUCBzdGFjayBhcmUgUkZDIDczMjMgcmVhZHksIHdl IG1pZ2h0IGNvbnNpZGVyCnRvIGRlY2lkZSB0byBzZW5kIFRTIHZhbCA9IDAsIGlmIGl0IGJ1eXMg c29tZXRoaW5nLgoKRml4ZXM6IDdmYWVlNWMwZDUxNCAoInRjcDogcmVtb3ZlIFRDUF9TS0JfQ0Io c2tiKS0+d2hlbiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xl LmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvdGNwX291dHB1dC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMK aW5kZXggYTM2OWU4YS4uOTg2NDQwYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1dC5j CisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMjg5Myw2ICsyODkzLDcgQEAgdm9pZCB0 Y3Bfc2VuZF9hY3RpdmVfcmVzZXQoc3RydWN0IHNvY2sgKnNrLCBnZnBfdCBwcmlvcml0eSkKIAlz a2JfcmVzZXJ2ZShza2IsIE1BWF9UQ1BfSEVBREVSKTsKIAl0Y3BfaW5pdF9ub25kYXRhX3NrYihz a2IsIHRjcF9hY2NlcHRhYmxlX3NlcShzayksCiAJCQkgICAgIFRDUEhEUl9BQ0sgfCBUQ1BIRFJf UlNUKTsKKwlza2JfbXN0YW1wX2dldCgmc2tiLT5za2JfbXN0YW1wKTsKIAkvKiBTZW5kIGl0IG9m Zi4gKi8KIAlpZiAodGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCAwLCBwcmlvcml0eSkpCiAJCU5F VF9JTkNfU1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfVENQQUJPUlRGQUlMRUQpOwotLSAK Mi4xLjAKCgpGcm9tIDg1NjNiZWE2Yjc5ZTFjMjU3NzM5NDRkNmM1Mjc2Y2I4ZTcyZjIwODQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIyIFNlcCAyMDE1IDE3OjAxOjExIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAyMi8yOF0gbmV0OiByZXZlcnQgIm5ldF9zY2hlZDogbW92ZSB0cC0+cm9vdCBhbGxvY2F0 aW9uIGludG8KIGZ3X2luaXQoKSIKClsgVXBzdHJlYW0gY29tbWl0IGQ4YWVjYjEwMTE1NDk3ZjZj ZGY4NDFkZjhjODhlYmIzYmEyNWZhMjggXQoKZncgZmlsdGVyIHVzZXMgdHAtPnJvb3Q9PU5VTEwg dG8gY2hlY2sgaWYgaXQgaXMgdGhlIG9sZCBtZXRob2QsCnNvIGl0IGRvZXNuJ3QgbmVlZCBhbGxv Y2F0aW9uIGF0IGFsbCBpbiB0aGlzIGNhc2UuIFRoaXMgcGF0Y2gKcmV2ZXJ0cyB0aGUgb2ZmZW5k aW5nIGNvbW1pdCBhbmQgYWRkcyBzb21lIGNvbW1lbnRzIGZvciBvbGQKbWV0aG9kIHRvIG1ha2Ug aXQgb2J2aW91cy4KCkZpeGVzOiAzM2Y4YjllY2RiMTUgKCJuZXRfc2NoZWQ6IG1vdmUgdHAtPnJv b3QgYWxsb2NhdGlvbiBpbnRvIGZ3X2luaXQoKSIpClJlcG9ydGVkLWJ5OiBBa3NoYXQgS2Fra2Fy IDxha3NoYXQuMTk4NEBnbWFpbC5jb20+CkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRh dHUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KQWNrZWQtYnk6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2No ZWQvY2xzX2Z3LmMgfCAzMCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvc2NoZWQvY2xzX2Z3LmMgYi9uZXQvc2NoZWQvY2xzX2Z3LmMKaW5kZXggNzE1ZTAxZS4uZjIz YTNiNiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19mdy5jCisrKyBiL25ldC9zY2hlZC9jbHNf ZncuYwpAQCAtMzMsNyArMzMsNiBAQAogCiBzdHJ1Y3QgZndfaGVhZCB7CiAJdTMyCQkJbWFzazsK LQlib29sCQkJbWFza19zZXQ7CiAJc3RydWN0IGZ3X2ZpbHRlciBfX3JjdQkqaHRbSFRTSVpFXTsK IAlzdHJ1Y3QgcmN1X2hlYWQJCXJjdTsKIH07CkBAIC04NCw3ICs4Myw3IEBAIHN0YXRpYyBpbnQg ZndfY2xhc3NpZnkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjZl9wcm90byAq dHAsCiAJCQl9CiAJCX0KIAl9IGVsc2UgewotCQkvKiBvbGQgbWV0aG9kICovCisJCS8qIE9sZCBt ZXRob2Q6IGNsYXNzaWZ5IHRoZSBwYWNrZXQgdXNpbmcgaXRzIHNrYiBtYXJrLiAqLwogCQlpZiAo aWQgJiYgKFRDX0hfTUFKKGlkKSA9PSAwIHx8CiAJCQkgICAhKFRDX0hfTUFKKGlkIF4gdHAtPnEt PmhhbmRsZSkpKSkgewogCQkJcmVzLT5jbGFzc2lkID0gaWQ7CkBAIC0xMTQsMTQgKzExMyw5IEBA IHN0YXRpYyB1bnNpZ25lZCBsb25nIGZ3X2dldChzdHJ1Y3QgdGNmX3Byb3RvICp0cCwgdTMyIGhh bmRsZSkKIAogc3RhdGljIGludCBmd19pbml0KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwKQogewotCXN0 cnVjdCBmd19oZWFkICpoZWFkOwotCi0JaGVhZCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmd19o ZWFkKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKGhlYWQgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9CVUZT OwotCi0JaGVhZC0+bWFza19zZXQgPSBmYWxzZTsKLQlyY3VfYXNzaWduX3BvaW50ZXIodHAtPnJv b3QsIGhlYWQpOworCS8qIFdlIGRvbid0IGFsbG9jYXRlIGZ3X2hlYWQgaGVyZSwgYmVjYXVzZSBp biB0aGUgb2xkIG1ldGhvZAorCSAqIHdlIGRvbid0IG5lZWQgaXQgYXQgYWxsLgorCSAqLwogCXJl dHVybiAwOwogfQogCkBAIC0yNTIsNyArMjQ2LDcgQEAgc3RhdGljIGludCBmd19jaGFuZ2Uoc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCWludCBlcnI7CiAKIAlpZiAo IW9wdCkKLQkJcmV0dXJuIGhhbmRsZSA/IC1FSU5WQUwgOiAwOworCQlyZXR1cm4gaGFuZGxlID8g LUVJTlZBTCA6IDA7IC8qIFN1Y2NlZWQgaWYgaXQgaXMgb2xkIG1ldGhvZC4gKi8KIAogCWVyciA9 IG5sYV9wYXJzZV9uZXN0ZWQodGIsIFRDQV9GV19NQVgsIG9wdCwgZndfcG9saWN5KTsKIAlpZiAo ZXJyIDwgMCkKQEAgLTMwMiwxMSArMjk2LDE3IEBAIHN0YXRpYyBpbnQgZndfY2hhbmdlKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlpZiAoIWhhbmRsZSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKLQlpZiAoIWhlYWQtPm1hc2tfc2V0KSB7Ci0JCWhlYWQtPm1hc2sgPSAw eEZGRkZGRkZGOworCWlmICghaGVhZCkgeworCQl1MzIgbWFzayA9IDB4RkZGRkZGRkY7CiAJCWlm ICh0YltUQ0FfRldfTUFTS10pCi0JCQloZWFkLT5tYXNrID0gbmxhX2dldF91MzIodGJbVENBX0ZX X01BU0tdKTsKLQkJaGVhZC0+bWFza19zZXQgPSB0cnVlOworCQkJbWFzayA9IG5sYV9nZXRfdTMy KHRiW1RDQV9GV19NQVNLXSk7CisKKwkJaGVhZCA9IGt6YWxsb2Moc2l6ZW9mKCpoZWFkKSwgR0ZQ X0tFUk5FTCk7CisJCWlmICghaGVhZCkKKwkJCXJldHVybiAtRU5PQlVGUzsKKwkJaGVhZC0+bWFz ayA9IG1hc2s7CisKKwkJcmN1X2Fzc2lnbl9wb2ludGVyKHRwLT5yb290LCBoZWFkKTsKIAl9CiAK IAlmID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGZ3X2ZpbHRlciksIEdGUF9LRVJORUwpOwotLSAK Mi4xLjAKCgpGcm9tIDVkOWRmYjYwODUzMWQ0Yjk1YjhkMDAwNjUyZDRjZWQ0YmQzYWRmNDEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbHNvbiBLb2sgPHdrb2tAY3VtdWx1c25ldHdv cmtzLmNvbT4KRGF0ZTogVHVlLCAyMiBTZXAgMjAxNSAyMTo0MDoyMiAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMjMvMjhdIGZpYl9ydWxlczogZml4IGZpYiBydWxlIGR1bXBzIGFjcm9zcyBtdWx0aXBs ZSBza2JzCgpbIFVwc3RyZWFtIGNvbW1pdCA0MWZjMDE0MzMyZDkxZWU5MGMzMjg0MGJmMTYxZjk2 ODViN2ZiZjJiIF0KCmR1bXBfcnVsZXMgcmV0dXJucyBza2IgbGVuZ3RoIGFuZCBub3QgZXJyb3Iu CkJ1dCB3aGVuIGZhbWlseSA9PSBBRl9VTlNQRUMsIHRoZSBjYWxsZXIgb2YgZHVtcF9ydWxlcwph c3N1bWVzIHRoYXQgaXQgcmV0dXJucyBhbiBlcnJvci4gSGVuY2UsIHdoZW4gZmFtaWx5ID09IEFG X1VOU1BFQywKd2UgY29udGludWUgdHJ5aW5nIHRvIGR1bXAgb24gLUVNU0dTSVpFIGVycm9ycyBy ZXN1bHRpbmcgaW4KaW5jb3JyZWN0IGR1bXAgaWR4IGNhcnJpZWQgYmV0d2VlbiBza2JzIGJlbG9u Z2luZyB0byB0aGUgc2FtZSBkdW1wLgpUaGlzIHJlc3VsdHMgaW4gZmliIHJ1bGUgZHVtcCBhbHdh eXMgb25seSBkdW1waW5nIHJ1bGVzIHRoYXQgZml0CmludG8gdGhlIGZpcnN0IHNrYi4KClRoaXMg cGF0Y2ggZml4ZXMgZHVtcF9ydWxlcyB0byByZXR1cm4gZXJyb3Igc28gdGhhdCB3ZSBleGl0IGNv cnJlY3RseQphbmQgaWR4IGlzIGNvcnJlY3RseSBtYWludGFpbmVkIGJldHdlZW4gc2ticyB0aGF0 IGFyZSBwYXJ0IG9mIHRoZQpzYW1lIGR1bXAuCgpTaWduZWQtb2ZmLWJ5OiBXaWxzb24gS29rIDx3 a29rQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IFJvb3BhIFByYWJodSA8cm9v cGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2ZpYl9ydWxlcy5jIHwgMTQgKysrKysr KysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmliX3J1bGVzLmMgYi9uZXQvY29yZS9maWJfcnVsZXMu YwppbmRleCA5YTEyNjY4Li4wYWQxNDRmIDEwMDY0NAotLS0gYS9uZXQvY29yZS9maWJfcnVsZXMu YworKysgYi9uZXQvY29yZS9maWJfcnVsZXMuYwpAQCAtNjE1LDE1ICs2MTUsMTcgQEAgc3RhdGlj IGludCBkdW1wX3J1bGVzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxi YWNrICpjYiwKIHsKIAlpbnQgaWR4ID0gMDsKIAlzdHJ1Y3QgZmliX3J1bGUgKnJ1bGU7CisJaW50 IGVyciA9IDA7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uo cnVsZSwgJm9wcy0+cnVsZXNfbGlzdCwgbGlzdCkgewogCQlpZiAoaWR4IDwgY2ItPmFyZ3NbMV0p CiAJCQlnb3RvIHNraXA7CiAKLQkJaWYgKGZpYl9ubF9maWxsX3J1bGUoc2tiLCBydWxlLCBORVRM SU5LX0NCKGNiLT5za2IpLnBvcnRpZCwKLQkJCQkgICAgIGNiLT5ubGgtPm5sbXNnX3NlcSwgUlRN X05FV1JVTEUsCi0JCQkJICAgICBOTE1fRl9NVUxUSSwgb3BzKSA8IDApCisJCWVyciA9IGZpYl9u bF9maWxsX3J1bGUoc2tiLCBydWxlLCBORVRMSU5LX0NCKGNiLT5za2IpLnBvcnRpZCwKKwkJCQkg ICAgICAgY2ItPm5saC0+bmxtc2dfc2VxLCBSVE1fTkVXUlVMRSwKKwkJCQkgICAgICAgTkxNX0Zf TVVMVEksIG9wcyk7CisJCWlmIChlcnIpCiAJCQlicmVhazsKIHNraXA6CiAJCWlkeCsrOwpAQCAt NjMyLDcgKzYzNCw3IEBAIHNraXA6CiAJY2ItPmFyZ3NbMV0gPSBpZHg7CiAJcnVsZXNfb3BzX3B1 dChvcHMpOwogCi0JcmV0dXJuIHNrYi0+bGVuOworCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBp bnQgZmliX25sX2R1bXBydWxlKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2Nh bGxiYWNrICpjYikKQEAgLTY0OCw3ICs2NTAsOSBAQCBzdGF0aWMgaW50IGZpYl9ubF9kdW1wcnVs ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCiAJCWlm IChvcHMgPT0gTlVMTCkKIAkJCXJldHVybiAtRUFGTk9TVVBQT1JUOwogCi0JCXJldHVybiBkdW1w X3J1bGVzKHNrYiwgY2IsIG9wcyk7CisJCWR1bXBfcnVsZXMoc2tiLCBjYiwgb3BzKTsKKworCQly ZXR1cm4gc2tiLT5sZW47CiAJfQogCiAJcmN1X3JlYWRfbG9jaygpOwotLSAKMi4xLjAKCgpGcm9t IGE2ODJiZDU5MGU5ZmUzMjg0MDU0ZGY1Y2Y1Y2E1ZjJlODIwNjUwNDIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpE YXRlOiBNb24sIDIwIEp1bCAyMDE1IDE3OjQ5OjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyNC8y OF0gbmV0OiBkc2E6IGJjbV9zZjI6IERvIG5vdCBvdmVycmlkZSBzcGVlZCBzZXR0aW5ncwoKWyBV cHN0cmVhbSBkMmVhYzk4ZjdkMWI5NTBiNzYyYTdlY2EwNWE5Y2UwZWExZDg3OGQyIGluIG5ldC1u ZXh0IHRyZWUsCiAgd2lsbCBiZSBwdXNoZWQgdG8gTGludXMgdmVyeSBzb29uLiBdCgpUaGUgU0Yy IGRyaXZlciBjdXJyZW50bHkgb3ZlcnJpZGVzIHNwZWVkIHNldHRpbmdzIGZvciBpdHMgcG9ydApj b25maWd1cmVkIHVzaW5nIGEgZml4ZWQgUEhZLCB0aGlzIGlzIGJvdGggdW5uZWNlc3NhcnkgYW5k IGluY29ycmVjdCwKYmVjYXVzZSB3ZSBrZWVwIGZlZWRiYWNrIHRvIHRoZSBoYXJkd2FyZSBwYXJh bWV0ZXJzIHRoYXQgd2UgcmVhZCBmcm9tCnRoZSBQSFkgZGV2aWNlLCB3aGljaCBpbiB0aGUgY2Fz ZSBvZiBhIGZpeGVkIFBIWSBjYW5ub3QgcG9zc2libHkgY2hhbmdlCnNwZWVkLgoKVGhpcyBpcyBh IHJlcXVpcmVkIGNoYW5nZSB0byBhbGxvdyB0aGUgZml4ZWQgUEhZIGNvZGUgdG8gYWxsb3cKcmVn aXN0ZXJpbmcgYSBQSFkgd2l0aCBhIGxpbmsgY29uZmlndXJlZCBhcyBET1dOIGJ5IGRlZmF1bHQg YW5kIGF2b2lkCnNvbWUgc29ydCBvZiBjaXJjdWxhciBkZXBlbmRlbmN5IHdoZXJlIHdlIHJlcXVp cmUgdGhlIGxpbmtfdXBkYXRlCmNhbGxiYWNrIHRvIHJ1biB0byBwcm9ncmFtIHRoZSBoYXJkd2Fy ZSwgYW5kIHdlIHRoZW4gdXRpbGl6ZSB0aGUgZml4ZWQKUEhZIHBhcmFtZXRlcnMgdG8gcHJvZ3Jh bSB0aGUgaGFyZHdhcmUgd2l0aCB0aGUgc2FtZSBzZXR0aW5ncy4KCkZpeGVzOiAyNDZkN2Y3NzNj MTMgKCJuZXQ6IGRzYTogYWRkIEJyb2FkY29tIFNGMiBzd2l0Y2ggZHJpdmVyIikKU2lnbmVkLW9m Zi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9kc2EvYmNtX3NmMi5jIHwgMTggKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MSBpbnNlcnRpb24oKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2RzYS9iY21fc2YyLmMgYi9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCmluZGV4IGYyNGM0ZmUu LmRiOWViYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMKKysrIGIvZHJp dmVycy9uZXQvZHNhL2JjbV9zZjIuYwpAQCAtODkzLDE1ICs4OTMsMTEgQEAgc3RhdGljIHZvaWQg YmNtX3NmMl9zd19maXhlZF9saW5rX3VwZGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBw b3J0LAogCQkJCQkgc3RydWN0IGZpeGVkX3BoeV9zdGF0dXMgKnN0YXR1cykKIHsKIAlzdHJ1Y3Qg YmNtX3NmMl9wcml2ICpwcml2ID0gZHNfdG9fcHJpdihkcyk7Ci0JdTMyIGR1cGxleCwgcGF1c2Us IHNwZWVkOworCXUzMiBkdXBsZXgsIHBhdXNlOwogCXUzMiByZWc7CiAKIAlkdXBsZXggPSBjb3Jl X3JlYWRsKHByaXYsIENPUkVfRFVQU1RTKTsKIAlwYXVzZSA9IGNvcmVfcmVhZGwocHJpdiwgQ09S RV9QQVVTRVNUUyk7Ci0Jc3BlZWQgPSBjb3JlX3JlYWRsKHByaXYsIENPUkVfU1BEU1RTKTsKLQot CXNwZWVkID4+PSAocG9ydCAqIFNQRFNUU19TSElGVCk7Ci0Jc3BlZWQgJj0gU1BEU1RTX01BU0s7 CiAKIAlzdGF0dXMtPmxpbmsgPSAwOwogCkBAIC05MjksMTggKzkyNSw2IEBAIHN0YXRpYyB2b2lk IGJjbV9zZjJfc3dfZml4ZWRfbGlua191cGRhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQg cG9ydCwKIAkJcmVnICY9IH5MSU5LX1NUUzsKIAljb3JlX3dyaXRlbChwcml2LCByZWcsIENPUkVf U1RTX09WRVJSSURFX0dNSUlQX1BPUlQocG9ydCkpOwogCi0Jc3dpdGNoIChzcGVlZCkgewotCWNh c2UgU1BEU1RTXzEwOgotCQlzdGF0dXMtPnNwZWVkID0gU1BFRURfMTA7Ci0JCWJyZWFrOwotCWNh c2UgU1BEU1RTXzEwMDoKLQkJc3RhdHVzLT5zcGVlZCA9IFNQRUVEXzEwMDsKLQkJYnJlYWs7Ci0J Y2FzZSBTUERTVFNfMTAwMDoKLQkJc3RhdHVzLT5zcGVlZCA9IFNQRUVEXzEwMDA7Ci0JCWJyZWFr OwotCX0KLQogCWlmICgocGF1c2UgJiAoMSA8PCBwb3J0KSkgJiYKIAkgICAgKHBhdXNlICYgKDEg PDwgKHBvcnQgKyBQQVVTRVNUU19UWF9QQVVTRV9TSElGVCkpKSkgewogCQlzdGF0dXMtPmFzeW1f cGF1c2UgPSAxOwotLSAKMi4xLjAKCgpGcm9tIDQyNmU1ZTg2MGU0ZDA3Njk5Mjk0M2VjNzgzN2Mx MjM0ZjczODRhNjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0YXMgU2VyZ2VldiA8 c3RzcEBsaXN0LnJ1PgpEYXRlOiBNb24sIDIwIEp1bCAyMDE1IDE3OjQ5OjU2IC0wNzAwClN1Ympl Y3Q6IFtQQVRDSCAyNS8yOF0gbmV0OiBwaHk6IGZpeGVkX3BoeTogaGFuZGxlIGxpbmstZG93biBj YXNlCgpbIFVwc3RyZWFtIDg2OGE0MjE1YmU5YTZkODA1NDhjY2I3NDc2M2I4ODNkYzk5ZDMyYTIg aW4gbmV0LW5leHQgdHJlZSwKICB3aWxsIGJlIHB1c2hlZCB0byBMaW51cyB2ZXJ5IHNvb24uIF0K CmZpeGVkX3BoeV9yZWdpc3RlcigpIGN1cnJlbnRseSBoYXJkY29kZXMgdGhlIGZpeGVkIFBIWSBs aW5rIHRvIDEsIGFuZApleHBlY3RzIHRvIGZpbmQgYSAic3BlZWQiIHBhcmFtZXRlciB0byBwcm92 aWRlIGNvcnJlY3QgaW5mb3JtYXRpb24KdG93YXJkcyB0aGUgZml4ZWQgUEhZIGNvbnN1bWVyLgoK SW4gYSBzdWJzZXF1ZW50IGNoYW5nZSwgd2hlcmUgd2UgYWxsb3cgIm1hbmFnZWQiIChlLmc6IChS UylHTUlJIGluLWJhbmQKc3RhdHVzIGF1dG8tbmVnb3RpYXRpb24pIGZpeGVkIFBIWXMsIG5vbmUg b2YgdGhlc2UgcGFyYW1ldGVycyBjYW4gYmUKcHJvdmlkZWQgc2luY2UgdGhleSB3aWxsIGJlIGF1 dG8tbmVnb3RpYXRlZCwgaGVuY2UsIHdlIGp1c3QgcHJvdmlkZSBhCnplcm8taW5pdGlhbGl6ZWQg Zml4ZWRfcGh5X3N0YXR1cyB0byBmaXhlZF9waHlfcmVnaXN0ZXIoKSB3aGljaCBtYWtlcyBpdApm YWlsIHdoZW4gd2UgY2FsbCBmaXhlZF9waHlfdXBkYXRlX3JlZ3MoKSBzaW5jZSBzdGF0dXMuc3Bl ZWQgPSAwIHdoaWNoCm1ha2VzIHVzIGhpdCB0aGUgImRlZmF1bHQiIGxhYmVsIGFuZCBlcnJvciBv dXQuCgpXaXRob3V0IHRoaXMgY2hhbmdlLCB3ZSB3b3VsZCBhbHNvIHNlZSBwb3RlbnRpYWxseSBp bmNvbnNpc3RlbnQKc3BlZWQvZHVwbGV4IHBhcmFtZXRlcnMgZm9yIGZpeGVkIFBIWXMgd2hlbiB0 aGUgbGluayBpcyBET1dOLgoKQ0M6IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKQ0M6IGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1ieTogU3RhcyBTZXJnZWV2IDxzdHNwQHVz ZXJzLnNvdXJjZWZvcmdlLm5ldD4KW2Zsb3JpYW46IGFkZCBtb3JlIGJhY2tncm91bmQgdG8gd2h5 IHRoaXMgaXMgY29ycmVjdCBhbmQgZGVzaXJhYmxlXQpTaWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZh aW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9maXhlZF9waHku YyB8IDggKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L2ZpeGVkX3BoeS5jIGIvZHJpdmVy cy9uZXQvcGh5L2ZpeGVkX3BoeS5jCmluZGV4IDE5NjBiNDYuLjQ3OWI5M2YgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3BoeS9maXhlZF9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvZml4ZWRf cGh5LmMKQEAgLTUyLDYgKzUyLDEwIEBAIHN0YXRpYyBpbnQgZml4ZWRfcGh5X3VwZGF0ZV9yZWdz KHN0cnVjdCBmaXhlZF9waHkgKmZwKQogCXUxNiBscGFnYiA9IDA7CiAJdTE2IGxwYSA9IDA7CiAK KwlpZiAoIWZwLT5zdGF0dXMubGluaykKKwkJZ290byBkb25lOworCWJtc3IgfD0gQk1TUl9MU1RB VFVTIHwgQk1TUl9BTkVHQ09NUExFVEU7CisKIAlpZiAoZnAtPnN0YXR1cy5kdXBsZXgpIHsKIAkJ Ym1jciB8PSBCTUNSX0ZVTExEUExYOwogCkBAIC05NiwxNSArMTAwLDEzIEBAIHN0YXRpYyBpbnQg Zml4ZWRfcGh5X3VwZGF0ZV9yZWdzKHN0cnVjdCBmaXhlZF9waHkgKmZwKQogCQl9CiAJfQogCi0J aWYgKGZwLT5zdGF0dXMubGluaykKLQkJYm1zciB8PSBCTVNSX0xTVEFUVVMgfCBCTVNSX0FORUdD T01QTEVURTsKLQogCWlmIChmcC0+c3RhdHVzLnBhdXNlKQogCQlscGEgfD0gTFBBX1BBVVNFX0NB UDsKIAogCWlmIChmcC0+c3RhdHVzLmFzeW1fcGF1c2UpCiAJCWxwYSB8PSBMUEFfUEFVU0VfQVNZ TTsKIAorZG9uZToKIAlmcC0+cmVnc1tNSUlfUEhZU0lEMV0gPSAwOwogCWZwLT5yZWdzW01JSV9Q SFlTSUQyXSA9IDA7CiAKLS0gCjIuMS4wCgoKRnJvbSBhMjMxOTIwYzI3ZTk3N2JkOGY2Y2E1ZmM5 MDliNmRlNDJmNmVjNWIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdl ZXYgPHN0c3BAbGlzdC5ydT4KRGF0ZTogTW9uLCAyMCBKdWwgMjAxNSAxNzo0OTo1NyAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjYvMjhdIG9mX21kaW86IGFkZCBuZXcgRFQgcHJvcGVydHkgJ21hbmFn ZWQnIHRvIHNwZWNpZnkgdGhlCiBQSFkgbWFuYWdlbWVudCB0eXBlCgpbIFVwc3RyZWFtIGNvbW1p dCA0Y2JhNWMyMTAzNjU3ZDQzZDA4ODZlNGNmZjgwMDRkOTVhM2QwZGVmIGluIG5ldC1uZXh0IHRy ZWUsCiAgd2lsbCBiZSBwdXNoZWQgdG8gTGludXMgdmVyeSBzb29uLiBdCgpDdXJyZW50bHkgdGhl IFBIWSBtYW5hZ2VtZW50IHR5cGUgaXMgc2VsZWN0ZWQgYnkgdGhlIE1BQyBkcml2ZXIgYXJiaXRy YXJ5LgpUaGUgZGVjaXNpb24gaXMgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIHRoZSAiZml4ZWQt bGluayIgbm9kZSBhbmQgb24gYQp3aWxsIG9mIHRoZSBkcml2ZXIncyBhdXRob3JzLgpUaGlzIGNh dXNlZCBhIHJlZ3Jlc3Npb24gcmVjZW50bHksIHdoZW4gbXZuZXRhIGRyaXZlciBzdWRkZW5seSBz dGFydGVkCnRvIHVzZSB0aGUgaW4tYmFuZCBzdGF0dXMgZm9yIGF1dG8tbmVnb3RpYXRpb24gb24g Zml4ZWQgbGlua3MuCkl0IGFwcGVhcnMgdGhlIGF1dG8tbmVnb3RpYXRpb24gbWF5IG5vdCB3b3Jr IHdoZW4gZXhwZWN0ZWQgYnkgdGhlIE1BQyBkcml2ZXIuClNlYmFzdGllbiBSYW5ub3UgZXhwbGFp bnM6Cjw8IFllcywgSSBjb25maXJtIHRoYXQgbXkgSFcgZG9lcyBub3QgZ2VuZXJhdGUgYW4gaW4t YmFuZCBzdGF0dXMuIEFGQUlLLCBpdCdzCmEgUEhZIHRoYXQgYWdncmVnYXRlcyA0eFNHTUlJcyB0 byAxeFFTR01JSSA7IHRoZSBNQUMgc2lkZSBvZiB0aGUgUEhZICh3aXRoCmluYmFuZCBzdGF0dXMp IGlzIGNvbm5lY3RlZCB0byB0aGUgc3dpdGNoIHRocm91Z2ggUVNHTUlJLCBhbmQgaW4gdGhpcyBj b250ZXh0CndlIGFyZSBvbiB0aGUgbWVkaWEgc2lkZSBvZiB0aGUgUEhZLiA+PgpodHRwczovL2xr bWwub3JnL2xrbWwvMjAxNS83LzEwLzIwNgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBuZXcg c3RyaW5nIHByb3BlcnR5ICdtYW5hZ2VkJyB0aGF0IGFsbG93cwp0aGUgdXNlciB0byBzZXQgdGhl IG1hbmFnZW1lbnQgdHlwZSBleHBsaWNpdGx5LgpUaGUgc3VwcG9ydGVkIHZhbHVlcyBhcmU6CiJh dXRvIiAtIGRlZmF1bHQuIFVzZXMgZWl0aGVyIE1ESU8gb3Igbm90aGluZywgZGVwZW5kaW5nIG9u IHRoZSBwcmVzZW5jZQpvZiB0aGUgZml4ZWQtbGluayBub2RlCiJpbi1iYW5kLXN0YXR1cyIgLSB1 c2UgaW4tYmFuZCBzdGF0dXMKClNpZ25lZC1vZmYtYnk6IFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vy cy5zb3VyY2Vmb3JnZS5uZXQ+CgpDQzogUm9iIEhlcnJpbmcgPHJvYmgrZHRAa2VybmVsLm9yZz4K Q0M6IFBhd2VsIE1vbGwgPHBhd2VsLm1vbGxAYXJtLmNvbT4KQ0M6IE1hcmsgUnV0bGFuZCA8bWFy ay5ydXRsYW5kQGFybS5jb20+CkNDOiBJYW4gQ2FtcGJlbGwgPGlqYytkZXZpY2V0cmVlQGhlbGxp b24ub3JnLnVrPgpDQzogS3VtYXIgR2FsYSA8Z2FsYWtAY29kZWF1cm9yYS5vcmc+CkNDOiBGbG9y aWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KQ0M6IEdyYW50IExpa2VseSA8Z3Jh bnQubGlrZWx5QGxpbmFyby5vcmc+CkNDOiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZwpDQzog bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ldGhlcm5ldC50eHQgfCAgNCAr KysrCiBkcml2ZXJzL29mL29mX21kaW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE5ICsrKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvbmV0L2V0aGVybmV0LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9uZXQvZXRoZXJuZXQudHh0CmluZGV4IDQxYjNmM2YuLjVkODhmMzcgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQudHh0CisrKyBi L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQudHh0CkBAIC0y NSw3ICsyNSwxMSBAQCBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGNvbW1vbiB0byB0aGUg RXRoZXJuZXQgY29udHJvbGxlcnM6CiAgIGZsb3cgY29udHJvbCB0aHJlc2hvbGRzLgogLSB0eC1m aWZvLWRlcHRoOiB0aGUgc2l6ZSBvZiB0aGUgY29udHJvbGxlcidzIHRyYW5zbWl0IGZpZm8gaW4g Ynl0ZXMuIFRoaXMKICAgaXMgdXNlZCBmb3IgY29tcG9uZW50cyB0aGF0IGNhbiBoYXZlIGNvbmZp Z3VyYWJsZSBmaWZvIHNpemVzLgorLSBtYW5hZ2VkOiBzdHJpbmcsIHNwZWNpZmllcyB0aGUgUEhZ IG1hbmFnZW1lbnQgdHlwZS4gU3VwcG9ydGVkIHZhbHVlcyBhcmU6CisgICJhdXRvIiwgImluLWJh bmQtc3RhdHVzIi4gImF1dG8iIGlzIHRoZSBkZWZhdWx0LCBpdCB1c2VzcyBNRElPIGZvcgorICBt YW5hZ2VtZW50IGlmIGZpeGVkLWxpbmsgaXMgbm90IHNwZWNpZmllZC4KIAogQ2hpbGQgbm9kZXMg b2YgdGhlIEV0aGVybmV0IGNvbnRyb2xsZXIgYXJlIHR5cGljYWxseSB0aGUgaW5kaXZpZHVhbCBQ SFkgZGV2aWNlcwogY29ubmVjdGVkIHZpYSB0aGUgTURJTyBidXMgKHNvbWV0aW1lcyB0aGUgTURJ TyBidXMgY29udHJvbGxlciBpcyBzZXBhcmF0ZSkuCiBUaGV5IGFyZSBkZXNjcmliZWQgaW4gdGhl IHBoeS50eHQgZmlsZSBpbiB0aGlzIHNhbWUgZGlyZWN0b3J5LgorRm9yIG5vbi1NRElPIFBIWSBt YW5hZ2VtZW50IHNlZSBmaXhlZC1saW5rLnR4dC4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2Yvb2Zf bWRpby5jIGIvZHJpdmVycy9vZi9vZl9tZGlvLmMKaW5kZXggMGMwNjQ0OC4uYmVjOGVjMiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9vZi9vZl9tZGlvLmMKKysrIGIvZHJpdmVycy9vZi9vZl9tZGlvLmMK QEAgLTI2Myw3ICsyNjMsOCBAQCBFWFBPUlRfU1lNQk9MKG9mX3BoeV9hdHRhY2gpOwogYm9vbCBv Zl9waHlfaXNfZml4ZWRfbGluayhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogewogCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqZG47Ci0JaW50IGxlbjsKKwlpbnQgbGVuLCBlcnI7CisJY29uc3QgY2hhciAq bWFuYWdlZDsKIAogCS8qIE5ldyBiaW5kaW5nICovCiAJZG4gPSBvZl9nZXRfY2hpbGRfYnlfbmFt ZShucCwgImZpeGVkLWxpbmsiKTsKQEAgLTI3Miw2ICsyNzMsMTAgQEAgYm9vbCBvZl9waHlfaXNf Zml4ZWRfbGluayhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQogCQlyZXR1cm4gdHJ1ZTsKIAl9CiAK KwllcnIgPSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhucCwgIm1hbmFnZWQiLCAmbWFuYWdlZCk7 CisJaWYgKGVyciA9PSAwICYmIHN0cmNtcChtYW5hZ2VkLCAiYXV0byIpICE9IDApCisJCXJldHVy biB0cnVlOworCiAJLyogT2xkIGJpbmRpbmcgKi8KIAlpZiAob2ZfZ2V0X3Byb3BlcnR5KG5wLCAi Zml4ZWQtbGluayIsICZsZW4pICYmCiAJICAgIGxlbiA9PSAoNSAqIHNpemVvZihfX2JlMzIpKSkK QEAgLTI4Niw4ICsyOTEsMTggQEAgaW50IG9mX3BoeV9yZWdpc3Rlcl9maXhlZF9saW5rKHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnApCiAJc3RydWN0IGZpeGVkX3BoeV9zdGF0dXMgc3RhdHVzID0ge307 CiAJc3RydWN0IGRldmljZV9ub2RlICpmaXhlZF9saW5rX25vZGU7CiAJY29uc3QgX19iZTMyICpm aXhlZF9saW5rX3Byb3A7Ci0JaW50IGxlbjsKKwlpbnQgbGVuLCBlcnI7CiAJc3RydWN0IHBoeV9k ZXZpY2UgKnBoeTsKKwljb25zdCBjaGFyICptYW5hZ2VkOworCisJZXJyID0gb2ZfcHJvcGVydHlf cmVhZF9zdHJpbmcobnAsICJtYW5hZ2VkIiwgJm1hbmFnZWQpOworCWlmIChlcnIgPT0gMCkgewor CQlpZiAoc3RyY21wKG1hbmFnZWQsICJpbi1iYW5kLXN0YXR1cyIpID09IDApIHsKKwkJCS8qIHN0 YXR1cyBpcyB6ZXJvZWQsIG5hbWVseSBpdHMgLmxpbmsgbWVtYmVyICovCisJCQlwaHkgPSBmaXhl ZF9waHlfcmVnaXN0ZXIoUEhZX1BPTEwsICZzdGF0dXMsIG5wKTsKKwkJCXJldHVybiBJU19FUlIo cGh5KSA/IFBUUl9FUlIocGh5KSA6IDA7CisJCX0KKwl9CiAKIAkvKiBOZXcgYmluZGluZyAqLwog CWZpeGVkX2xpbmtfbm9kZSA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKG5wLCAiZml4ZWQtbGluayIp OwotLSAKMi4xLjAKCgpGcm9tIGYyYTUwY2VhNjI1Njc4MmUzNzVhNDRiYTAyZDM5NDQxMzA3NDMz ZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0YXMgU2VyZ2VldiA8c3RzcEBsaXN0 LnJ1PgpEYXRlOiBNb24sIDIwIEp1bCAyMDE1IDE3OjQ5OjU4IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyNy8yOF0gbXZuZXRhOiB1c2UgaW5iYW5kIHN0YXR1cyBvbmx5IHdoZW4gZXhwbGljaXRseSBl bmFibGVkCgpbIFVwc3RyZWFtIGNvbW1pdCBmOGFmOGU2ZWI5NTA5M2Q1Y2U1ZWJjYzUyYmQxOTI5 YjA0MzNlMTcyIGluIG5ldC1uZXh0IHRyZWUsCiAgd2lsbCBiZSBwdXNoZWQgdG8gTGludXMgdmVy eSBzb29uLiBdCgpUaGUgY29tbWl0IDg5OGIyOTcwZTJjOSAoIm12bmV0YTogaW1wbGVtZW50IFNH TUlJLWJhc2VkIGluLWJhbmQgbGluayBzdGF0ZQpzaWduYWxpbmciKSBpbXBsZW1lbnRlZCB0aGUg bGluayBwYXJhbWV0ZXJzIGF1dG8tbmVnb3RpYXRpb24gdW5jb25kaXRpb25hbGx5LgpVbmZvcnR1 bmF0ZWx5IGl0IGFwcGVhcnMgdGhhdCBzb21lIEhXIHRoYXQgaW1wbGVtZW50cyBTR01JSSBwcm90 b2NvbCwKZG9lc24ndCBnZW5lcmF0ZSB0aGUgaW5iYW5kIHN0YXR1cywgc28gaXQgaXMgbm90IHBv c3NpYmxlIHRvIGF1dG8tbmVnb3RpYXRlCmFueXRoaW5nIHdpdGggc3VjaCBIVy4KClRoaXMgcGF0 Y2ggZW5hYmxlcyB0aGUgYXV0by1uZWdvdGlhdGlvbiBvbmx5IGlmIGV4cGxpY2l0bHkgcmVxdWVz dGVkIHdpdGgKdGhlICdtYW5hZ2VkJyBEVCBwcm9wZXJ0eS4KClRoaXMgcGF0Y2ggZml4ZXMgdGhl IGZvbGxvd2luZyByZWdyZXNzaW9uOgpodHRwczovL2xrbWwub3JnL2xrbWwvMjAxNS83LzgvODY1 CgpTaWduZWQtb2ZmLWJ5OiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9yZ2UubmV0 PgoKQ0M6IFRob21hcyBQZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAZnJlZS1lbGVjdHJvbnMu Y29tPgpDQzogbmV0ZGV2QHZnZXIua2VybmVsLm9yZwpDQzogbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZwpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyB8IDkgKysrKyst LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCmluZGV4IDc0ZDAzODkuLjRkNjA4ZjAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYwpAQCAtMzAyOSw4ICszMDI5LDggQEAg c3RhdGljIGludCBtdm5ldGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlj b25zdCBjaGFyICpkdF9tYWNfYWRkcjsKIAljaGFyIGh3X21hY19hZGRyW0VUSF9BTEVOXTsKIAlj b25zdCBjaGFyICptYWNfZnJvbTsKKwljb25zdCBjaGFyICptYW5hZ2VkOwogCWludCBwaHlfbW9k ZTsKLQlpbnQgZml4ZWRfcGh5ID0gMDsKIAlpbnQgZXJyOwogCiAJLyogT3VyIG11bHRpcXVldWUg c3VwcG9ydCBpcyBub3QgY29tcGxldGUsIHNvIGZvciBub3csIG9ubHkKQEAgLTMwNjQsNyArMzA2 NCw2IEBAIHN0YXRpYyBpbnQgbXZuZXRhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJjYW5ub3QgcmVnaXN0ZXIgZml4ZWQgUEhZXG4i KTsKIAkJCWdvdG8gZXJyX2ZyZWVfaXJxOwogCQl9Ci0JCWZpeGVkX3BoeSA9IDE7CiAKIAkJLyog SW4gdGhlIGNhc2Ugb2YgYSBmaXhlZCBQSFksIHRoZSBEVCBub2RlIGFzc29jaWF0ZWQKIAkJICog dG8gdGhlIFBIWSBpcyB0aGUgRXRoZXJuZXQgTUFDIERUIG5vZGUuCkBAIC0zMDg4LDggKzMwODcs MTAgQEAgc3RhdGljIGludCBtdm5ldGFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKIAlwcCA9IG5ldGRldl9wcml2KGRldik7CiAJcHAtPnBoeV9ub2RlID0gcGh5X25vZGU7CiAJ cHAtPnBoeV9pbnRlcmZhY2UgPSBwaHlfbW9kZTsKLQlwcC0+dXNlX2luYmFuZF9zdGF0dXMgPSAo cGh5X21vZGUgPT0gUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJKSAmJgotCQkJCWZpeGVkX3BoeTsK KworCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKGRuLCAibWFuYWdlZCIsICZtYW5hZ2Vk KTsKKwlwcC0+dXNlX2luYmFuZF9zdGF0dXMgPSAoZXJyID09IDAgJiYKKwkJCQkgc3RyY21wKG1h bmFnZWQsICJpbi1iYW5kLXN0YXR1cyIpID09IDApOwogCiAJcHAtPmNsayA9IGRldm1fY2xrX2dl dCgmcGRldi0+ZGV2LCBOVUxMKTsKIAlpZiAoSVNfRVJSKHBwLT5jbGspKSB7Ci0tIAoyLjEuMAoK CkZyb20gYjVlYWU0MTBlYzg0NTk3OGQxY2ZmYWI2ZWFlMjdkN2FiMjhjOWZjZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5pZWxAaW9nZWFyYm94Lm5l dD4KRGF0ZTogRnJpLCA3IEF1ZyAyMDE1IDAwOjI2OjQxICswMjAwClN1YmplY3Q6IFtQQVRDSCAy OC8yOF0gbmV0bGluazogbWFrZSBzdXJlIC1FQlVTWSB3b24ndCBlc2NhcGUgZnJvbQogbmV0bGlu a19pbnNlcnQKClsgVXBzdHJlYW0gY29tbWl0IDRlN2MxMzMwNjg5ZTI3NTU2ZGU0MDdkM2ZkYWRj NjVmZmZmNWViMTIgXQoKTGludXMgcmVwb3J0cyB0aGUgZm9sbG93aW5nIGRlYWRsb2NrIG9uIHJ0 bmxfbXV0ZXg7IHRyaWdnZXJlZCBvbmx5Cm9uY2Ugc28gZmFyIChleHRyYWN0KToKClsxMjIzNi42 OTQyMDldIE5ldHdvcmtNYW5hZ2VyICBEIDAwMDAwMDAwMDAwMTNiODAgICAgIDAgIDEwNDcgICAg ICAxIDB4MDAwMDAwMDAKWzEyMjM2LjY5NDIxOF0gIGZmZmY4ODAwM2Y5MDI2NDAgMDAwMDAwMDAw MDAwMDAwMCBmZmZmZmZmZjgxNWQxNWE5IDAwMDAwMDAwMDAwMDAwMTgKWzEyMjM2LjY5NDIyNF0g IGZmZmY4ODAxMTk1MzgwMDAgZmZmZjg4MDAzZjkwMjY0MCBmZmZmZmZmZjgxYThmZjg0IDAwMDAw MDAwZmZmZmZmZmYKWzEyMjM2LjY5NDIzMF0gIGZmZmZmZmZmODFhOGZmODggZmZmZjg4MDExOWM0 N2YwMCBmZmZmZmZmZjgxNWQxMzNhIGZmZmZmZmZmODFhOGZmODAKWzEyMjM2LjY5NDIzNV0gQ2Fs bCBUcmFjZToKWzEyMjM2LjY5NDI1MF0gIFs8ZmZmZmZmZmY4MTVkMTVhOT5dID8gc2NoZWR1bGVf cHJlZW1wdF9kaXNhYmxlZCsweDkvMHgxMApbMTIyMzYuNjk0MjU3XSAgWzxmZmZmZmZmZjgxNWQx MzNhPl0gPyBzY2hlZHVsZSsweDJhLzB4NzAKWzEyMjM2LjY5NDI2M10gIFs8ZmZmZmZmZmY4MTVk MTVhOT5dID8gc2NoZWR1bGVfcHJlZW1wdF9kaXNhYmxlZCsweDkvMHgxMApbMTIyMzYuNjk0Mjcx XSAgWzxmZmZmZmZmZjgxNWQyYzNmPl0gPyBfX211dGV4X2xvY2tfc2xvd3BhdGgrMHg3Zi8weGYw ClsxMjIzNi42OTQyODBdICBbPGZmZmZmZmZmODE1ZDJjYzY+XSA/IG11dGV4X2xvY2srMHgxNi8w eDMwClsxMjIzNi42OTQyOTFdICBbPGZmZmZmZmZmODE0ZjFmOTA+XSA/IHJ0bmV0bGlua19yY3Yr MHgxMC8weDMwClsxMjIzNi42OTQyOTldICBbPGZmZmZmZmZmODE1MGNlM2I+XSA/IG5ldGxpbmtf dW5pY2FzdCsweGZiLzB4MTgwClsxMjIzNi42OTQzMDldICBbPGZmZmZmZmZmODE0ZjVhZDM+XSA/ IHJ0bmxfZ2V0bGluaysweDExMy8weDE5MApbMTIyMzYuNjk0MzE5XSAgWzxmZmZmZmZmZjgxNGYy MDJhPl0gPyBydG5ldGxpbmtfcmN2X21zZysweDdhLzB4MjEwClsxMjIzNi42OTQzMzFdICBbPGZm ZmZmZmZmODEyNDU2NWM+XSA/IHNvY2tfaGFzX3Blcm0rMHg1Yy8weDcwClsxMjIzNi42OTQzMzld ICBbPGZmZmZmZmZmODE0ZjFmYjA+XSA/IHJ0bmV0bGlua19yY3YrMHgzMC8weDMwClsxMjIzNi42 OTQzNDZdICBbPGZmZmZmZmZmODE1MGQ2MmM+XSA/IG5ldGxpbmtfcmN2X3NrYisweDljLzB4YzAK WzEyMjM2LjY5NDM1NF0gIFs8ZmZmZmZmZmY4MTRmMWY5Zj5dID8gcnRuZXRsaW5rX3JjdisweDFm LzB4MzAKWzEyMjM2LjY5NDM2MF0gIFs8ZmZmZmZmZmY4MTUwY2UzYj5dID8gbmV0bGlua191bmlj YXN0KzB4ZmIvMHgxODAKWzEyMjM2LjY5NDM2N10gIFs8ZmZmZmZmZmY4MTUwZDM0ND5dID8gbmV0 bGlua19zZW5kbXNnKzB4NDg0LzB4NWQwClsxMjIzNi42OTQzNzZdICBbPGZmZmZmZmZmODEwYTIz NmY+XSA/IF9fd2FrZV91cCsweDJmLzB4NTAKWzEyMjM2LjY5NDM4N10gIFs8ZmZmZmZmZmY4MTRj YWQyMz5dID8gc29ja19zZW5kbXNnKzB4MzMvMHg0MApbMTIyMzYuNjk0Mzk2XSAgWzxmZmZmZmZm ZjgxNGNiMDVlPl0gPyBfX19zeXNfc2VuZG1zZysweDIyZS8weDI0MApbMTIyMzYuNjk0NDA1XSAg WzxmZmZmZmZmZjgxNGNhYjc1Pl0gPyBfX19zeXNfcmVjdm1zZysweDEzNS8weDFhMApbMTIyMzYu Njk0NDE1XSAgWzxmZmZmZmZmZjgxMWE5ZDEyPl0gPyBldmVudGZkX3dyaXRlKzB4ODIvMHgyMTAK WzEyMjM2LjY5NDQyM10gIFs8ZmZmZmZmZmY4MTFhMGY5ZT5dID8gZnNub3RpZnkrMHgzMmUvMHg0 YzAKWzEyMjM2LjY5NDQyOV0gIFs8ZmZmZmZmZmY4MTA4Y2I3MD5dID8gd2FrZV91cF9xKzB4NjAv MHg2MApbMTIyMzYuNjk0NDM0XSAgWzxmZmZmZmZmZjgxNGNiYTA5Pl0gPyBfX3N5c19zZW5kbXNn KzB4MzkvMHg3MApbMTIyMzYuNjk0NDQwXSAgWzxmZmZmZmZmZjgxNWQ0Nzk3Pl0gPyBlbnRyeV9T WVNDQUxMXzY0X2Zhc3RwYXRoKzB4MTIvMHg2YQoKSXQgc2VlbXMgc28gZmFyIHBsYXVzaWJsZSB0 aGF0IHRoZSByZWN1cnNpdmUgY2FsbCBpbnRvIHJ0bmV0bGlua19yY3YoKQpsb29rcyBzdXNwaWNp b3VzLiBPbmUgd2F5LCB3aGVyZSB0aGlzIGNvdWxkIHRyaWdnZXIgaXMgdGhhdCB0aGUgc2VuZGVy cwpORVRMSU5LX0NCKHNrYikucG9ydGlkIHdhcyB3cm9uZ2x5IDAgKHdoaWNoIGlzIHJ0bmV0bGlu ayBzb2NrZXQpLCBzbwp0aGUgcnRubF9nZXRsaW5rKCkgcmVxdWVzdCdzIGFuc3dlciB3b3VsZCBi ZSBzZW50IHRvIHRoZSBrZXJuZWwgaW5zdGVhZAp0byB0aGUgYWN0dWFsIHVzZXIgcHJvY2Vzcywg dGh1cyBncmFiYmluZyBydG5sX211dGV4KCkgdHdpY2UuCgpPbmUgdGhlb3J5IHdvdWxkIGJlIHRo YXQgbmV0bGlua19hdXRvYmluZCgpIHRyaWdnZXJlZCB2aWEgbmV0bGlua19zZW5kbXNnKCkKaW50 ZXJuYWxseSBvdmVyd3JpdGVzIHRoZSAtRUJVU1kgZXJyb3IgdG8gMCwgYnV0IHdoZXJlIGl0IGlz IHdyb25nbHkKb3JpZ2luYXRpbmcgZnJvbSBfX25ldGxpbmtfaW5zZXJ0KCkgaW5zdGVhZC4gVGhh dCB3b3VsZCByZXNldCB0aGUKc29ja2V0J3MgcG9ydGlkIHRvIDAsIHdoaWNoIGlzIHRoZW4gZmls bGVkIGludG8gTkVUTElOS19DQihza2IpLnBvcnRpZApsYXRlciBvbi4gQXMgY29tbWl0IGQ0NzBl M2I0ODNkYyAoIltORVRMSU5LXTogRml4IHR3byBzb2NrZXQgaGFzaGluZyBidWdzLiIpCmFsc28g cHV0cyBpdCwgLUVCVVNZIHNob3VsZCBub3QgYmUgcHJvcGFnYXRlZCBmcm9tIG5ldGxpbmtfaW5z ZXJ0KCkuCgpJdCBsb29rcyBsaWtlIGl0J3MgdmVyeSB1bmxpa2VseSB0byByZXByb2R1Y2UuIFdl IG5lZWQgdG8gdHJpZ2dlciB0aGUKcmhhc2h0YWJsZV9pbnNlcnRfcmVoYXNoKCkgaGFuZGxlciB1 bmRlciBhIHNpdHVhdGlvbiB3aGVyZSByZWhhc2hpbmcKY3VycmVudGx5IG9jY3VycyAob25lIC9y YXJlLyB3YXkgd291bGQgYmUgdG8gaGl0IGh0LT5lbGFzdGljaXR5IGxpbWl0cwp3aGlsZSBub3Qg ZmlsbGVkIGVub3VnaCB0byBleHBhbmQgdGhlIGhhc2h0YWJsZSwgYnV0IHRoYXQgd291bGQgcmF0 aGVyCnJlcXVpcmUgYSBzcGVjaWZpY2FsbHkgY3JhZnRlZCBiaW5kKCkgc2VxdWVuY2Ugd2l0aCBr bm93bGVkZ2UgYWJvdXQKZGVzdGluYXRpb24gc2xvdHMsIHNlZW1zIHVubGlrZWx5KS4gSXQgcHJv YmFibHkgbWFrZXMgc2Vuc2UgdG8gZ3VhcmQKX19uZXRsaW5rX2luc2VydCgpIGluIGFueSBjYXNl IGFuZCByZW1hcCB0aGF0IGVycm9yLiBJdCB3YXMgc3VnZ2VzdGVkCnRoYXQgRU9WRVJGTE9XIG1p Z2h0IGJlIGJldHRlciB0aGFuIGFuIGFscmVhZHkgb3ZlcmxvYWRlZCBFTk9NRU0uCgpSZWZlcmVu Y2U6IGh0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzcyNjc2ClJl cG9ydGVkLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ ClNpZ25lZC1vZmYtYnk6IERhbmllbCBCb3JrbWFubiA8ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkFj a2VkLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkFja2VkLWJ5 OiBUaG9tYXMgR3JhZiA8dGdyYWZAc3V1Zy5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyB8 IDUgKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9u ZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXgg N2Q4MjRhYy4uYzg3YmNmOSAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCisr KyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwpAQCAtMTA5NSw2ICsxMDk1LDExIEBAIHN0YXRp YyBpbnQgbmV0bGlua19pbnNlcnQoc3RydWN0IHNvY2sgKnNrLCB1MzIgcG9ydGlkKQogCiAJZXJy ID0gX19uZXRsaW5rX2luc2VydCh0YWJsZSwgc2spOwogCWlmIChlcnIpIHsKKwkJLyogSW4gY2Fz ZSB0aGUgaGFzaHRhYmxlIGJhY2tlbmQgcmV0dXJucyB3aXRoIC1FQlVTWQorCQkgKiBmcm9tIGhl cmUsIGl0IG11c3Qgbm90IGVzY2FwZSB0byB0aGUgY2FsbGVyLgorCQkgKi8KKwkJaWYgKHVubGlr ZWx5KGVyciA9PSAtRUJVU1kpKQorCQkJZXJyID0gLUVPVkVSRkxPVzsKIAkJaWYgKGVyciA9PSAt RUVYSVNUKQogCQkJZXJyID0gLUVBRERSSU5VU0U7CiAJCXNvY2tfcHV0KHNrKTsKLS0gCjIuMS4w Cgo= ----Next_Part(Mon_Sep_28_21_54_08_2015_173)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_42.mbox" RnJvbSA0MmYyNTdkNWQzZGZiMjhhZWIzYmRhZjFiODg1ZDQyOGE5YWI3Mjg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFNhbHRlciA8bXNhbHRlckByZWRoYXQuY29tPgpEYXRl OiBUdWUsIDEgU2VwIDIwMTUgMDk6MzY6MDUgLTA0MDAKU3ViamVjdDogW1BBVENIIDAxLzMwXSBw aHlsaWI6IGZpeCBkZXZpY2UgZGVsZXRpb24gb3JkZXIgaW4KIG1kaW9idXNfdW5yZWdpc3Rlcigp CgpbIFVwc3RyZWFtIGNvbW1pdCBiNmM2YWVkY2JjYmFjZDdiMGNiNGI2NGVkNWFjODM1YmMxYzYw YTAzIF0KCmNvbW1pdCA4YjYzZWMxODM3ZmEgKCJwaHlsaWI6IE1ha2UgUEhZcyBjaGlsZHJlbiBv ZiB0aGVpciBNRElPIGJ1cywgbm90CnRoZSBidXMnIHBhcmVudC4iKSB1bmNvdmVyZWQgYSBwcm9i bGVtIGluIG1kaW9idXNfdW5yZWdpc3RlcigpIHdoaWNoCmxlYWRzIHRvIHRoaXMgd2FybmluZyB3 aGVuIEkgcmVib290IGFuIEFQTSBNdXN0YW5nIChhcm02NCkgcGxhdGZvcm06CgogIFdBUk5JTkc6 IENQVTogNyBQSUQ6IDQyMzkgYXQgZnMvc3lzZnMvZ3JvdXAuYzoyMjQgc3lzZnNfcmVtb3ZlX2dy b3VwKzB4YTAvMHhhNCgpCiAgc3lzZnMgZ3JvdXAgZmZmZmZlMDAwMGUwN2ExMCBub3QgZm91bmQg Zm9yIGtvYmplY3QgJ3hnZW5lLW1paS1ldGgwOjAzJwogIC4uLgogIENQVTogNyBQSUQ6IDQyMzkg Q29tbTogcmVib290IFRhaW50ZWQ6IEcgICAgICAgICAgICBFICAgNC4yLjAtMC4xOC5lbDcudGVz dDE1LmFhcmNoNjQgIzEKICBIYXJkd2FyZSBuYW1lOiBBcHBsaWVkTWljcm8gTXVzdGFuZy9NdXN0 YW5nLCBCSU9TIDEuMS4wIEF1ZyAyNiAyMDE1CiAgQ2FsbCBUcmFjZToKICBbPGZmZmZmZTAwMDAw OTczOWM+XSBkdW1wX2JhY2t0cmFjZSsweDAvMHgxNzAKICBbPGZmZmZmZTAwMDAwOTc1MmM+XSBz aG93X3N0YWNrKzB4MjAvMHgyYwogIFs8ZmZmZmZlMDAwMDc0MzZmMD5dIGR1bXBfc3RhY2srMHg3 OC8weDljCiAgWzxmZmZmZmUwMDAwMGMyY2I0Pl0gd2Fybl9zbG93cGF0aF9jb21tb24rMHhhMC8w eGQ4CiAgWzxmZmZmZmUwMDAwMGMyZDYwPl0gd2Fybl9zbG93cGF0aF9mbXQrMHg3NC8weDg4CiAg WzxmZmZmZmUwMDAwMjkzZDNjPl0gc3lzZnNfcmVtb3ZlX2dyb3VwKzB4OWMvMHhhNAogIFs8ZmZm ZmZlMDAwMDRhOGJhYz5dIGRwbV9zeXNmc19yZW1vdmUrMHg1Yy8weDcwCiAgWzxmZmZmZmUwMDAw NDliMzg4Pl0gZGV2aWNlX2RlbCsweDQ0LzB4MjA4CiAgWzxmZmZmZmUwMDAwNDliNTc4Pl0gZGV2 aWNlX3VucmVnaXN0ZXIrMHgyYy8weDdjCiAgWzxmZmZmZmUwMDAwNTBkYzY4Pl0gbWRpb2J1c191 bnJlZ2lzdGVyKzB4NDgvMHg5NAogIFs8ZmZmZmZlMDAwMDUyYWZkMD5dIHhnZW5lX2VuZXRfbWRp b19yZW1vdmUrMHgyOC8weDQ0CiAgWzxmZmZmZmUwMDAwNTJkM2YwPl0geGdlbmVfZW5ldF9yZW1v dmUrMHhkMC8weGQ4CiAgWzxmZmZmZmUwMDAwNTJkNDI0Pl0geGdlbmVfZW5ldF9zaHV0ZG93bisw eDJjLzB4M2MKICBbPGZmZmZmZTAwMDA0YTIwNGM+XSBwbGF0Zm9ybV9kcnZfc2h1dGRvd24rMHgy NC8weDQwCiAgWzxmZmZmZmUwMDAwNDlkNGY0Pl0gZGV2aWNlX3NodXRkb3duKzB4ZjAvMHgxYjQK ICBbPGZmZmZmZTAwMDAwZTMxZWM+XSBrZXJuZWxfcmVzdGFydF9wcmVwYXJlKzB4NDAvMHg0Ywog IFs8ZmZmZmZlMDAwMDBlMzJmOD5dIGtlcm5lbF9yZXN0YXJ0KzB4MWMvMHg4MAogIFs8ZmZmZmZl MDAwMDBlMzY3MD5dIFN5U19yZWJvb3QrMHgxN2MvMHgyNTAKClRoZSBwcm9ibGVtIGlzIHRoYXQg bWRpb2J1c191bnJlZ2lzdGVyKCkgZGVsZXRlcyB0aGUgYnVzIGRldmljZSBiZWZvcmUKdW5yZWdp c3RlcmluZyB0aGUgcGh5IGRldmljZXMgb24gdGhlIGJ1cy4gVGhpcyB3YXNuJ3QgYSBwcm9ibGVt IGJlZm9yZQpiZWNhdXNlIHRoZSBwaHlzIHdlcmUgbm90IGNoaWxkcmVuIG9mIHRoZSBidXM6Cgog IC9zeXMvZGV2aWNlcy9wbGF0Zm9ybS9BUE1DMEQwNTowMC9uZXQvZXRoMC94Z2VuZS1taWktZXRo MDowMwogIC9zeXMvZGV2aWNlcy9wbGF0Zm9ybS9BUE1DMEQwNTowMC9uZXQvZXRoMC94Z2VuZS1t aWktZXRoMAoKQnV0IG5vdyB0aGF0IHRoZXkgYXJlOgoKICAvc3lzL2RldmljZXMvcGxhdGZvcm0v QVBNQzBEMDU6MDAvbmV0L2V0aDAveGdlbmUtbWlpLWV0aDAveGdlbmUtbWlpLWV0aDA6MDMKCndo ZW4gbWRpb2J1c191bnJlZ2lzdGVyIGRlbGV0ZXMgdGhlIGJ1cyBkZXZpY2UsIHRoZSBwaHkgc3Vi ZGlycyBhcmUKcmVtb3ZlZCBmcm9tIHN5c2ZzIGFsc28uIFNvIHdoZW4gdGhlIHBoeXMgYXJlIHVu cmVnaXN0ZXJlZCBhZnRlcndhcmQsCndlIGdldCB0aGUgd2FybmluZy4gVGhpcyBwYXRjaCBjaGFu Z2VzIHRoZSBvcmRlciBzbyB0aGF0IHBoeXMgYXJlCnVucmVnaXN0ZXJlZCBiZWZvcmUgdGhlIGJ1 cyBkZXZpY2UgaXMgZGVsZXRlZC4KCkZpeGVzOiA4YjYzZWMxODM3ZmEgKCJwaHlsaWI6IE1ha2Ug UEhZcyBjaGlsZHJlbiBvZiB0aGVpciBNRElPIGJ1cywgbm90IHRoZSBidXMnIHBhcmVudC4iKQpT aWduZWQtb2ZmLWJ5OiBNYXJrIFNhbHRlciA8bXNhbHRlckByZWRoYXQuY29tPgpSZXZpZXdlZC1i eTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+ClRlc3RlZC1ieTogTWFy ayBMYW5nc2RvcmYgPG1sYW5nc2RvQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvbWRpb19i dXMuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jIGIvZHJpdmVycy9uZXQv cGh5L21kaW9fYnVzLmMKaW5kZXggNDZhMTRjYi4uMDJhNDYxNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvcGh5L21kaW9fYnVzLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21kaW9fYnVzLmMKQEAg LTMwMywxMiArMzAzLDEyIEBAIHZvaWQgbWRpb2J1c191bnJlZ2lzdGVyKHN0cnVjdCBtaWlfYnVz ICpidXMpCiAJQlVHX09OKGJ1cy0+c3RhdGUgIT0gTURJT0JVU19SRUdJU1RFUkVEKTsKIAlidXMt PnN0YXRlID0gTURJT0JVU19VTlJFR0lTVEVSRUQ7CiAKLQlkZXZpY2VfZGVsKCZidXMtPmRldik7 CiAJZm9yIChpID0gMDsgaSA8IFBIWV9NQVhfQUREUjsgaSsrKSB7CiAJCWlmIChidXMtPnBoeV9t YXBbaV0pCiAJCQlkZXZpY2VfdW5yZWdpc3RlcigmYnVzLT5waHlfbWFwW2ldLT5kZXYpOwogCQli dXMtPnBoeV9tYXBbaV0gPSBOVUxMOwogCX0KKwlkZXZpY2VfZGVsKCZidXMtPmRldik7CiB9CiBF WFBPUlRfU1lNQk9MKG1kaW9idXNfdW5yZWdpc3Rlcik7CiAKLS0gCjIuMS4wCgoKRnJvbSAxMmZh Nzc3YjA2Mjk5NTFkNzlkMzZjM2Y1ODk5YTM1ZWI5MWY4MjhiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpEYXRlOiBX ZWQsIDIgU2VwIDIwMTUgMTQ6MDA6MzYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyLzMwXSBzb2Nr LCBkaWFnOiBmaXggcGFuaWMgaW4gc29ja19kaWFnX3B1dF9maWx0ZXJpbmZvCgpbIFVwc3RyZWFt IGNvbW1pdCBiMzgyYzA4NjU2MDAwYzEyYTE0NjcyM2ExNTNiODViMTNhODU1YjQ5IF0KCmRpYWcg c29ja2V0J3Mgc29ja19kaWFnX3B1dF9maWx0ZXJpbmZvKCkgZHVtcHMgY2xhc3NpYyBCUEYgcHJv Z3JhbXMKdXBvbiByZXF1ZXN0IHRvIHVzZXIgc3BhY2UgKHNzIC0wIC1iKS4gSG93ZXZlciwgbmF0 aXZlIGVCUEYgcHJvZ3JhbXMKYXR0YWNoZWQgdG8gc29ja2V0cyAoU09fQVRUQUNIX0JQRikgY2Fu bm90IGJlIGR1bXBlZCB3aXRoIHRoaXMgbWV0aG9kOgoKVGhlaXIgb3JpZ19wcm9nIGlzIGFsd2F5 cyBOVUxMLiBIb3dldmVyLCBzb2NrX2RpYWdfcHV0X2ZpbHRlcmluZm8oKQp1bmNvbmRpdGlvbmFs bHkgdHJpZXMgdG8gYWNjZXNzIGl0cyBmaWx0ZXIgbGVuZ3RoIHJlc3AuIHdhbnRzIHRvIGNvcHkK dGhlIGZpbHRlciBpbnNucyBmcm9tIHRoZXJlLiBJbnRlcm5hbCBjQlBGIHRvIGVCUEYgdHJhbnNm b3JtYXRpb25zCmF0dGFjaGVkIHRvIHNvY2tldHMgZG9uJ3QgaGF2ZSB0aGlzIGlzc3VlLCBhcyBv cmlnX3Byb2cgc3RhdGUgaXMga2VwdC4KCkl0J3MgY3VycmVudGx5IG9ubHkgdXNlZCBieSBwYWNr ZXQgc29ja2V0cy4gSWYgd2Ugd291bGQgd2FudCB0byBhZGQKbmF0aXZlIGVCUEYgc3VwcG9ydCBp biB0aGUgZnV0dXJlLCB0aGlzIG5lZWRzIHRvIGJlIGRvbmUgdGhyb3VnaAphIGRpZmZlcmVudCBh dHRyaWJ1dGUgdGhhbiBQQUNLRVRfRElBR19GSUxURVIgdG8gbm90IGNvbmZ1c2UgcG9zc2libGUK dXNlciBzcGFjZSBkaXNhc3NlbWJsZXJzIHRoYXQgd29yayBvbiBkaWFnIGRhdGEuCgpGaXhlczog ODlhYTA3NTgzMmIwICgibmV0OiBzb2NrOiBhbGxvdyBlQlBGIHByb2dyYW1zIHRvIGJlIGF0dGFj aGVkIHRvIHNvY2tldHMiKQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBp b2dlYXJib3gubmV0PgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxA NndpbmQuY29tPgpBY2tlZC1ieTogQWxleGVpIFN0YXJvdm9pdG92IDxhc3RAcGx1bWdyaWQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvc29ja19kaWFnLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2tfZGlhZy5jIGIvbmV0L2NvcmUvc29j a19kaWFnLmMKaW5kZXggZDc5ODY2Yy4uODE3NjIyZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29j a19kaWFnLmMKKysrIGIvbmV0L2NvcmUvc29ja19kaWFnLmMKQEAgLTkwLDYgKzkwLDkgQEAgaW50 IHNvY2tfZGlhZ19wdXRfZmlsdGVyaW5mbyhib29sIG1heV9yZXBvcnRfZmlsdGVyaW5mbywgc3Ry dWN0IHNvY2sgKnNrLAogCQlnb3RvIG91dDsKIAogCWZwcm9nID0gZmlsdGVyLT5wcm9nLT5vcmln X3Byb2c7CisJaWYgKCFmcHJvZykKKwkJZ290byBvdXQ7CisKIAlmbGVuID0gYnBmX2NsYXNzaWNf cHJvZ2xlbihmcHJvZyk7CiAKIAlhdHRyID0gbmxhX3Jlc2VydmUoc2tiLCBhdHRydHlwZSwgZmxl bik7Ci0tIAoyLjEuMAoKCkZyb20gNmY4ZjkxMzUwMDU5MDBjZDAwMzY1MjczZGY2NmRhMTIxMzBm YTBiYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEJvcmttYW5uIDxkYW5p ZWxAaW9nZWFyYm94Lm5ldD4KRGF0ZTogVGh1LCAzIFNlcCAyMDE1IDAwOjI5OjA3ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwMy8zMF0gaXB2NjogZml4IGV4dGhkcnMgb2ZmbG9hZCByZWdpc3RyYXRp b24gaW4gb3V0X3J0IHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGU0MWIwYmVkYmEwMjkzYjllMWU4 ZDFlOGVkNTUzMTA0Yjk2OTM2NTYgXQoKV2UgcHJldmlvdXNseSByZWdpc3RlciBJUFBST1RPX1JP VVRJTkcgb2ZmbG9hZCB1bmRlciBpbmV0Nl9hZGRfb2ZmbG9hZCgpLApidXQgaW4gZXJyb3IgcGF0 aCwgd2UgdHJ5IHRvIHVucmVnaXN0ZXIgaXQgd2l0aCBpbmV0X2RlbF9vZmZsb2FkKCkuIFRoaXMK ZG9lc24ndCBzZWVtIGNvcnJlY3QsIGl0IHNob3VsZCBhY3R1YWxseSBiZSBpbmV0Nl9kZWxfb2Zm bG9hZCgpLCBhbHNvCmlwdjZfZXh0aGRyc19vZmZsb2FkX2V4aXQoKSBmcm9tIHRoYXQgY29tbWl0 IHNlZW1zIHJhdGhlciBpbmNvcnJlY3QgKGl0CmFsc28gdXNlcyBydGhkcl9vZmZsb2FkIHR3aWNl KSwgYnV0IGl0IGdvdCByZW1vdmVkIGVudGlyZWx5IGxhdGVyIG9uLgoKRml4ZXM6IDMzMzYyODhh OWZlYSAoImlwdjY6IFN3aXRjaCB0byB1c2luZyBuZXcgb2ZmbG9hZCBpbmZyYXN0cnVjdHVyZS4i KQpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2lwdjYvZXh0aGRyc19vZmZsb2FkLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9leHRoZHJzX29m ZmxvYWQuYyBiL25ldC9pcHY2L2V4dGhkcnNfb2ZmbG9hZC5jCmluZGV4IDQ0N2E3ZmIuLmY1ZTJi YTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2V4dGhkcnNfb2ZmbG9hZC5jCisrKyBiL25ldC9pcHY2 L2V4dGhkcnNfb2ZmbG9hZC5jCkBAIC0zNiw2ICszNiw2IEBAIG91dDoKIAlyZXR1cm4gcmV0Owog CiBvdXRfcnQ6Ci0JaW5ldF9kZWxfb2ZmbG9hZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19ST1VU SU5HKTsKKwlpbmV0Nl9kZWxfb2ZmbG9hZCgmcnRoZHJfb2ZmbG9hZCwgSVBQUk9UT19ST1VUSU5H KTsKIAlnb3RvIG91dDsKIH0KLS0gCjIuMS4wCgoKRnJvbSA4YmQ2OGNhOTNlNjAyYzA2ZDY2ZWVl NWY3Zjg3ZjM2YmNmOGU3NGE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSdXNzZWxs IEtpbmcgPHJtaytrZXJuZWxAYXJtLmxpbnV4Lm9yZy51az4KRGF0ZTogV2VkLCAyIFNlcCAyMDE1 IDE3OjI0OjE0ICswODAwClN1YmplY3Q6IFtQQVRDSCAwNC8zMF0gbmV0OiBmZWM6IGNsZWFyIHJl Y2VpdmUgaW50ZXJydXB0cyBiZWZvcmUgcHJvY2Vzc2luZyBhCiBwYWNrZXQKClsgVXBzdHJlYW0g Y29tbWl0IGVkNjNmMWRjZDU3ODhkMzZmOTQyZmJjY2UzNTA3NDIzODVlM2UxOGMgXQoKVGhlIHBh dGNoIGp1c3QgdG8gcmUtc3VibWl0IHRoZSBwYXRjaCAiZGIzNDIxYzExNGNmYTYzMjYiIGJlY2F1 c2UgdGhlCnBhdGNoICI0ZDQ5NGNkYzkyYjNiOWEwIiByZW1vdmUgdGhlIGNoYW5nZS4KCkNsZWFy IGFueSBwZW5kaW5nIHJlY2VpdmUgaW50ZXJydXB0IGJlZm9yZSB3ZSBwcm9jZXNzIGEgcGVuZGlu ZyBwYWNrZXQuClRoaXMgaGVscHMgdG8gYXZvaWQgYW55IHNwdXJpb3VzIGludGVycnVwdHMgYmVp bmcgcmFpc2VkIGFmdGVyIHdlIGhhdmUKZnVsbHkgY2xlYW5lZCB0aGUgcmVjZWl2ZSByaW5nLCB3 aGlsZSBzdGlsbCBhbGxvd2luZyBhbiBpbnRlcnJ1cHQgdG8gYmUKcmFpc2VkIGlmIHdlIHJlY2Vp dmUgYW5vdGhlciBwYWNrZXQuCgpUaGUgcG9zaXRpb24gb2YgdGhpcyBpcyBjcml0aWNhbDogd2Ug bXVzdCBkbyB0aGlzIHByaW9yIHRvIHJlYWRpbmcgdGhlCm5leHQgcGFja2V0IHN0YXR1cyB0byBh dm9pZCBwb3RlbnRpYWxseSBkcm9wcGluZyBhbiBpbnRlcnJ1cHQgd2hlbiBhCnBhY2tldCBpcyBz dGlsbCBwZW5kaW5nLgoKQWNrZWQtYnk6IEZ1Z2FuZyBEdWFuIDxCMzg2MTFAZnJlZXNjYWxlLmNv bT4KU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcu dWs+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyB8IDEgKwogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZmVjX21haW4uYwppbmRleCBiMzQ5ZTZmLi5kZTYzMjY2ZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKQEAgLTE0MDIsNiArMTQwMiw3IEBAIGZlY19lbmV0 X3J4X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBpbnQgYnVkZ2V0LCB1MTYgcXVldWVf aWQpCiAJCWlmICgoc3RhdHVzICYgQkRfRU5FVF9SWF9MQVNUKSA9PSAwKQogCQkJbmV0ZGV2X2Vy cihuZGV2LCAicmN2IGlzIG5vdCArbGFzdFxuIik7CiAKKwkJd3JpdGVsKEZFQ19FTkVUX1JYRiwg ZmVwLT5od3AgKyBGRUNfSUVWRU5UKTsKIAogCQkvKiBDaGVjayBmb3IgZXJyb3JzLiAqLwogCQlp ZiAoc3RhdHVzICYgKEJEX0VORVRfUlhfTEcgfCBCRF9FTkVUX1JYX1NIIHwgQkRfRU5FVF9SWF9O TyB8Ci0tIAoyLjEuMAoKCkZyb20gZjhiMjk0ZTZjOTE2NjMyMDM2ZjA2ZWMyN2Y1ZjhmNTBmZmQw MjVhYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXRzdXNoaSBOZW1vdG8gPG5lbW90 b0B0b3NoaWJhLXRvcHMuY28uanA+CkRhdGU6IFdlZCwgMiBTZXAgMjAxNSAxNzo0OToyOSArMDkw MApTdWJqZWN0OiBbUEFUQ0ggMDUvMzBdIG5ldDogZXRoOiBhbHRlcmE6IGZpeCBuYXBpIHBvbGxf bGlzdCBjb3JydXB0aW9uCgpbIFVwc3RyZWFtIGNvbW1pdCA0NTQ4YTY5N2U0OTY5ZDY5NTA0N2Nl YmQ2ZDlhZjVlMmY2Y2M3MjhlIF0KCnRzZV9wb2xsKCkgY2FsbHMgX19uYXBpX2NvbXBsZXRlKCkg d2l0aCBpcnEgZW5hYmxlZC4gIFRoaXMgbGVhZHMgbmFwaQpwb2xsX2xpc3QgY29ycnVwdGlvbiBh bmQgbWF5IHN0b3AgYWxsIG5hcGkgZHJpdmVycyB3b3JraW5nLgpVc2UgbmFwaV9jb21wbGV0ZSgp IGluc3RlYWQgb2YgX19uYXBpX2NvbXBsZXRlKCkuCgpTaWduZWQtb2ZmLWJ5OiBBdHN1c2hpIE5l bW90byA8bmVtb3RvQHRvc2hpYmEtdG9wcy5jby5qcD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Fs dGVyYS9hbHRlcmFfdHNlX21haW4uYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv YWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2Fs dGVyYV90c2VfbWFpbi5jCmluZGV4IGRhNDhlNjYuLjgyMDc4NzcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmMKQEAgLTUxMSw4ICs1MTEsNyBAQCBz dGF0aWMgaW50IHRzZV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkK IAogCWlmIChyeGNvbXBsZXRlIDwgYnVkZ2V0KSB7CiAKLQkJbmFwaV9ncm9fZmx1c2gobmFwaSwg ZmFsc2UpOwotCQlfX25hcGlfY29tcGxldGUobmFwaSk7CisJCW5hcGlfY29tcGxldGUobmFwaSk7 CiAKIAkJbmV0ZGV2X2RiZyhwcml2LT5kZXYsCiAJCQkgICAiTkFQSSBDb21wbGV0ZSwgZGlkICVk IHBhY2tldHMgd2l0aCBidWRnZXQgJWRcbiIsCi0tIAoyLjEuMAoKCkZyb20gMjllNDNkMWMxZWU5 ZWQwMjkyZTJiZjIzNWZiNjE1MDk4NGFjYzQxMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogUmljaGFyZCBMYWluZyA8cmljaGFyZC5sYWluZ0BhbGxpZWR0ZWxlc2lzLmNvLm56PgpEYXRl OiBUaHUsIDMgU2VwIDIwMTUgMTM6NTI6MzEgKzEyMDAKU3ViamVjdDogW1BBVENIIDA2LzMwXSBu ZXQvaXB2NjogQ29ycmVjdCBQSU02IG1ydF9sb2NrIGhhbmRsaW5nCgpbIFVwc3RyZWFtIGNvbW1p dCAyNWI0YTQ0YzE5YzgzZDk4ZThjMDgwN2E3ZWRlMDdjMWYyOGVhYjhiIF0KCkluIHRoZSBJUHY2 IG11bHRpY2FzdCByb3V0aW5nIGNvZGUgdGhlIG1ydF9sb2NrIHdhcyBub3QgYmVpbmcgcmVsZWFz ZWQKY29ycmVjdGx5IGluIHRoZSBNRkMgaXRlcmF0b3IsIGFzIGEgcmVzdWx0IGFkZGluZyBvciBk ZWxldGluZyBhIE1JRiB3b3VsZApjYXVzZSBhIGhhbmcgYmVjYXVzZSB0aGUgbXJ0X2xvY2sgY291 bGQgbm90IGJlIGFjcXVpcmVkLgoKVGhpcyBmaXggaXMgYSBjb3B5IG9mIHRoZSBjb2RlIGZvciB0 aGUgSVB2NCBjYXNlIGFuZCBlbnN1cmVzIHRoYXQgdGhlIGxvY2sKaXMgcmVsZWFzZWQgY29ycmVj dGx5LgoKU2lnbmVkLW9mZi1ieTogUmljaGFyZCBMYWluZyA8cmljaGFyZC5sYWluZ0BhbGxpZWR0 ZWxlc2lzLmNvLm56PgpBY2tlZC1ieTogQ29uZyBXYW5nIDxjd2FuZ0B0d29wZW5zb3VyY2UuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvaXA2bXIuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNm1yLmMgYi9uZXQvaXB2 Ni9pcDZtci5jCmluZGV4IDc0Y2ViNzMuLjVmMzYyNjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lw Nm1yLmMKKysrIGIvbmV0L2lwdjYvaXA2bXIuYwpAQCAtNTUwLDcgKzU1MCw3IEBAIHN0YXRpYyB2 b2lkIGlwbXJfbWZjX3NlcV9zdG9wKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KQogCiAJ aWYgKGl0LT5jYWNoZSA9PSAmbXJ0LT5tZmM2X3VucmVzX3F1ZXVlKQogCQlzcGluX3VubG9ja19i aCgmbWZjX3VucmVzX2xvY2spOwotCWVsc2UgaWYgKGl0LT5jYWNoZSA9PSBtcnQtPm1mYzZfY2Fj aGVfYXJyYXkpCisJZWxzZSBpZiAoaXQtPmNhY2hlID09ICZtcnQtPm1mYzZfY2FjaGVfYXJyYXlb aXQtPmN0XSkKIAkJcmVhZF91bmxvY2soJm1ydF9sb2NrKTsKIH0KIAotLSAKMi4xLjAKCgpGcm9t IDhlZjk1NzE1Njc3MWU4MWIzN2QyNWE4MjI3YTI1MzQ0MTRmMjhiNWIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpE YXRlOiBTYXQsIDUgU2VwIDIwMTUgMTM6MDc6MjcgLTA3MDAKU3ViamVjdDogW1BBVENIIDA3LzMw XSBuZXQ6IGRzYTogYmNtX3NmMjogRml4IGFnZWluZyBjb25kaXRpb25zIGFuZCBvcGVyYXRpb24K ClsgVXBzdHJlYW0gY29tbWl0IDM5Nzk3YTI3OWQ2Mjk3MmNkOTE0ZWY1ODBmZGZhY2IxM2U1MDhi ZjggXQoKVGhlIGNvbXBhcmlzb24gY2hlY2sgYmV0d2VlbiBjdXJfaHdfc3RhdGUgYW5kIGh3X3N0 YXRlIGlzIGN1cnJlbnRseQppbnZhbGlkIGJlY2F1c2UgY3VyX2h3X3N0YXRlIGlzIHJpZ2h0IHNo aWZ0ZWQgYnkgR19NSVNUUF9TSElGVCwgd2hpbGUKaHdfc3RhdGUgaXMgbm90LCBzbyB3ZSBlbmQt dXAgY29tcGFyaW5nIGJpdHMgMjowIHdpdGggYml0cyA3OjUsIHdoaWNoIGlzCmdvaW5nIHRvIGNh dXNlIGFuIGFkZGl0aW9uYWwgYWdpbmcgdG8gb2NjdXIuIEZpeCB0aGlzIGJ5IG5vdCBzaGlmdGlu ZwpjdXJfaHdfc3RhdGUgd2hpbGUgcmVhZGluZyBpdCwgYnV0IGluc3RlYWQsIG1hc2sgdGhlIHZh bHVlIHdpdGggdGhlCmFwcHJvcHJpYXRlbHkgc2hpdGZ0ZWQgYml0bWFzay4KClRoZSBvdGhlciBw cm9ibGVtIHdpdGggdGhlIGZhc3QtYWdlaW5nIHByb2Nlc3MgaXMgdGhhdCB3ZSBkaWQgbm90IHNl dAp0aGUgRU5fQUdFX0RZTkFNSUMgYml0IHRvIHJlcXVlc3QgdGhlIGFnZWluZyB0byBvY2N1ciBm b3IgZHluYW1pY2FsbHkKbGVhcm5lZCBNQUMgYWRkcmVzc2VzLiBGaW5hbGx5LCB3cml0ZSBiYWNr IDAgdG8gdGhlIEZBU1RfQUdFX0NUUkwKcmVnaXN0ZXIgdG8gYXZvaWQgbGVhdmluZyBzcHVyaW91 cyBiaXRzIHNldHMgZnJvbSBvbmUgb3BlcmF0aW9uIHRvIHRoZQpvdGhlci4KCkZpeGVzOiAxMmY0 NjBmMjM0MjMgKCJuZXQ6IGRzYTogYmNtX3NmMjogYWRkIEhXIGJyaWRnaW5nIHN1cHBvcnQiKQpT aWduZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2RzYS9iY21fc2YyLmMgfCAxMiArKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZHNhL2JjbV9zZjIuYyBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmMKaW5kZXggMDc5ODk3 Yi4uNjkxY2FlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYworKysgYi9k cml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCkBAIC00MTgsNyArNDE4LDcgQEAgc3RhdGljIGludCBi Y21fc2YyX3N3X2Zhc3RfYWdlX3BvcnQoc3RydWN0IGRzYV9zd2l0Y2ggICpkcywgaW50IHBvcnQp CiAJY29yZV93cml0ZWwocHJpdiwgcG9ydCwgQ09SRV9GQVNUX0FHRV9QT1JUKTsKIAogCXJlZyA9 IGNvcmVfcmVhZGwocHJpdiwgQ09SRV9GQVNUX0FHRV9DVFJMKTsKLQlyZWcgfD0gRU5fQUdFX1BP UlQgfCBGQVNUX0FHRV9TVFJfRE9ORTsKKwlyZWcgfD0gRU5fQUdFX1BPUlQgfCBFTl9BR0VfRFlO QU1JQyB8IEZBU1RfQUdFX1NUUl9ET05FOwogCWNvcmVfd3JpdGVsKHByaXYsIHJlZywgQ09SRV9G QVNUX0FHRV9DVFJMKTsKIAogCWRvIHsKQEAgLTQzMiw2ICs0MzIsOCBAQCBzdGF0aWMgaW50IGJj bV9zZjJfc3dfZmFzdF9hZ2VfcG9ydChzdHJ1Y3QgZHNhX3N3aXRjaCAgKmRzLCBpbnQgcG9ydCkK IAlpZiAoIXRpbWVvdXQpCiAJCXJldHVybiAtRVRJTUVET1VUOwogCisJY29yZV93cml0ZWwocHJp diwgMCwgQ09SRV9GQVNUX0FHRV9DVFJMKTsKKwogCXJldHVybiAwOwogfQogCkBAIC01MDcsNyAr NTA5LDcgQEAgc3RhdGljIGludCBiY21fc2YyX3N3X2JyX3NldF9zdHBfc3RhdGUoc3RydWN0IGRz YV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAl1MzIgcmVnOwogCiAJcmVnID0gY29yZV9yZWFkbChw cml2LCBDT1JFX0dfUENUTF9QT1JUKHBvcnQpKTsKLQljdXJfaHdfc3RhdGUgPSByZWcgPj4gR19N SVNUUF9TVEFURV9TSElGVDsKKwljdXJfaHdfc3RhdGUgPSByZWcgJiAoR19NSVNUUF9TVEFURV9N QVNLIDw8IEdfTUlTVFBfU1RBVEVfU0hJRlQpOwogCiAJc3dpdGNoIChzdGF0ZSkgewogCWNhc2Ug QlJfU1RBVEVfRElTQUJMRUQ6CkBAIC01MzEsMTAgKzUzMywxMiBAQCBzdGF0aWMgaW50IGJjbV9z ZjJfc3dfYnJfc2V0X3N0cF9zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAog CX0KIAogCS8qIEZhc3QtYWdlIEFSTCBlbnRyaWVzIGlmIHdlIGFyZSBtb3ZpbmcgYSBwb3J0IGZy b20gTGVhcm5pbmcgb3IKLQkgKiBGb3J3YXJkaW5nIHN0YXRlIHRvIERpc2FibGVkLCBCbG9ja2lu ZyBvciBMaXN0ZW5pbmcgc3RhdGUKKwkgKiBGb3J3YXJkaW5nIChjdXJfaHdfc3RhdGUpIHN0YXRl IHRvIERpc2FibGVkLCBCbG9ja2luZyBvciBMaXN0ZW5pbmcKKwkgKiBzdGF0ZSAoaHdfc3RhdGUp CiAJICovCiAJaWYgKGN1cl9od19zdGF0ZSAhPSBod19zdGF0ZSkgewotCQlpZiAoY3VyX2h3X3N0 YXRlICYgNCAmJiAhKGh3X3N0YXRlICYgNCkpIHsKKwkJaWYgKGN1cl9od19zdGF0ZSA+PSBHX01J U1RQX0xFQVJOX1NUQVRFICYmCisJCSAgICBod19zdGF0ZSA8PSBHX01JU1RQX0xJU1RFTl9TVEFU RSkgewogCQkJcmV0ID0gYmNtX3NmMl9zd19mYXN0X2FnZV9wb3J0KGRzLCBwb3J0KTsKIAkJCWlm IChyZXQpIHsKIAkJCQlwcl9lcnIoIiVzOiBmYXN0LWFnZWluZyBmYWlsZWRcbiIsIF9fZnVuY19f KTsKLS0gCjIuMS4wCgoKRnJvbSBlMmEyMzljZjczMzA0YmQ4YzdiM2M3MWE5MWRlOGQ2MTM3YmNh ODBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1 bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFR1ZSwgOCBTZXAgMjAxNSAxMDo1MzowNCAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDgvMzBdIGlwdjY6IGZpeCBtdWx0aXBhdGggcm91dGUgcmVwbGFjZSBl cnJvciByZWNvdmVyeQoKWyBVcHN0cmVhbSBjb21taXQgNmI5ZWE1YTY0ZWQ1ZWViM2Y2OGYyZTZm Y2NlMGVkMTE3OTgwMWQxZSBdCgpQcm9ibGVtOgpUaGUgZWNtcCByb3V0ZSByZXBsYWNlIHN1cHBv cnQgZm9yIGlwdjYgaW4gdGhlIGtlcm5lbCwgZGVsZXRlcyB0aGUKZXhpc3RpbmcgZWNtcCByb3V0 ZSB0b28gZWFybHksIGllIHdoZW4gaXQgaW5zdGFsbHMgdGhlIGZpcnN0IG5leHRob3AuCklmIHRo ZXJlIGlzIGFuIGVycm9yIGluIGluc3RhbGxpbmcgdGhlIHN1YnNlcXVlbnQgbmV4dGhvcHMsIGl0 cyB0b28gbGF0ZQp0byByZWNvdmVyIHRoZSBhbHJlYWR5IGRlbGV0ZWQgZXhpc3Rpbmcgcm91dGUg bGVhdmluZyB0aGUgZmliCmluIGFuIGluY29uc2lzdGVudCBzdGF0ZS4KClRoaXMgcGF0Y2ggcmVk dWNlcyB0aGUgcG9zc2liaWxpdHkgb2YgdGhpcyBieSBkb2luZyB0aGUgZm9sbG93aW5nOgphKSBD aGFuZ2VzIHRoZSBleGlzdGluZyBtdWx0aXBhdGggcm91dGUgYWRkIGNvZGUgdG8gYSB0d28gc3Rh Z2UgcHJvY2VzczoKICBidWlsZCBydDZfaW5mb3MgKyBpbnNlcnQgdGhlbQoJaXA2X3JvdXRlX2Fk ZCBydDZfaW5mbyBjcmVhdGlvbiBjb2RlIGlzIG1vdmVkIGludG8KCWlwNl9yb3V0ZV9pbmZvX2Ny ZWF0ZS4KYikgVGhpcyBlbnN1cmVzIHRoYXQgbW9zdCBlcnJvcnMgYXJlIGNhdWdodCBkdXJpbmcg YnVpbGRpbmcgcnQ2X2luZm9zCiAgYW5kIHdlIGZhaWwgZWFybHkKYykgU2VwYXJhdGVzIG11bHRp cGF0aCBhZGQgYW5kIGRlbCBjb2RlLiBCZWNhdXNlIGFkZCBuZWVkcyB0aGUgc3BlY2lhbAogIHR3 byBzdGFnZSBtb2RlIGluIGEpIGFuZCBkZWxldGUgZXNzZW50aWFsbHkgZG9lcyBub3QgY2FyZS4K ZCkgSW4gYW55IGV2ZW50IGlmIHRoZSBjb2RlIGZhaWxzIGR1cmluZyBpbnNlcnRpbmcgYSByb3V0 ZSBhZ2FpbiwgYQogIHdhcm5pbmcgaXMgcHJpbnRlZCAoVGhpcyBzaG91bGQgYmUgdW5saWtlbHkp CgpCZWZvcmUgdGhlIHBhdGNoOgokaXAgLTYgcm91dGUgc2hvdwozMDAwOjEwMDA6MTAwMDoxMDAw OjoyIHZpYSBmZTgwOjoyMDI6ZmY6ZmUwMDpiIGRldiBzd3A0OXMwIG1ldHJpYyAxMDI0CjMwMDA6 MTAwMDoxMDAwOjEwMDA6OjIgdmlhIGZlODA6OjIwMjpmZjpmZTAwOmQgZGV2IHN3cDQ5czEgbWV0 cmljIDEwMjQKMzAwMDoxMDAwOjEwMDA6MTAwMDo6MiB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZiBk ZXYgc3dwNDlzMiBtZXRyaWMgMTAyNAoKLyogVHJ5IHJlcGxhY2luZyB0aGUgcm91dGUgd2l0aCBh IGR1cGxpY2F0ZSBuZXh0aG9wICovCiRpcCAtNiByb3V0ZSBjaGFuZ2UgMzAwMDoxMDAwOjEwMDA6 MTAwMDo6Mi8xMjggbmV4dGhvcCB2aWEKZmU4MDo6MjAyOmZmOmZlMDA6YiBkZXYgc3dwNDlzMCBu ZXh0aG9wIHZpYSBmZTgwOjoyMDI6ZmY6ZmUwMDpkIGRldgpzd3A0OXMxIG5leHRob3AgdmlhIGZl ODA6OjIwMjpmZjpmZTAwOmQgZGV2IHN3cDQ5czEKUlRORVRMSU5LIGFuc3dlcnM6IEZpbGUgZXhp c3RzCgokaXAgLTYgcm91dGUgc2hvdwovKiBwcmV2aW91c2x5IGFkZGVkIGVjbXAgcm91dGUgMzAw MDoxMDAwOjEwMDA6MTAwMDo6MiBkaXNzYXBwZWFycyBmcm9tCiAqIGtlcm5lbCAqLwoKQWZ0ZXIg dGhlIHBhdGNoOgokaXAgLTYgcm91dGUgc2hvdwozMDAwOjEwMDA6MTAwMDoxMDAwOjoyIHZpYSBm ZTgwOjoyMDI6ZmY6ZmUwMDpiIGRldiBzd3A0OXMwIG1ldHJpYyAxMDI0CjMwMDA6MTAwMDoxMDAw OjEwMDA6OjIgdmlhIGZlODA6OjIwMjpmZjpmZTAwOmQgZGV2IHN3cDQ5czEgbWV0cmljIDEwMjQK MzAwMDoxMDAwOjEwMDA6MTAwMDo6MiB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZiBkZXYgc3dwNDlz MiBtZXRyaWMgMTAyNAoKLyogVHJ5IHJlcGxhY2luZyB0aGUgcm91dGUgd2l0aCBhIGR1cGxpY2F0 ZSBuZXh0aG9wICovCiRpcCAtNiByb3V0ZSBjaGFuZ2UgMzAwMDoxMDAwOjEwMDA6MTAwMDo6Mi8x MjggbmV4dGhvcCB2aWEKZmU4MDo6MjAyOmZmOmZlMDA6YiBkZXYgc3dwNDlzMCBuZXh0aG9wIHZp YSBmZTgwOjoyMDI6ZmY6ZmUwMDpkIGRldgpzd3A0OXMxIG5leHRob3AgdmlhIGZlODA6OjIwMjpm ZjpmZTAwOmQgZGV2IHN3cDQ5czEKUlRORVRMSU5LIGFuc3dlcnM6IEZpbGUgZXhpc3RzCgokaXAg LTYgcm91dGUgc2hvdwozMDAwOjEwMDA6MTAwMDoxMDAwOjoyIHZpYSBmZTgwOjoyMDI6ZmY6ZmUw MDpiIGRldiBzd3A0OXMwIG1ldHJpYyAxMDI0CjMwMDA6MTAwMDoxMDAwOjEwMDA6OjIgdmlhIGZl ODA6OjIwMjpmZjpmZTAwOmQgZGV2IHN3cDQ5czEgbWV0cmljIDEwMjQKMzAwMDoxMDAwOjEwMDA6 MTAwMDo6MiB2aWEgZmU4MDo6MjAyOmZmOmZlMDA6ZiBkZXYgc3dwNDlzMiBtZXRyaWMgMTAyNAoK Rml4ZXM6IDI3NTk2NDcyNDczYSAoImlwdjY6IGZpeCBFQ01QIHJvdXRlIHJlcGxhY2VtZW50IikK U2lnbmVkLW9mZi1ieTogUm9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpS ZXZpZXdlZC1ieTogTmlrb2xheSBBbGVrc2FuZHJvdiA8bmlrb2xheUBjdW11bHVzbmV0d29ya3Mu Y29tPgpBY2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjYvcm91dGUuYyB8IDIwMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMo KyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQv aXB2Ni9yb3V0ZS5jCmluZGV4IGQxNTU4NjQuLjAwYjY0ZDQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMTcyNyw3ICsxNzI3LDcgQEAgc3Rh dGljIGludCBpcDZfY29udmVydF9tZXRyaWNzKHN0cnVjdCBteDZfY29uZmlnICpteGMsCiAJcmV0 dXJuIC1FSU5WQUw7CiB9CiAKLWludCBpcDZfcm91dGVfYWRkKHN0cnVjdCBmaWI2X2NvbmZpZyAq Y2ZnKQoraW50IGlwNl9yb3V0ZV9pbmZvX2NyZWF0ZShzdHJ1Y3QgZmliNl9jb25maWcgKmNmZywg c3RydWN0IHJ0Nl9pbmZvICoqcnRfcmV0KQogewogCWludCBlcnI7CiAJc3RydWN0IG5ldCAqbmV0 ID0gY2ZnLT5mY19ubGluZm8ubmxfbmV0OwpAQCAtMTczNSw3ICsxNzM1LDYgQEAgaW50IGlwNl9y b3V0ZV9hZGQoc3RydWN0IGZpYjZfY29uZmlnICpjZmcpCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRl diA9IE5VTEw7CiAJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IE5VTEw7CiAJc3RydWN0IGZpYjZf dGFibGUgKnRhYmxlOwotCXN0cnVjdCBteDZfY29uZmlnIG14YyA9IHsgLm14ID0gTlVMTCwgfTsK IAlpbnQgYWRkcl90eXBlOwogCiAJaWYgKGNmZy0+ZmNfZHN0X2xlbiA+IDEyOCB8fCBjZmctPmZj X3NyY19sZW4gPiAxMjgpCkBAIC0xOTQxLDYgKzE5NDAsMzIgQEAgaW5zdGFsbF9yb3V0ZToKIAog CWNmZy0+ZmNfbmxpbmZvLm5sX25ldCA9IGRldl9uZXQoZGV2KTsKIAorCSpydF9yZXQgPSBydDsK KworCXJldHVybiAwOworb3V0OgorCWlmIChkZXYpCisJCWRldl9wdXQoZGV2KTsKKwlpZiAoaWRl dikKKwkJaW42X2Rldl9wdXQoaWRldik7CisJaWYgKHJ0KQorCQlkc3RfZnJlZSgmcnQtPmRzdCk7 CisKKwkqcnRfcmV0ID0gTlVMTDsKKworCXJldHVybiBlcnI7Cit9CisKK2ludCBpcDZfcm91dGVf YWRkKHN0cnVjdCBmaWI2X2NvbmZpZyAqY2ZnKQoreworCXN0cnVjdCBteDZfY29uZmlnIG14YyA9 IHsgLm14ID0gTlVMTCwgfTsKKwlzdHJ1Y3QgcnQ2X2luZm8gKnJ0ID0gTlVMTDsKKwlpbnQgZXJy OworCisJZXJyID0gaXA2X3JvdXRlX2luZm9fY3JlYXRlKGNmZywgJnJ0KTsKKwlpZiAoZXJyKQor CQlnb3RvIG91dDsKKwogCWVyciA9IGlwNl9jb252ZXJ0X21ldHJpY3MoJm14YywgY2ZnKTsKIAlp ZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTE5NDgsMTQgKzE5NzMsMTIgQEAgaW5zdGFsbF9yb3V0 ZToKIAllcnIgPSBfX2lwNl9pbnNfcnQocnQsICZjZmctPmZjX25saW5mbywgJm14Yyk7CiAKIAlr ZnJlZShteGMubXgpOworCiAJcmV0dXJuIGVycjsKIG91dDoKLQlpZiAoZGV2KQotCQlkZXZfcHV0 KGRldik7Ci0JaWYgKGlkZXYpCi0JCWluNl9kZXZfcHV0KGlkZXYpOwogCWlmIChydCkKIAkJZHN0 X2ZyZWUoJnJ0LT5kc3QpOworCiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMjcyNywxOSArMjc1MCw3 OCBAQCBlcnJvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBpcDZfcm91dGVfbXVs dGlwYXRoKHN0cnVjdCBmaWI2X2NvbmZpZyAqY2ZnLCBpbnQgYWRkKQorc3RydWN0IHJ0Nl9uaCB7 CisJc3RydWN0IHJ0Nl9pbmZvICpydDZfaW5mbzsKKwlzdHJ1Y3QgZmliNl9jb25maWcgcl9jZmc7 CisJc3RydWN0IG14Nl9jb25maWcgbXhjOworCXN0cnVjdCBsaXN0X2hlYWQgbmV4dDsKK307CisK K3N0YXRpYyB2b2lkIGlwNl9wcmludF9yZXBsYWNlX3JvdXRlX2VycihzdHJ1Y3QgbGlzdF9oZWFk ICpydDZfbmhfbGlzdCkKK3sKKwlzdHJ1Y3QgcnQ2X25oICpuaDsKKworCWxpc3RfZm9yX2VhY2hf ZW50cnkobmgsIHJ0Nl9uaF9saXN0LCBuZXh0KSB7CisJCXByX3dhcm4oIklQVjY6IG11bHRpcGF0 aCByb3V0ZSByZXBsYWNlIGZhaWxlZCAoY2hlY2sgY29uc2lzdGVuY3kgb2YgaW5zdGFsbGVkIHJv dXRlcyk6ICVwSTYgbmV4dGhvcCAlcEk2IGlmaSAlZFxuIiwKKwkJICAgICAgICAmbmgtPnJfY2Zn LmZjX2RzdCwgJm5oLT5yX2NmZy5mY19nYXRld2F5LAorCQkgICAgICAgIG5oLT5yX2NmZy5mY19p ZmluZGV4KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgaXA2X3JvdXRlX2luZm9fYXBwZW5kKHN0cnVj dCBsaXN0X2hlYWQgKnJ0Nl9uaF9saXN0LAorCQkJCSBzdHJ1Y3QgcnQ2X2luZm8gKnJ0LCBzdHJ1 Y3QgZmliNl9jb25maWcgKnJfY2ZnKQoreworCXN0cnVjdCBydDZfbmggKm5oOworCXN0cnVjdCBy dDZfaW5mbyAqcnRuaDsKKwlpbnQgZXJyID0gLUVFWElTVDsKKworCWxpc3RfZm9yX2VhY2hfZW50 cnkobmgsIHJ0Nl9uaF9saXN0LCBuZXh0KSB7CisJCS8qIGNoZWNrIGlmIHJ0Nl9pbmZvIGFscmVh ZHkgZXhpc3RzICovCisJCXJ0bmggPSBuaC0+cnQ2X2luZm87CisKKwkJaWYgKHJ0bmgtPmRzdC5k ZXYgPT0gcnQtPmRzdC5kZXYgJiYKKwkJICAgIHJ0bmgtPnJ0NmlfaWRldiA9PSBydC0+cnQ2aV9p ZGV2ICYmCisJCSAgICBpcHY2X2FkZHJfZXF1YWwoJnJ0bmgtPnJ0NmlfZ2F0ZXdheSwKKwkJCQkg ICAgJnJ0LT5ydDZpX2dhdGV3YXkpKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwluaCA9IGt6YWxs b2Moc2l6ZW9mKCpuaCksIEdGUF9LRVJORUwpOworCWlmICghbmgpCisJCXJldHVybiAtRU5PTUVN OworCW5oLT5ydDZfaW5mbyA9IHJ0OworCWVyciA9IGlwNl9jb252ZXJ0X21ldHJpY3MoJm5oLT5t eGMsIHJfY2ZnKTsKKwlpZiAoZXJyKSB7CisJCWtmcmVlKG5oKTsKKwkJcmV0dXJuIGVycjsKKwl9 CisJbWVtY3B5KCZuaC0+cl9jZmcsIHJfY2ZnLCBzaXplb2YoKnJfY2ZnKSk7CisJbGlzdF9hZGRf dGFpbCgmbmgtPm5leHQsIHJ0Nl9uaF9saXN0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGlwNl9yb3V0ZV9tdWx0aXBhdGhfYWRkKHN0cnVjdCBmaWI2X2NvbmZpZyAqY2ZnKQogewog CXN0cnVjdCBmaWI2X2NvbmZpZyByX2NmZzsKIAlzdHJ1Y3QgcnRuZXh0aG9wICpydG5oOworCXN0 cnVjdCBydDZfaW5mbyAqcnQ7CisJc3RydWN0IHJ0Nl9uaCAqZXJyX25oOworCXN0cnVjdCBydDZf bmggKm5oLCAqbmhfc2FmZTsKIAlpbnQgcmVtYWluaW5nOwogCWludCBhdHRybGVuOwotCWludCBl cnIgPSAwLCBsYXN0X2VyciA9IDA7CisJaW50IGVyciA9IDE7CisJaW50IG5obiA9IDA7CisJaW50 IHJlcGxhY2UgPSAoY2ZnLT5mY19ubGluZm8ubmxoICYmCisJCSAgICAgICAoY2ZnLT5mY19ubGlu Zm8ubmxoLT5ubG1zZ19mbGFncyAmIE5MTV9GX1JFUExBQ0UpKTsKKwlMSVNUX0hFQUQocnQ2X25o X2xpc3QpOwogCiAJcmVtYWluaW5nID0gY2ZnLT5mY19tcF9sZW47Ci1iZWdpbm5pbmc6CiAJcnRu aCA9IChzdHJ1Y3QgcnRuZXh0aG9wICopY2ZnLT5mY19tcDsKIAotCS8qIFBhcnNlIGEgTXVsdGlw YXRoIEVudHJ5ICovCisJLyogUGFyc2UgYSBNdWx0aXBhdGggRW50cnkgYW5kIGJ1aWxkIGEgbGlz dCAocnQ2X25oX2xpc3QpIG9mCisJICogcnQ2X2luZm8gc3RydWN0cyBwZXIgbmV4dGhvcAorCSAq LwogCXdoaWxlIChydG5oX29rKHJ0bmgsIHJlbWFpbmluZykpIHsKIAkJbWVtY3B5KCZyX2NmZywg Y2ZnLCBzaXplb2YoKmNmZykpOwogCQlpZiAocnRuaC0+cnRuaF9pZmluZGV4KQpAQCAtMjc1NSwy MiArMjgzNywzMiBAQCBiZWdpbm5pbmc6CiAJCQkJcl9jZmcuZmNfZmxhZ3MgfD0gUlRGX0dBVEVX QVk7CiAJCQl9CiAJCX0KLQkJZXJyID0gYWRkID8gaXA2X3JvdXRlX2FkZCgmcl9jZmcpIDogaXA2 X3JvdXRlX2RlbCgmcl9jZmcpOworCisJCWVyciA9IGlwNl9yb3V0ZV9pbmZvX2NyZWF0ZSgmcl9j ZmcsICZydCk7CisJCWlmIChlcnIpCisJCQlnb3RvIGNsZWFudXA7CisKKwkJZXJyID0gaXA2X3Jv dXRlX2luZm9fYXBwZW5kKCZydDZfbmhfbGlzdCwgcnQsICZyX2NmZyk7CiAJCWlmIChlcnIpIHsK LQkJCWxhc3RfZXJyID0gZXJyOwotCQkJLyogSWYgd2UgYXJlIHRyeWluZyB0byByZW1vdmUgYSBy b3V0ZSwgZG8gbm90IHN0b3AgdGhlCi0JCQkgKiBsb29wIHdoZW4gaXA2X3JvdXRlX2RlbCgpIGZh aWxzIChiZWNhdXNlIG5leHQgaG9wIGlzCi0JCQkgKiBhbHJlYWR5IGdvbmUpLCB3ZSBzaG91bGQg dHJ5IHRvIHJlbW92ZSBhbGwgbmV4dCBob3BzLgotCQkJICovCi0JCQlpZiAoYWRkKSB7Ci0JCQkJ LyogSWYgYWRkIGZhaWxzLCB3ZSBzaG91bGQgdHJ5IHRvIGRlbGV0ZSBhbGwKLQkJCQkgKiBuZXh0 IGhvcHMgdGhhdCBoYXZlIGJlZW4gYWxyZWFkeSBhZGRlZC4KLQkJCQkgKi8KLQkJCQlhZGQgPSAw OwotCQkJCXJlbWFpbmluZyA9IGNmZy0+ZmNfbXBfbGVuIC0gcmVtYWluaW5nOwotCQkJCWdvdG8g YmVnaW5uaW5nOwotCQkJfQorCQkJZHN0X2ZyZWUoJnJ0LT5kc3QpOworCQkJZ290byBjbGVhbnVw OworCQl9CisKKwkJcnRuaCA9IHJ0bmhfbmV4dChydG5oLCAmcmVtYWluaW5nKTsKKwl9CisKKwll cnJfbmggPSBOVUxMOworCWxpc3RfZm9yX2VhY2hfZW50cnkobmgsICZydDZfbmhfbGlzdCwgbmV4 dCkgeworCQllcnIgPSBfX2lwNl9pbnNfcnQobmgtPnJ0Nl9pbmZvLCAmY2ZnLT5mY19ubGluZm8s ICZuaC0+bXhjKTsKKwkJLyogbmgtPnJ0Nl9pbmZvIGlzIHVzZWQgb3IgZnJlZWQgYXQgdGhpcyBw b2ludCwgcmVzZXQgdG8gTlVMTCovCisJCW5oLT5ydDZfaW5mbyA9IE5VTEw7CisJCWlmIChlcnIp IHsKKwkJCWlmIChyZXBsYWNlICYmIG5obikKKwkJCQlpcDZfcHJpbnRfcmVwbGFjZV9yb3V0ZV9l cnIoJnJ0Nl9uaF9saXN0KTsKKwkJCWVycl9uaCA9IG5oOworCQkJZ290byBhZGRfZXJyb3V0Owog CQl9CisKIAkJLyogQmVjYXVzZSBlYWNoIHJvdXRlIGlzIGFkZGVkIGxpa2UgYSBzaW5nbGUgcm91 dGUgd2UgcmVtb3ZlCiAJCSAqIHRoZXNlIGZsYWdzIGFmdGVyIHRoZSBmaXJzdCBuZXh0aG9wOiBp ZiB0aGVyZSBpcyBhIGNvbGxpc2lvbiwKIAkJICogd2UgaGF2ZSBhbHJlYWR5IGZhaWxlZCB0byBh ZGQgdGhlIGZpcnN0IG5leHRob3A6CkBAIC0yNzgwLDYgKzI4NzIsNjMgQEAgYmVnaW5uaW5nOgog CQkgKi8KIAkJY2ZnLT5mY19ubGluZm8ubmxoLT5ubG1zZ19mbGFncyAmPSB+KE5MTV9GX0VYQ0wg fAogCQkJCQkJICAgICBOTE1fRl9SRVBMQUNFKTsKKwkJbmhuKys7CisJfQorCisJZ290byBjbGVh bnVwOworCithZGRfZXJyb3V0OgorCS8qIERlbGV0ZSByb3V0ZXMgdGhhdCB3ZXJlIGFscmVhZHkg YWRkZWQgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG5oLCAmcnQ2X25oX2xpc3QsIG5leHQpIHsK KwkJaWYgKGVycl9uaCA9PSBuaCkKKwkJCWJyZWFrOworCQlpcDZfcm91dGVfZGVsKCZuaC0+cl9j ZmcpOworCX0KKworY2xlYW51cDoKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobmgsIG5oX3Nh ZmUsICZydDZfbmhfbGlzdCwgbmV4dCkgeworCQlpZiAobmgtPnJ0Nl9pbmZvKQorCQkJZHN0X2Zy ZWUoJm5oLT5ydDZfaW5mby0+ZHN0KTsKKwkJaWYgKG5oLT5teGMubXgpCisJCQlrZnJlZShuaC0+ bXhjLm14KTsKKwkJbGlzdF9kZWwoJm5oLT5uZXh0KTsKKwkJa2ZyZWUobmgpOworCX0KKworCXJl dHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgaXA2X3JvdXRlX211bHRpcGF0aF9kZWwoc3RydWN0 IGZpYjZfY29uZmlnICpjZmcpCit7CisJc3RydWN0IGZpYjZfY29uZmlnIHJfY2ZnOworCXN0cnVj dCBydG5leHRob3AgKnJ0bmg7CisJaW50IHJlbWFpbmluZzsKKwlpbnQgYXR0cmxlbjsKKwlpbnQg ZXJyID0gMSwgbGFzdF9lcnIgPSAwOworCisJcmVtYWluaW5nID0gY2ZnLT5mY19tcF9sZW47CisJ cnRuaCA9IChzdHJ1Y3QgcnRuZXh0aG9wICopY2ZnLT5mY19tcDsKKworCS8qIFBhcnNlIGEgTXVs dGlwYXRoIEVudHJ5ICovCisJd2hpbGUgKHJ0bmhfb2socnRuaCwgcmVtYWluaW5nKSkgeworCQlt ZW1jcHkoJnJfY2ZnLCBjZmcsIHNpemVvZigqY2ZnKSk7CisJCWlmIChydG5oLT5ydG5oX2lmaW5k ZXgpCisJCQlyX2NmZy5mY19pZmluZGV4ID0gcnRuaC0+cnRuaF9pZmluZGV4OworCisJCWF0dHJs ZW4gPSBydG5oX2F0dHJsZW4ocnRuaCk7CisJCWlmIChhdHRybGVuID4gMCkgeworCQkJc3RydWN0 IG5sYXR0ciAqbmxhLCAqYXR0cnMgPSBydG5oX2F0dHJzKHJ0bmgpOworCisJCQlubGEgPSBubGFf ZmluZChhdHRycywgYXR0cmxlbiwgUlRBX0dBVEVXQVkpOworCQkJaWYgKG5sYSkgeworCQkJCW5s YV9tZW1jcHkoJnJfY2ZnLmZjX2dhdGV3YXksIG5sYSwgMTYpOworCQkJCXJfY2ZnLmZjX2ZsYWdz IHw9IFJURl9HQVRFV0FZOworCQkJfQorCQl9CisJCWVyciA9IGlwNl9yb3V0ZV9kZWwoJnJfY2Zn KTsKKwkJaWYgKGVycikKKwkJCWxhc3RfZXJyID0gZXJyOworCiAJCXJ0bmggPSBydG5oX25leHQo cnRuaCwgJnJlbWFpbmluZyk7CiAJfQogCkBAIC0yNzk2LDcgKzI5NDUsNyBAQCBzdGF0aWMgaW50 IGluZXQ2X3J0bV9kZWxyb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIg Km5saCkKIAkJcmV0dXJuIGVycjsKIAogCWlmIChjZmcuZmNfbXApCi0JCXJldHVybiBpcDZfcm91 dGVfbXVsdGlwYXRoKCZjZmcsIDApOworCQlyZXR1cm4gaXA2X3JvdXRlX211bHRpcGF0aF9kZWwo JmNmZyk7CiAJZWxzZQogCQlyZXR1cm4gaXA2X3JvdXRlX2RlbCgmY2ZnKTsKIH0KQEAgLTI4MTEs NyArMjk2MCw3IEBAIHN0YXRpYyBpbnQgaW5ldDZfcnRtX25ld3JvdXRlKHN0cnVjdCBza19idWZm ICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoKQogCQlyZXR1cm4gZXJyOwogCiAJaWYgKGNmZy5m Y19tcCkKLQkJcmV0dXJuIGlwNl9yb3V0ZV9tdWx0aXBhdGgoJmNmZywgMSk7CisJCXJldHVybiBp cDZfcm91dGVfbXVsdGlwYXRoX2FkZCgmY2ZnKTsKIAllbHNlCiAJCXJldHVybiBpcDZfcm91dGVf YWRkKCZjZmcpOwogfQotLSAKMi4xLjAKCgpGcm9tIGZjMDFiMWIxM2I4NjUxMzMzNTJjODY2ZmJl ZDc2NGY0ZjYxOWZhOTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEZsb3JpYW4gRmFp bmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDggU2VwIDIwMTUgMjA6MDY6 NDEgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzMwXSBuZXQ6IGRzYTogYmNtX3NmMjogRml4IDY0 LWJpdHMgcmVnaXN0ZXIgd3JpdGVzCgpbIFVwc3RyZWFtIGNvbW1pdCAwMzY3OWExNDczOWEwZDRj MTRiNTJiYTY1YTY5ZmY1NTNiZmJhNzNiIF0KClRoZSBtYWNybyB0byB3cml0ZSA2NC1iaXRzIHF1 YW50aXRpZXMgdG8gdGhlIDMyLWJpdHMgcmVnaXN0ZXIgc3dhcHBlZAp0aGUgdmFsdWUgYW5kIG9m ZnNldHMgYXJndW1lbnRzLCB3ZSB3YW50IHRvIHByZXNlcnZlIHRoZSBvcmRlcmluZyBvZiB0aGUK YXJndW1lbnRzIHdpdGggcmVzcGVjdCB0byBob3cgd3JpdGVsKCkgaXMgaW1wbGVtZW50ZWQgZm9y IGluc3RhbmNlOgp2YWx1ZSBmaXJzdCwgb2Zmc2V0L2Jhc2Ugc2Vjb25kLgoKRml4ZXM6IDI0NmQ3 Zjc3M2MxMyAoIm5ldDogZHNhOiBhZGQgQnJvYWRjb20gU0YyIHN3aXRjaCBkcml2ZXIiKQpTaWdu ZWQtb2ZmLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IFZpdmllbiBEaWRlbG90IDx2aXZpZW4uZGlkZWxvdEBzYXZvaXJmYWlyZWxpbnV4LmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmggfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZHNhL2JjbV9zZjIuaCBiL2RyaXZlcnMvbmV0L2RzYS9iY21fc2YyLmgKaW5kZXggMjJlMmViZi4u Nzg5ZDdiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuaAorKysgYi9kcml2 ZXJzL25ldC9kc2EvYmNtX3NmMi5oCkBAIC0xMTIsOCArMTEyLDggQEAgc3RhdGljIGlubGluZSB1 NjQgbmFtZSMjX3JlYWRxKHN0cnVjdCBiY21fc2YyX3ByaXYgKnByaXYsIHUzMiBvZmYpCVwKIAlz cGluX3VubG9jaygmcHJpdi0+aW5kaXJfbG9jayk7CQkJCQlcCiAJcmV0dXJuICh1NjQpaW5kaXIg PDwgMzIgfCBkaXI7CQkJCQlcCiB9CQkJCQkJCQkJXAotc3RhdGljIGlubGluZSB2b2lkIG5hbWUj I193cml0ZXEoc3RydWN0IGJjbV9zZjJfcHJpdiAqcHJpdiwgdTMyIG9mZiwJXAotCQkJCQkJCXU2 NCB2YWwpCVwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfd3JpdGVxKHN0cnVjdCBiY21fc2Yy X3ByaXYgKnByaXYsIHU2NCB2YWwsCVwKKwkJCQkJCQl1MzIgb2ZmKQlcCiB7CQkJCQkJCQkJXAog CXNwaW5fbG9jaygmcHJpdi0+aW5kaXJfbG9jayk7CQkJCQlcCiAJcmVnX3dyaXRlbChwcml2LCB1 cHBlcl8zMl9iaXRzKHZhbCksIFJFR19ESVJfREFUQV9XUklURSk7CVwKLS0gCjIuMS4wCgoKRnJv bSBiOTJiMTY5YWI5Mzk4YzViZTEwYTQxYWI5MDhmZjllY2VlMWM5NDU3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpE YXRlOiBUaHUsIDEwIFNlcCAyMDE1IDIwOjA1OjQ2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMC8z MF0gbmV0bGluaywgbW1hcDogdHJhbnNmb3JtIG1tYXAgc2tiIGludG8gZnVsbCBza2Igb24gdGFw cwoKWyBVcHN0cmVhbSBjb21taXQgMTg1M2M5NDk2NDYwMDViNTk1OWM0ODNiZWNkZTg2NjA4ZjU0 OGYyNCBdCgpLZW4taWNoaXJvdSByZXBvcnRlZCB0aGF0IHJ1bm5pbmcgbmV0bGluayBpbiBtbWFw IG1vZGUgZm9yIHJlY2VpdmUgaW4KY29tYmluYXRpb24gd2l0aCBubG1vbiB3aWxsIHRocm93IGEg TlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCl9fa2ZyZWVfc2tiKCkgb24gbmxtb25feG1pdCgp LCBpbiBteSBjYXNlIEkgY2FuIGFsc28gdHJpZ2dlciBhbiAidW5hYmxlCnRvIGhhbmRsZSBrZXJu ZWwgcGFnaW5nIHJlcXVlc3QiLiBUaGUgcHJvYmxlbSBpcyB0aGUgc2tiX2Nsb25lKCkgaW4KX19u ZXRsaW5rX2RlbGl2ZXJfdGFwX3NrYigpIGZvciBza2JzIHRoYXQgYXJlIG1tYXBlZC4KCkkuZS4g dGhlIGNsb25lZCBza2IgZG9lc24ndCBoYXZlIGEgZGVzdHJ1Y3Rvciwgd2hlcmVhcyB0aGUgbW1h cCBuZXRsaW5rCnNrYiBoYXMgaXQgcG9pbnRlZCB0byBuZXRsaW5rX3NrYl9kZXN0cnVjdG9yKCks IHNldCBpbiB0aGUgaGFuZGxlcgpuZXRsaW5rX3Jpbmdfc2V0dXBfc2tiKCkuIFRoZXJlLCBza2It PmhlYWQgaXMgYmVpbmcgc2V0IHRvIE5VTEwsIHNvCnRoYXQgaW4gc3VjaCBjYXNlcywgX19rZnJl ZV9za2IoKSBkb2Vzbid0IHBlcmZvcm0gYSBza2JfcmVsZWFzZV9kYXRhKCkKdmlhIHNrYl9yZWxl YXNlX2FsbCgpLCB3aGVyZSBza2ItPmhlYWQgaXMgcG9zc2libHkgYmVpbmcgZnJlZWQgdGhyb3Vn aAprZnJlZShoZWFkKSBpbnRvIHNsYWIgYWxsb2NhdG9yLCBhbHRob3VnaCBuZXRsaW5rIG1tYXAg c2tiLT5oZWFkIHBvaW50cwp0byB0aGUgbW1hcCBidWZmZXIuIFNpbWlsYXJseSwgdGhlIHNhbWUg aGFzIHRvIGJlIGRvbmUgYWxzbyBmb3IgbGFyZ2UKbmV0bGluayBza2JzIHdoZXJlIHRoZSBkYXRh IGFyZWEgaXMgdm1hbGxvY2VkLiBUaGVyZWZvcmUsIGFzIGRpc2N1c3NlZCwKbWFrZSBhIGNvcHkg Zm9yIHRoZXNlIHJhdGhlciByYXJlIGNhc2VzIGZvciBub3cuIFRoaXMgZml4ZXMgdGhlIGlzc3Vl Cm9uIG15IGFuZCBLZW4taWNoaXJvdSdzIHRlc3QtY2FzZXMuCgpSZWZlcmVuY2U6IGh0dHA6Ly90 aHJlYWQuZ21hbmUub3JnL2dtYW5lLmxpbnV4Lm5ldHdvcmsvMzcxMTI5CkZpeGVzOiBiY2JkZTBk NDQ5ZWQgKCJuZXQ6IG5ldGxpbms6IHZpcnR1YWwgdGFwIGRldmljZSBtYW5hZ2VtZW50IikKUmVw b3J0ZWQtYnk6IEtlbi1pY2hpcm91IE1BVFNVWkFXQSA8Y2hhbWFrZW5AZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYW5pZWwgQm9ya21hbm4gPGRhbmllbEBpb2dlYXJib3gubmV0PgpUZXN0ZWQt Ynk6IEtlbi1pY2hpcm91IE1BVFNVWkFXQSA8Y2hhbWFrZW5AZ21haWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25ldGxp bmsvYWZfbmV0bGluay5jIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBuZXQv bmV0bGluay9hZl9uZXRsaW5rLmggfCAgOSArKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMzIg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9h Zl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXggYTc3NDk4NS4uYmJk NWQ0MyAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCisrKyBiL25ldC9uZXRs aW5rL2FmX25ldGxpbmsuYwpAQCAtMTI0LDYgKzEyNCwyNCBAQCBzdGF0aWMgaW5saW5lIHUzMiBu ZXRsaW5rX2dyb3VwX21hc2sodTMyIGdyb3VwKQogCXJldHVybiBncm91cCA/IDEgPDwgKGdyb3Vw IC0gMSkgOiAwOwogfQogCitzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm5ldGxpbmtfdG9fZnVsbF9z a2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJICAgZ2ZwX3QgZ2ZwX21hc2spCit7 CisJdW5zaWduZWQgaW50IGxlbiA9IHNrYl9lbmRfb2Zmc2V0KHNrYik7CisJc3RydWN0IHNrX2J1 ZmYgKm5ldzsKKworCW5ldyA9IGFsbG9jX3NrYihsZW4sIGdmcF9tYXNrKTsKKwlpZiAobmV3ID09 IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJTkVUTElOS19DQihuZXcpLnBvcnRpZCA9IE5FVExJ TktfQ0Ioc2tiKS5wb3J0aWQ7CisJTkVUTElOS19DQihuZXcpLmRzdF9ncm91cCA9IE5FVExJTktf Q0Ioc2tiKS5kc3RfZ3JvdXA7CisJTkVUTElOS19DQihuZXcpLmNyZWRzID0gTkVUTElOS19DQihz a2IpLmNyZWRzOworCisJbWVtY3B5KHNrYl9wdXQobmV3LCBsZW4pLCBza2ItPmRhdGEsIGxlbik7 CisJcmV0dXJuIG5ldzsKK30KKwogaW50IG5ldGxpbmtfYWRkX3RhcChzdHJ1Y3QgbmV0bGlua190 YXAgKm50KQogewogCWlmICh1bmxpa2VseShudC0+ZGV2LT50eXBlICE9IEFSUEhSRF9ORVRMSU5L KSkKQEAgLTIwNSw3ICsyMjMsMTEgQEAgc3RhdGljIGludCBfX25ldGxpbmtfZGVsaXZlcl90YXBf c2tiKHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IHJldCA9IC1FTk9NRU07CiAKIAlkZXZfaG9s ZChkZXYpOwotCW5za2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKKworCWlmIChuZXRs aW5rX3NrYl9pc19tbWFwZWQoc2tiKSB8fCBpc192bWFsbG9jX2FkZHIoc2tiLT5oZWFkKSkKKwkJ bnNrYiA9IG5ldGxpbmtfdG9fZnVsbF9za2Ioc2tiLCBHRlBfQVRPTUlDKTsKKwllbHNlCisJCW5z a2IgPSBza2JfY2xvbmUoc2tiLCBHRlBfQVRPTUlDKTsKIAlpZiAobnNrYikgewogCQluc2tiLT5k ZXYgPSBkZXY7CiAJCW5za2ItPnByb3RvY29sID0gaHRvbnMoKHUxNikgc2stPnNrX3Byb3RvY29s KTsKQEAgLTI3OCwxMSArMzAwLDYgQEAgc3RhdGljIHZvaWQgbmV0bGlua19yY3Zfd2FrZShzdHJ1 Y3Qgc29jayAqc2spCiB9CiAKICNpZmRlZiBDT05GSUdfTkVUTElOS19NTUFQCi1zdGF0aWMgYm9v bCBuZXRsaW5rX3NrYl9pc19tbWFwZWQoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQly ZXR1cm4gTkVUTElOS19DQihza2IpLmZsYWdzICYgTkVUTElOS19TS0JfTU1BUEVEOwotfQotCiBz dGF0aWMgYm9vbCBuZXRsaW5rX3J4X2lzX21tYXBlZChzdHJ1Y3Qgc29jayAqc2spCiB7CiAJcmV0 dXJuIG5sa19zayhzayktPnJ4X3JpbmcucGdfdmVjICE9IE5VTEw7CkBAIC04MzQsNyArODUxLDYg QEAgc3RhdGljIHZvaWQgbmV0bGlua19yaW5nX3NldF9jb3BpZWQoc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogfQogCiAjZWxzZSAvKiBDT05GSUdfTkVUTElOS19NTUFQICov Ci0jZGVmaW5lIG5ldGxpbmtfc2tiX2lzX21tYXBlZChza2IpCWZhbHNlCiAjZGVmaW5lIG5ldGxp bmtfcnhfaXNfbW1hcGVkKHNrKQlmYWxzZQogI2RlZmluZSBuZXRsaW5rX3R4X2lzX21tYXBlZChz aykJZmFsc2UKICNkZWZpbmUgbmV0bGlua19tbWFwCQkJc29ja19ub19tbWFwCmRpZmYgLS1naXQg YS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmggYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKaW5k ZXggODkwMDg0MC4uZGY5YTA2MCAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5o CisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaApAQCAtNTksNiArNTksMTUgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgbmV0bGlua19zb2NrICpubGtfc2soc3RydWN0IHNvY2sgKnNrKQogCXJl dHVybiBjb250YWluZXJfb2Yoc2ssIHN0cnVjdCBuZXRsaW5rX3NvY2ssIHNrKTsKIH0KIAorc3Rh dGljIGlubGluZSBib29sIG5ldGxpbmtfc2tiX2lzX21tYXBlZChjb25zdCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQoreworI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKKwlyZXR1cm4gTkVUTElOS19D Qihza2IpLmZsYWdzICYgTkVUTElOS19TS0JfTU1BUEVEOworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7 CisjZW5kaWYgLyogQ09ORklHX05FVExJTktfTU1BUCAqLworfQorCiBzdHJ1Y3QgbmV0bGlua190 YWJsZSB7CiAJc3RydWN0IHJoYXNodGFibGUJaGFzaDsKIAlzdHJ1Y3QgaGxpc3RfaGVhZAltY19s aXN0OwotLSAKMi4xLjAKCgpGcm9tIDNjNzhkM2UyODNmMWU4YmIwYjI3ZGNkNGZmYzY3MmY1OWZi ODg3YmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcmNlbG8gUmljYXJkbyBMZWl0 bmVyIDxtYXJjZWxvLmxlaXRuZXJAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEwIFNlcCAyMDE1IDE3 OjMxOjE1IC0wMzAwClN1YmplY3Q6IFtQQVRDSCAxMS8zMF0gc2N0cDogZml4IHJhY2Ugb24gcHJv dG9jb2wvbmV0bnMgaW5pdGlhbGl6YXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDhlMmQ2MWUwYWVk MmI3YzRlY2IzNTg0NGZlMDdlMGIyYjc2MmRlZTQgXQoKQ29uc2lkZXIgc2N0cCBtb2R1bGUgaXMg dW5sb2FkZWQgYW5kIGlzIGJlaW5nIHJlcXVlc3RlZCBiZWNhdXNlIGFuIHVzZXIKaXMgY3JlYXRp bmcgYSBzY3RwIHNvY2tldC4KCkR1cmluZyBpbml0aWFsaXphdGlvbiwgc2N0cCB3aWxsIGFkZCB0 aGUgbmV3IHByb3RvY29sIHR5cGUgYW5kIHRoZW4KaW5pdGlhbGl6ZSBwZXJuZXQgc3Vic3lzOgoK ICAgICAgICBzdGF0dXMgPSBzY3RwX3Y0X3Byb3Rvc3dfaW5pdCgpOwogICAgICAgIGlmIChzdGF0 dXMpCiAgICAgICAgICAgICAgICBnb3RvIGVycl9wcm90b3N3X2luaXQ7CgogICAgICAgIHN0YXR1 cyA9IHNjdHBfdjZfcHJvdG9zd19pbml0KCk7CiAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAg ICAgICAgIGdvdG8gZXJyX3Y2X3Byb3Rvc3dfaW5pdDsKCiAgICAgICAgc3RhdHVzID0gcmVnaXN0 ZXJfcGVybmV0X3N1YnN5cygmc2N0cF9uZXRfb3BzKTsKClRoZSBwcm9ibGVtIGlzIHRoYXQgYWZ0 ZXIgdGhvc2UgY2FsbHMgdG8gc2N0cF92ezQsNn1fcHJvdG9zd19pbml0KCksIGl0CmlzIHBvc3Np YmxlIGZvciB1c2Vyc3BhY2UgdG8gY3JlYXRlIFNDVFAgc29ja2V0cyBsaWtlIGlmIHRoZSBtb2R1 bGUgaXMKYWxyZWFkeSBmdWxseSBsb2FkZWQuIElmIHRoYXQgaGFwcGVucywgb25lIG9mIHRoZSBw b3NzaWJsZSBlZmZlY3RzIGlzCnRoYXQgd2Ugd2lsbCBoYXZlIHJlYWRlcnMgZm9yIG5ldC0+c2N0 cC5sb2NhbF9hZGRyX2xpc3QgbGlzdCBlYXJsaWVyCnRoYW4gZXhwZWN0ZWQgYW5kIHNjdHBfbmV0 X2luaXQoKSBkb2VzIG5vdCB0YWtlIHByZWNhdXRpb25zIHdoaWxlCmRlYWxpbmcgd2l0aCB0aGF0 IGxpc3QsIGxlYWRpbmcgdG8gYSBwb3RlbnRpYWwgcGFuaWMgYnV0IG5vdCBsaW1pdGVkIHRvCnRo YXQsIGFzIHNjdHBfc29ja19pbml0KCkgd2lsbCBjb3B5IGEgYnVuY2ggb2YgYmxhbmsvcGFydGlh bGx5CmluaXRpYWxpemVkIHZhbHVlcyBmcm9tIG5ldC0+c2N0cC4KClRoZSByYWNlIGhhcHBlbnMg bGlrZSB0aGlzOgoKICAgICBDUFUgMCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIENQVSAx CiAgc29ja2V0KCkgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgIF9fc29ja19jcmVhdGUg ICAgICAgICAgICAgICAgICAgICB8IHNvY2tldCgpCiAgICBpbmV0X2NyZWF0ZSAgICAgICAgICAg ICAgICAgICAgICB8ICBfX3NvY2tfY3JlYXRlCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3Uo ICAgICAgICB8CiAgICAgICAgYW5zd2VyLCAmaW5ldHN3W3NvY2stPnR5cGVdLCB8CiAgICAgICAg bGlzdCkgeyAgICAgICAgICAgICAgICAgICAgICB8ICAgaW5ldF9jcmVhdGUKICAgICAgLyogbm8g aGl0cyAqLyAgICAgICAgICAgICAgICAgIHwKICAgICBpZiAodW5saWtlbHkoZXJyKSkgeyAgICAg ICAgICAgIHwKICAgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgcmVx dWVzdF9tb2R1bGUoKSAgICAgICAgICAgICAgIHwKICAgICAgLyogc29ja2V0IGNyZWF0aW9uIGlz IGJsb2NrZWQgIHwKICAgICAgICogdGhlIG1vZHVsZSBpcyBmdWxseSBsb2FkZWQgIHwKICAgICAg ICovICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgIHNjdHBfaW5pdCAgICAgICAg ICAgICAgICAgICAgIHwKICAgICAgICBzY3RwX3Y0X3Byb3Rvc3dfaW5pdCAgICAgICAgIHwKICAg ICAgICAgaW5ldF9yZWdpc3Rlcl9wcm90b3N3ICAgICAgIHwKICAgICAgICAgIGxpc3RfYWRkX3Jj dSgmcC0+bGlzdCwgICAgIHwKICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3Blcm0pOyAgIHwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxpc3RfZm9yX2VhY2hfZW50 cnlfcmN1KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgYW5zd2Vy LCAmaW5ldHN3W3NvY2stPnR5cGVdLAogICAgICAgIHNjdHBfdjZfcHJvdG9zd19pbml0ICAgICAg ICAgfCAgICAgbGlzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgLyogaGl0LCBzbyBhc3N1bWVzIHByb3RvY29sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgKiBpcyBhbHJlYWR5IGxvYWRlZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAvKiBzb2NrZXQgY3JlYXRpb24gY29udGludWVzCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgKiBiZWZvcmUgbmV0bnMgaXMgaW5pdGlhbGl6ZWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAqLwogICAgICAgIHJlZ2lzdGVy X3Blcm5ldF9zdWJzeXMgICAgICAgfAoKU2ltcGx5IGludmVydGluZyB0aGUgaW5pdGlhbGl6YXRp b24gb3JkZXIgYmV0d2VlbgpyZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCkgYW5kIHNjdHBfdjRfcHJv dG9zd19pbml0KCkgaXMgbm90IHBvc3NpYmxlCmJlY2F1c2UgcmVnaXN0ZXJfcGVybmV0X3N1YnN5 cygpIHdpbGwgY3JlYXRlIGEgY29udHJvbCBzY3RwIHNvY2tldCwgc28KdGhlIHByb3RvY29sIG11 c3QgYmUgYWxyZWFkeSB2aXNpYmxlIGJ5IHRoZW4uIERlZmVycmluZyB0aGUgc29ja2V0CmNyZWF0 aW9uIHRvIGEgd29yay1xdWV1ZSBpcyBub3QgZ29vZCBzcGVjaWFsbHkgYmVjYXVzZSB3ZSBsb29z ZSB0aGUKYWJpbGl0eSB0byBoYW5kbGUgaXRzIGVycm9ycy4KClNvLCBhcyBzdWdnZXN0ZWQgYnkg VmxhZCwgdGhlIGZpeCBpcyB0byBzcGxpdCBuZXRucyBpbml0aWFsaXphdGlvbiBpbgp0d28gbW9t ZW50czogZGVmYXVsdHMgYW5kIGNvbnRyb2wgc29ja2V0LCBzbyB0aGF0IHRoZSBkZWZhdWx0cyBh cmUKYWxyZWFkeSBsb2FkZWQgYnkgd2hlbiB3ZSByZWdpc3RlciB0aGUgcHJvdG9jb2wsIHdoaWxl IGNvbnRyb2wgc29ja2V0CmluaXRpYWxpemF0aW9uIGlzIGtlcHQgYXQgdGhlIHNhbWUgbW9tZW50 IGl0IGlzIHRvZGF5LgoKRml4ZXM6IDRkYjY3ZTgwODY0MCAoInNjdHA6IE1ha2UgdGhlIGFkZHJl c3MgbGlzdHMgcGVyIG5ldHdvcmsgbmFtZXNwYWNlIikKU2lnbmVkLW9mZi1ieTogVmxhZCBZYXNl dmljaCA8dnlhc2V2aWNoQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFyY2VsbyBSaWNhcmRv IExlaXRuZXIgPG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9wcm90b2NvbC5j IHwgNjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9uZXQvc2N0cC9wcm90b2NvbC5jIGIvbmV0L3NjdHAvcHJvdG9jb2wuYwppbmRl eCA1OWU4MDM1Li4zYWM2MDRmIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9wcm90b2NvbC5jCisrKyBi L25ldC9zY3RwL3Byb3RvY29sLmMKQEAgLTExNjYsNyArMTE2Niw3IEBAIHN0YXRpYyB2b2lkIHNj dHBfdjRfZGVsX3Byb3RvY29sKHZvaWQpCiAJdW5yZWdpc3Rlcl9pbmV0YWRkcl9ub3RpZmllcigm c2N0cF9pbmV0YWRkcl9ub3RpZmllcik7CiB9CiAKLXN0YXRpYyBpbnQgX19uZXRfaW5pdCBzY3Rw X25ldF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKK3N0YXRpYyBpbnQgX19uZXRfaW5pdCBzY3RwX2Rl ZmF1bHRzX2luaXQoc3RydWN0IG5ldCAqbmV0KQogewogCWludCBzdGF0dXM7CiAKQEAgLTEyNTks MTIgKzEyNTksNiBAQCBzdGF0aWMgaW50IF9fbmV0X2luaXQgc2N0cF9uZXRfaW5pdChzdHJ1Y3Qg bmV0ICpuZXQpCiAKIAlzY3RwX2RiZ19vYmpjbnRfaW5pdChuZXQpOwogCi0JLyogSW5pdGlhbGl6 ZSB0aGUgY29udHJvbCBpbm9kZS9zb2NrZXQgZm9yIGhhbmRsaW5nIE9PVEIgcGFja2V0cy4gICov Ci0JaWYgKChzdGF0dXMgPSBzY3RwX2N0bF9zb2NrX2luaXQobmV0KSkpIHsKLQkJcHJfZXJyKCJG YWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgU0NUUCBjb250cm9sIHNvY2tcbiIpOwotCQlnb3RvIGVy cl9jdGxfc29ja19pbml0OwotCX0KLQogCS8qIEluaXRpYWxpemUgdGhlIGxvY2FsIGFkZHJlc3Mg bGlzdC4gKi8KIAlJTklUX0xJU1RfSEVBRCgmbmV0LT5zY3RwLmxvY2FsX2FkZHJfbGlzdCk7CiAJ c3Bpbl9sb2NrX2luaXQoJm5ldC0+c2N0cC5sb2NhbF9hZGRyX2xvY2spOwpAQCAtMTI4MCw5ICsx Mjc0LDYgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHNjdHBfbmV0X2luaXQoc3RydWN0IG5ldCAq bmV0KQogCiAJcmV0dXJuIDA7CiAKLWVycl9jdGxfc29ja19pbml0OgotCXNjdHBfZGJnX29iamNu dF9leGl0KG5ldCk7Ci0Jc2N0cF9wcm9jX2V4aXQobmV0KTsKIGVycl9pbml0X3Byb2M6CiAJY2xl YW51cF9zY3RwX21pYnMobmV0KTsKIGVycl9pbml0X21pYnM6CkBAIC0xMjkxLDE1ICsxMjgyLDEy IEBAIGVycl9zeXNjdGxfcmVnaXN0ZXI6CiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIHZv aWQgX19uZXRfZXhpdCBzY3RwX25ldF9leGl0KHN0cnVjdCBuZXQgKm5ldCkKK3N0YXRpYyB2b2lk IF9fbmV0X2V4aXQgc2N0cF9kZWZhdWx0c19leGl0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAkvKiBG cmVlIHRoZSBsb2NhbCBhZGRyZXNzIGxpc3QgKi8KIAlzY3RwX2ZyZWVfYWRkcl93cShuZXQpOwog CXNjdHBfZnJlZV9sb2NhbF9hZGRyX2xpc3QobmV0KTsKIAotCS8qIEZyZWUgdGhlIGNvbnRyb2wg ZW5kcG9pbnQuICAqLwotCWluZXRfY3RsX3NvY2tfZGVzdHJveShuZXQtPnNjdHAuY3RsX3NvY2sp OwotCiAJc2N0cF9kYmdfb2JqY250X2V4aXQobmV0KTsKIAogCXNjdHBfcHJvY19leGl0KG5ldCk7 CkBAIC0xMzA3LDkgKzEyOTUsMzIgQEAgc3RhdGljIHZvaWQgX19uZXRfZXhpdCBzY3RwX25ldF9l eGl0KHN0cnVjdCBuZXQgKm5ldCkKIAlzY3RwX3N5c2N0bF9uZXRfdW5yZWdpc3RlcihuZXQpOwog fQogCi1zdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIHNjdHBfbmV0X29wcyA9IHsKLQku aW5pdCA9IHNjdHBfbmV0X2luaXQsCi0JLmV4aXQgPSBzY3RwX25ldF9leGl0LAorc3RhdGljIHN0 cnVjdCBwZXJuZXRfb3BlcmF0aW9ucyBzY3RwX2RlZmF1bHRzX29wcyA9IHsKKwkuaW5pdCA9IHNj dHBfZGVmYXVsdHNfaW5pdCwKKwkuZXhpdCA9IHNjdHBfZGVmYXVsdHNfZXhpdCwKK307CisKK3N0 YXRpYyBpbnQgX19uZXRfaW5pdCBzY3RwX2N0cmxzb2NrX2luaXQoc3RydWN0IG5ldCAqbmV0KQor eworCWludCBzdGF0dXM7CisKKwkvKiBJbml0aWFsaXplIHRoZSBjb250cm9sIGlub2RlL3NvY2tl dCBmb3IgaGFuZGxpbmcgT09UQiBwYWNrZXRzLiAgKi8KKwlzdGF0dXMgPSBzY3RwX2N0bF9zb2Nr X2luaXQobmV0KTsKKwlpZiAoc3RhdHVzKQorCQlwcl9lcnIoIkZhaWxlZCB0byBpbml0aWFsaXpl IHRoZSBTQ1RQIGNvbnRyb2wgc29ja1xuIik7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0 aWMgdm9pZCBfX25ldF9pbml0IHNjdHBfY3RybHNvY2tfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpCit7 CisJLyogRnJlZSB0aGUgY29udHJvbCBlbmRwb2ludC4gICovCisJaW5ldF9jdGxfc29ja19kZXN0 cm95KG5ldC0+c2N0cC5jdGxfc29jayk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGVybmV0X29wZXJh dGlvbnMgc2N0cF9jdHJsc29ja19vcHMgPSB7CisJLmluaXQgPSBzY3RwX2N0cmxzb2NrX2luaXQs CisJLmV4aXQgPSBzY3RwX2N0cmxzb2NrX2V4aXQsCiB9OwogCiAvKiBJbml0aWFsaXplIHRoZSB1 bml2ZXJzZSBpbnRvIHNvbWV0aGluZyBzZW5zaWJsZS4gICovCkBAIC0xNDQyLDggKzE0NTMsMTEg QEAgc3RhdGljIF9faW5pdCBpbnQgc2N0cF9pbml0KHZvaWQpCiAJc2N0cF92NF9wZl9pbml0KCk7 CiAJc2N0cF92Nl9wZl9pbml0KCk7CiAKLQlzdGF0dXMgPSBzY3RwX3Y0X3Byb3Rvc3dfaW5pdCgp OworCXN0YXR1cyA9IHJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfZGVmYXVsdHNfb3BzKTsK KwlpZiAoc3RhdHVzKQorCQlnb3RvIGVycl9yZWdpc3Rlcl9kZWZhdWx0czsKIAorCXN0YXR1cyA9 IHNjdHBfdjRfcHJvdG9zd19pbml0KCk7CiAJaWYgKHN0YXR1cykKIAkJZ290byBlcnJfcHJvdG9z d19pbml0OwogCkBAIC0xNDUxLDkgKzE0NjUsOSBAQCBzdGF0aWMgX19pbml0IGludCBzY3RwX2lu aXQodm9pZCkKIAlpZiAoc3RhdHVzKQogCQlnb3RvIGVycl92Nl9wcm90b3N3X2luaXQ7CiAKLQlz dGF0dXMgPSByZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZzY3RwX25ldF9vcHMpOworCXN0YXR1cyA9 IHJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKIAlpZiAoc3RhdHVz KQotCQlnb3RvIGVycl9yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzOworCQlnb3RvIGVycl9yZWdpc3Rl cl9jdHJsc29jazsKIAogCXN0YXR1cyA9IHNjdHBfdjRfYWRkX3Byb3RvY29sKCk7CiAJaWYgKHN0 YXR1cykKQEAgLTE0NjksMTIgKzE0ODMsMTQgQEAgb3V0OgogZXJyX3Y2X2FkZF9wcm90b2NvbDoK IAlzY3RwX3Y0X2RlbF9wcm90b2NvbCgpOwogZXJyX2FkZF9wcm90b2NvbDoKLQl1bnJlZ2lzdGVy X3Blcm5ldF9zdWJzeXMoJnNjdHBfbmV0X29wcyk7Ci1lcnJfcmVnaXN0ZXJfcGVybmV0X3N1YnN5 czoKKwl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfY3RybHNvY2tfb3BzKTsKK2Vycl9y ZWdpc3Rlcl9jdHJsc29jazoKIAlzY3RwX3Y2X3Byb3Rvc3dfZXhpdCgpOwogZXJyX3Y2X3Byb3Rv c3dfaW5pdDoKIAlzY3RwX3Y0X3Byb3Rvc3dfZXhpdCgpOwogZXJyX3Byb3Rvc3dfaW5pdDoKKwl1 bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBfZGVmYXVsdHNfb3BzKTsKK2Vycl9yZWdpc3Rl cl9kZWZhdWx0czoKIAlzY3RwX3Y0X3BmX2V4aXQoKTsKIAlzY3RwX3Y2X3BmX2V4aXQoKTsKIAlz Y3RwX3N5c2N0bF91bnJlZ2lzdGVyKCk7CkBAIC0xNTA3LDEyICsxNTIzLDE0IEBAIHN0YXRpYyBf X2V4aXQgdm9pZCBzY3RwX2V4aXQodm9pZCkKIAlzY3RwX3Y2X2RlbF9wcm90b2NvbCgpOwogCXNj dHBfdjRfZGVsX3Byb3RvY29sKCk7CiAKLQl1bnJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJnNjdHBf bmV0X29wcyk7CisJdW5yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzKCZzY3RwX2N0cmxzb2NrX29wcyk7 CiAKIAkvKiBGcmVlIHByb3Rvc3cgcmVnaXN0cmF0aW9ucyAqLwogCXNjdHBfdjZfcHJvdG9zd19l eGl0KCk7CiAJc2N0cF92NF9wcm90b3N3X2V4aXQoKTsKIAorCXVucmVnaXN0ZXJfcGVybmV0X3N1 YnN5cygmc2N0cF9kZWZhdWx0c19vcHMpOworCiAJLyogVW5yZWdpc3RlciB3aXRoIHNvY2tldCBs YXllci4gKi8KIAlzY3RwX3Y2X3BmX2V4aXQoKTsKIAlzY3RwX3Y0X3BmX2V4aXQoKTsKLS0gCjIu MS4wCgoKRnJvbSAxZTc2MTdiOGFiODBlNzZmNGE3ZGQwOWYwMTk4ZjliOTAwOGU4NjkxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TGludXM9MjBMPUMzPUJDc3Npbmc/ PSA8bGludXMubHVlc3NpbmdAYzBkMy5ibHVlPgpEYXRlOiBGcmksIDExIFNlcCAyMDE1IDE4OjM5 OjQ4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8zMF0gYnJpZGdlOiBmaXggaWdtcHYzIC8gbWxk djIgcmVwb3J0IHBhcnNpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IGMyZDRmYmQyMTYzZTYwNzkxNWNjMDU3OThjZTdmYjdmMzExMTdjYzEgXQoK V2l0aCB0aGUgbmV3bHkgaW50cm9kdWNlZCBoZWxwZXIgZnVuY3Rpb25zIHRoZSBza2IgcHVsbGlu ZyBpcyBoaWRkZW4gaW4KdGhlIGNoZWNrc3VtbWluZyBmdW5jdGlvbiAtIGFuZCB1bmRvbmUgYmVm b3JlIHJldHVybmluZyB0byB0aGUgY2FsbGVyLgoKVGhlIElHTVB2MyBhbmQgTUxEdjIgcmVwb3J0 IHBhcnNpbmcgZnVuY3Rpb25zIGluIHRoZSBicmlkZ2Ugc3RpbGwKYXNzdW1lZCB0aGF0IHRoZSBz a2IgaXMgcG9pbnRpbmcgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgSUdNUC9NTEQKbWVzc2FnZSB3 aGlsZSBpdCBpcyBub3cga2VwdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBJUHY0LzYgaGVhZGVy LApicmVha2luZyB0aGUgbWVzc2FnZSBwYXJzaW5nIGFuZCBjcmVhdGluZyBwYWNrZXQgbG9zcy4K CkZpeGluZyB0aGlzIGJ5IHRha2luZyB0aGUgb2Zmc2V0IGJldHdlZW4gSVAgYW5kIElHTVAvTUxE IGhlYWRlciBpbnRvCmFjY291bnQsIHRvby4KCkZpeGVzOiA5YWZkODVjOWU0NTUgKCJuZXQ6IEV4 cG9ydCBJR01QL01MRCBtZXNzYWdlIHZhbGlkYXRpb24gY29kZSIpClJlcG9ydGVkLWJ5OiBUb2Jp YXMgUG93YWxvd3NraSA8dG9iaWFzLnBvd2Fsb3dza2lAZ29vZ2xlbWFpbC5jb20+ClRlc3RlZC1i eTogVG9iaWFzIFBvd2Fsb3dza2kgPHRvYmlhcy5wb3dhbG93c2tpQGdvb2dsZW1haWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBMaW51cyBMw7xzc2luZyA8bGludXMubHVlc3NpbmdAYzBkMy5ibHVlPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX211 bHRpY2FzdC5jIGIvbmV0L2JyaWRnZS9icl9tdWx0aWNhc3QuYwppbmRleCAxMjg1ZWFmLi4wM2Nk YjllIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCisrKyBiL25ldC9icmlk Z2UvYnJfbXVsdGljYXN0LmMKQEAgLTk5MSw3ICs5OTEsNyBAQCBzdGF0aWMgaW50IGJyX2lwNF9t dWx0aWNhc3RfaWdtcDNfcmVwb3J0KHN0cnVjdCBuZXRfYnJpZGdlICpiciwKIAogCWloID0gaWdt cHYzX3JlcG9ydF9oZHIoc2tiKTsKIAludW0gPSBudG9ocyhpaC0+bmdyZWMpOwotCWxlbiA9IHNp emVvZigqaWgpOworCWxlbiA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyBzaXplb2YoKmlo KTsKIAogCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgewogCQlsZW4gKz0gc2l6ZW9mKCpncmVj KTsKQEAgLTEwNTIsNyArMTA1Miw3IEBAIHN0YXRpYyBpbnQgYnJfaXA2X211bHRpY2FzdF9tbGQy X3JlcG9ydChzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsCiAKIAlpY21wNmggPSBpY21wNl9oZHIoc2ti KTsKIAludW0gPSBudG9ocyhpY21wNmgtPmljbXA2X2RhdGF1bi51bl9kYXRhMTZbMV0pOwotCWxl biA9IHNpemVvZigqaWNtcDZoKTsKKwlsZW4gPSBza2JfdHJhbnNwb3J0X29mZnNldChza2IpICsg c2l6ZW9mKCppY21wNmgpOwogCiAJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAJCV9fYmUx NiAqbnNyY3MsIF9uc3JjczsKLS0gCjIuMS4wCgoKRnJvbSBlMzQ0MTk2MThmZjNiOWY5YjE5MWY4 NDdmYTkyYTA5OTM5YzM2ZDc3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBH dWlub3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5vcmc+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMTUg MjI6NDE6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzMwXSBuZXQ6IG12bmV0YTogZml4IERN QSBidWZmZXIgdW5tYXBwaW5nIGluIG12bmV0YV9yeCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBkYWYx NThkMGQ1NDRjZWM4MGI3YjMwZGVmZjhjZmM1OWE2ZTE3NjEwIF0KClRoaXMgcGF0Y2ggZml4ZXMg YSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgdGhlIGNvbW1pdCBhODRlMzI4OTQxOTEKKCJuZXQ6 IG12bmV0YTogZml4IHJlZmlsbGluZyBmb3IgUnggRE1BIGJ1ZmZlcnMiKS4gRHVlIHRvIHRoaXMg Y29tbWl0CnRoZSBuZXdseSBhbGxvY2F0ZWQgUnggYnVmZmVycyBhcmUgRE1BLXVubWFwcGVkIGlu IHBsYWNlIG9mIHRob3NlIHBhc3NlZAp0byB0aGUgbmV0d29ya2luZyBzdGFjay4gT2J2aW91c2x5 LCB0aGlzIGNhdXNlcyBkYXRhIGNvcnJ1cHRpb25zLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGUgaXNz dWUgYnkgZW5zdXJpbmcgdGhhdCB0aGUgcmlnaHQgUnggYnVmZmVycyBhcmUKRE1BLXVubWFwcGVk LgoKUmVwb3J0ZWQtYnk6IE9yZW4gTGFza2luIDxvcmVuQGlnbmVvdXMuaW8+ClNpZ25lZC1vZmYt Ynk6IFNpbW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4KRml4ZXM6IGE4NGUz Mjg5NDE5MSAoIm5ldDogbXZuZXRhOiBmaXggcmVmaWxsaW5nIGZvciBSeCBETUEgYnVmZmVycyIp CkNjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4gIyB2My44KwpUZXN0ZWQtYnk6IE9yZW4gTGFz a2luIDxvcmVuQGlnbmVvdXMuaW8+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0 YS5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggNjJlNDhiYy4uMDNl MDUyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0xNDc5LDYgKzE0 NzksNyBAQCBzdGF0aWMgaW50IG12bmV0YV9yeChzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwLCBpbnQg cnhfdG9kbywKIAkJc3RydWN0IG12bmV0YV9yeF9kZXNjICpyeF9kZXNjID0gbXZuZXRhX3J4cV9u ZXh0X2Rlc2NfZ2V0KHJ4cSk7CiAJCXN0cnVjdCBza19idWZmICpza2I7CiAJCXVuc2lnbmVkIGNo YXIgKmRhdGE7CisJCWRtYV9hZGRyX3QgcGh5c19hZGRyOwogCQl1MzIgcnhfc3RhdHVzOwogCQlp bnQgcnhfYnl0ZXMsIGVycjsKIApAQCAtMTQ4Niw2ICsxNDg3LDcgQEAgc3RhdGljIGludCBtdm5l dGFfcngoc3RydWN0IG12bmV0YV9wb3J0ICpwcCwgaW50IHJ4X3RvZG8sCiAJCXJ4X3N0YXR1cyA9 IHJ4X2Rlc2MtPnN0YXR1czsKIAkJcnhfYnl0ZXMgPSByeF9kZXNjLT5kYXRhX3NpemUgLSAoRVRI X0ZDU19MRU4gKyBNVk5FVEFfTUhfU0laRSk7CiAJCWRhdGEgPSAodW5zaWduZWQgY2hhciAqKXJ4 X2Rlc2MtPmJ1Zl9jb29raWU7CisJCXBoeXNfYWRkciA9IHJ4X2Rlc2MtPmJ1Zl9waHlzX2FkZHI7 CiAKIAkJaWYgKCFtdm5ldGFfcnhxX2Rlc2NfaXNfZmlyc3RfbGFzdChyeF9zdGF0dXMpIHx8CiAJ CSAgICAocnhfc3RhdHVzICYgTVZORVRBX1JYRF9FUlJfU1VNTUFSWSkpIHsKQEAgLTE1MzQsNyAr MTUzNiw3IEBAIHN0YXRpYyBpbnQgbXZuZXRhX3J4KHN0cnVjdCBtdm5ldGFfcG9ydCAqcHAsIGlu dCByeF90b2RvLAogCQlpZiAoIXNrYikKIAkJCWdvdG8gZXJyX2Ryb3BfZnJhbWU7CiAKLQkJZG1h X3VubWFwX3NpbmdsZShkZXYtPmRldi5wYXJlbnQsIHJ4X2Rlc2MtPmJ1Zl9waHlzX2FkZHIsCisJ CWRtYV91bm1hcF9zaW5nbGUoZGV2LT5kZXYucGFyZW50LCBwaHlzX2FkZHIsCiAJCQkJIE1WTkVU QV9SWF9CVUZfU0laRShwcC0+cGt0X3NpemUpLCBETUFfRlJPTV9ERVZJQ0UpOwogCiAJCXJjdmRf cGt0cysrOwotLSAKMi4xLjAKCgpGcm9tIGZmOTg0MjgwMDhmZWUwOWUzNTUyYzdmOGZjNmIwZTA4 YTk1NWQwNDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvb3BhIFByYWJodSA8cm9v cGFAY3VtdWx1c25ldHdvcmtzLmNvbT4KRGF0ZTogVHVlLCAxNSBTZXAgMjAxNSAxNDo0NDoyOSAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMzBdIHJ0bmV0bGluazogY2F0Y2ggLUVPUE5PVFNVUFAg ZXJyb3JzIGZyb20KIG5kb19icmlkZ2VfZ2V0bGluawoKWyBVcHN0cmVhbSBjb21taXQgZDY0ZjY5 YjAzNzNhN2QwYmNlYzhiNWRhNzcxMjk3NzUxOGE4ZjQyYiBdCgpwcm9ibGVtIHJlcG9ydGVkOgoJ a2VybmVsIDQuMS4zCgktLS0tLS0tLS0tLS0KCSMgYnJpZGdlIHZsYW4KCXBvcnQJdmxhbiBpZHMK CWV0aDAJIDEgUFZJRCBFZ3Jlc3MgVW50YWdnZWQKCSAJOTAKCSAJOTEKCSAJOTIKCSAJOTMKCSAJ OTQKCSAJOTUKCSAJOTYKCSAJOTcKCSAJOTgKCSAJOTkKCSAJMTAwCgoJdm1icjAJIDEgUFZJRCBF Z3Jlc3MgVW50YWdnZWQKCSAJOTQKCglrZXJuZWwgNC4yCgktLS0tLS0tLS0tLQoJIyBicmlkZ2Ug dmxhbgoJcG9ydAl2bGFuIGlkcwoKbmRvX2JyaWRnZV9nZXRsaW5rIGNhbiByZXR1cm4gLUVPUE5P VFNVUFAgd2hlbiBhbiBpbnRlcmZhY2VzCm5kb19icmlkZ2VfZ2V0bGluayBvcCBpcyBzZXQgdG8g c3dpdGNoZGV2X3BvcnRfYnJpZGdlX2dldGxpbmsKYW5kIENPTkZJR19TV0lUQ0hERVYgaXMgbm90 IGRlZmluZWQuIFRoaXMgdG9kYXkgY2FuIGhhcHBlbiB0bwpib25kLCByb2NrZXIgYW5kIHRlYW0g ZGV2aWNlcy4gVGhpcyBwYXRjaCBhZGRzIC1FT1BOT1RTVVBQCmNoZWNrcyBhZnRlciBjYWxscyB0 byBuZG9fYnJpZGdlX2dldGxpbmsuCgpGaXhlczogODVmZGI5NTY3MjZmZjJhICgic3dpdGNoZGV2 OiBjdXQgb3ZlciB0byBuZXcgc3dpdGNoZGV2X3BvcnRfYnJpZGdlX2dldGxpbmsiKQpSZXBvcnRl ZC1ieTogQWxleGFuZHJlIERFUlVNSUVSIDxhZGVydW1pZXJAb2Rpc28uY29tPgpTaWduZWQtb2Zm LWJ5OiBSb29wYSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9y dG5ldGxpbmsuYyB8IDI2ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Nv cmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCBkYzAwNGIxLi4wODYx MDE4IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5l dGxpbmsuYwpAQCAtMzAyMSw2ICszMDIxLDcgQEAgc3RhdGljIGludCBydG5sX2JyaWRnZV9nZXRs aW5rKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRsaW5rX2NhbGxiYWNrICpjYikKIAl1 MzIgcG9ydGlkID0gTkVUTElOS19DQihjYi0+c2tiKS5wb3J0aWQ7CiAJdTMyIHNlcSA9IGNiLT5u bGgtPm5sbXNnX3NlcTsKIAl1MzIgZmlsdGVyX21hc2sgPSAwOworCWludCBlcnI7CiAKIAlpZiAo bmxtc2dfbGVuKGNiLT5ubGgpID4gc2l6ZW9mKHN0cnVjdCBpZmluZm9tc2cpKSB7CiAJCXN0cnVj dCBubGF0dHIgKmV4dGZpbHQ7CkBAIC0zMDQxLDIwICszMDQyLDI1IEBAIHN0YXRpYyBpbnQgcnRu bF9icmlkZ2VfZ2V0bGluayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxs YmFjayAqY2IpCiAJCXN0cnVjdCBuZXRfZGV2aWNlICpicl9kZXYgPSBuZXRkZXZfbWFzdGVyX3Vw cGVyX2Rldl9nZXQoZGV2KTsKIAogCQlpZiAoYnJfZGV2ICYmIGJyX2Rldi0+bmV0ZGV2X29wcy0+ bmRvX2JyaWRnZV9nZXRsaW5rKSB7Ci0JCQlpZiAoaWR4ID49IGNiLT5hcmdzWzBdICYmCi0JCQkg ICAgYnJfZGV2LT5uZXRkZXZfb3BzLT5uZG9fYnJpZGdlX2dldGxpbmsoCi0JCQkJICAgIHNrYiwg cG9ydGlkLCBzZXEsIGRldiwgZmlsdGVyX21hc2ssCi0JCQkJICAgIE5MTV9GX01VTFRJKSA8IDAp Ci0JCQkJYnJlYWs7CisJCQlpZiAoaWR4ID49IGNiLT5hcmdzWzBdKSB7CisJCQkJZXJyID0gYnJf ZGV2LT5uZXRkZXZfb3BzLT5uZG9fYnJpZGdlX2dldGxpbmsoCisJCQkJCQlza2IsIHBvcnRpZCwg c2VxLCBkZXYsCisJCQkJCQlmaWx0ZXJfbWFzaywgTkxNX0ZfTVVMVEkpOworCQkJCWlmIChlcnIg PCAwICYmIGVyciAhPSAtRU9QTk9UU1VQUCkKKwkJCQkJYnJlYWs7CisJCQl9CiAJCQlpZHgrKzsK IAkJfQogCiAJCWlmIChvcHMtPm5kb19icmlkZ2VfZ2V0bGluaykgewotCQkJaWYgKGlkeCA+PSBj Yi0+YXJnc1swXSAmJgotCQkJICAgIG9wcy0+bmRvX2JyaWRnZV9nZXRsaW5rKHNrYiwgcG9ydGlk LCBzZXEsIGRldiwKLQkJCQkJCSAgICBmaWx0ZXJfbWFzaywKLQkJCQkJCSAgICBOTE1fRl9NVUxU SSkgPCAwKQotCQkJCWJyZWFrOworCQkJaWYgKGlkeCA+PSBjYi0+YXJnc1swXSkgeworCQkJCWVy ciA9IG9wcy0+bmRvX2JyaWRnZV9nZXRsaW5rKHNrYiwgcG9ydGlkLAorCQkJCQkJCSAgICAgIHNl cSwgZGV2LAorCQkJCQkJCSAgICAgIGZpbHRlcl9tYXNrLAorCQkJCQkJCSAgICAgIE5MTV9GX01V TFRJKTsKKwkJCQlpZiAoZXJyIDwgMCAmJiBlcnIgIT0gLUVPUE5PVFNVUFApCisJCQkJCWJyZWFr OworCQkJfQogCQkJaWR4Kys7CiAJCX0KIAl9Ci0tIAoyLjEuMAoKCkZyb20gNWQxMWQ4OTlmMjVi MjA5MDVjMmVhMjFjNDZlZjhjM2RkZjU0ZTU3YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE1IFNlcCAy MDE1IDE4OjI5OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNS8zMF0gbmV0L21seDRfZW46IHJl YWxseSBhbGxvdyB0byBjaGFuZ2UgUlNTIGtleQoKWyBVcHN0ZWFtIGNvbW1pdCA0NjcxZmM2ZDQ3 ZTBhMDEwOGZlMjRhNGQ4MzAzNDdkNmE2ZWY0YWE3IF0KCldoZW4gY2hhbmdpbmcgcnNzIGtleSwg d2UgZG8gbm90IHdhbnQgdG8gb3ZlcndyaXRlIHVzZXIgcHJvdmlkZWQga2V5CmJ5IHRoZSBvbmUg cHJvdmlkZWQgYnkgbmV0ZGV2X3Jzc19rZXlfZmlsbCgpLCB3aGljaCBpcyB0aGUgaG9zdCByYW5k b20Ka2V5IGdlbmVyYXRlZCBhdCBib290IHRpbWUuCgpGaXhlczogOTQ3Y2JiMGFjMjQyICgibmV0 L21seDRfZW46IFN1cHBvcnQgZm9yIGNvbmZpZ3VyYWJsZSBSU1MgaGFzaCBmdW5jdGlvbiIpClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEV5YWwg UGVycnkgPGV5YWxwZUBtZWxsYW5veC5jb20+CkNDOiBBbWlyIFZhZGFpIDxhbWlydkBtZWxsYW5v eC5jb20+CkFja2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L2VuX3J4LmMgfCAyIC0tCiAxIGZpbGUgY2hh bmdlZCwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg0L2VuX3J4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0 L2VuX3J4LmMKaW5kZXggOWMxNDVkZC4uNGY5NWZhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvZW5fcnguYwpAQCAtMTI1MCw4ICsxMjUwLDYgQEAgaW50IG1seDRfZW5f Y29uZmlnX3Jzc19zdGVlcihzdHJ1Y3QgbWx4NF9lbl9wcml2ICpwcml2KQogCQlyc3NfY29udGV4 dC0+aGFzaF9mbiA9IE1MWDRfUlNTX0hBU0hfVE9QOwogCQltZW1jcHkocnNzX2NvbnRleHQtPnJz c19rZXksIHByaXYtPnJzc19rZXksCiAJCSAgICAgICBNTFg0X0VOX1JTU19LRVlfU0laRSk7Ci0J CW5ldGRldl9yc3Nfa2V5X2ZpbGwocnNzX2NvbnRleHQtPnJzc19rZXksCi0JCQkJICAgIE1MWDRf RU5fUlNTX0tFWV9TSVpFKTsKIAl9IGVsc2UgewogCQllbl9lcnIocHJpdiwgIlVua25vd24gUlNT IGhhc2ggZnVuY3Rpb24gcmVxdWVzdGVkXG4iKTsKIAkJZXJyID0gLUVJTlZBTDsKLS0gCjIuMS4w CgoKRnJvbSBjOGZiNmM4OWE0MzJiNzA1NWVlZDJmY2U5NDZiYzY2MGEyYzZmNDk4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5j b20+CkRhdGU6IEZyaSwgMTggU2VwIDIwMTUgMTM6NDE6MDkgKzAzMDAKU3ViamVjdDogW1BBVENI IDE2LzMwXSBtYWN2dGFwOiBmaXggVFVOU0VUU05EQlVGIHZhbHVlcyA+IDY0awoKWyBVcHN0cmVh bSBjb21taXQgM2VhNzkyNDllODFlNWVkMDUxZjJlNjQ4MGNiZGU4OTZkOTkwNDZlOCBdCgpVcG9u IFRVTlNFVFNOREJVRiwgIG1hY3Z0YXAgcmVhZHMgdGhlIHJlcXVlc3RlZCBzbmRidWYgc2l6ZSBp bnRvCmEgbG9jYWwgdmFyaWFibGUgdS4KY29tbWl0IDM5ZWM3ZGU3MDkyYiAoIm1hY3Z0YXA6IGZp eCB1bmluaXRpYWxpemVkIGFjY2VzcyBvbgpUVU5TRVRJRkYiKSBjaGFuZ2VkIGl0cyB0eXBlIHRv IHUxNiAod2hpY2ggaXMgdGhlIHJpZ2h0IHRoaW5nIHRvCmRvIGZvciBhbGwgb3RoZXIgbWFjdnRh cCBpb2N0bHMpLCBicmVha2luZyBhbGwgdmFsdWVzID4gNjRrLgoKVGhlIHZhbHVlIG9mIFRVTlNF VFNOREJVRiBpcyBhY3R1YWxseSBhIHNpZ25lZCAzMiBiaXQgaW50ZWdlciwgc28KdGhlIHJpZ2h0 IHRoaW5nIHRvIGRvIGlzIHRvIHJlYWQgaXQgaW50byBhbiBpbnQuCgpDYzogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpGaXhlczogMzllYzdkZTcwOTJiICgibWFjdnRhcDog Zml4IHVuaW5pdGlhbGl6ZWQgYWNjZXNzIG9uIFRVTlNFVElGRiIpClJlcG9ydGVkLWJ5OiBNYXJr IEEuIFBlbG9xdWluCkJpc2VjdGVkLWJ5OiBNYXR0aGV3IFJvc2F0byA8bWpyb3NhdG9AbGludXgu dm5ldC5pYm0uY29tPgpSZXBvcnRlZC1ieTogQ2hyaXN0aWFuIEJvcm50cmFlZ2VyIDxib3JudHJh ZWdlckBkZS5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFMuIFRzaXJraW4gPG1zdEBy ZWRoYXQuY29tPgpUZXN0ZWQtYnk6ICBNYXR0aGV3IFJvc2F0byA8bWpyb3NhdG9AbGludXgudm5l dC5pYm0uY29tPgpBY2tlZC1ieTogQ2hyaXN0aWFuIEJvcm50cmFlZ2VyIDxib3JudHJhZWdlckBk ZS5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjdnRhcC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L21hY3Z0YXAuYyBiL2RyaXZlcnMvbmV0L21hY3Z0YXAuYwppbmRleCBlZGQ3NzM0Li4yNDg0 NzhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWN2dGFwLmMKKysrIGIvZHJpdmVycy9uZXQv bWFjdnRhcC5jCkBAIC0xMTExLDEwICsxMTExLDEwIEBAIHN0YXRpYyBsb25nIG1hY3Z0YXBfaW9j dGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCXJldHVybiAwOwogCiAJ Y2FzZSBUVU5TRVRTTkRCVUY6Ci0JCWlmIChnZXRfdXNlcih1LCB1cCkpCisJCWlmIChnZXRfdXNl cihzLCBzcCkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAotCQlxLT5zay5za19zbmRidWYgPSB1Owor CQlxLT5zay5za19zbmRidWYgPSBzOwogCQlyZXR1cm4gMDsKIAogCWNhc2UgVFVOR0VUVk5FVEhE UlNaOgotLSAKMi4xLjAKCgpGcm9tIDIyYmVkNjU0NDI0OWZhOTAzMjYwYTVmZWEyODIwMmRiOTkw YmZhMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhlcmJlcnQgWHUgPGhlcmJlcnRA Z29uZG9yLmFwYW5hLm9yZy5hdT4KRGF0ZTogRnJpLCAxOCBTZXAgMjAxNSAxOToxNjo1MCArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMTcvMzBdIG5ldGxpbms6IEZpeCBhdXRvYmluZCByYWNlIGNvbmRp dGlvbiB0aGF0IGxlYWRzIHRvIHplcm8KIHBvcnQgSUQKClsgVXBzdHJlYW0gY29tbWl0IDFmNzcw YzBhMDlkYTg1NWEyYjUxYWY2ZDE5ZGU5N2ZiOTU1ZWNhODUgXQoKVGhlIGNvbW1pdCBjMGJiMDdk ZjdkOTgxZTQwOTE0MzI3NTRlMzBjOWM3MjBlMmMwYzc4ICgibmV0bGluazoKUmVzZXQgcG9ydGlk IGFmdGVyIG5ldGxpbmtfaW5zZXJ0IGZhaWx1cmUiKSBpbnRyb2R1Y2VkIGEgcmFjZQpjb25kaXRp b24gd2hlcmUgaWYgdHdvIHRocmVhZHMgdHJ5IHRvIGF1dG9iaW5kIHRoZSBzYW1lIHNvY2tldApv bmUgb2YgdGhlbSBtYXkgZW5kIHVwIHdpdGggYSB6ZXJvIHBvcnQgSUQuICBUaGlzIGxlZCB0byBr ZXJuZWwKZGVhZGxvY2tzIHRoYXQgd2VyZSBvYnNlcnZlZCBieSBtdWx0aXBsZSBwZW9wbGUuCgpU aGlzIHBhdGNoIHJldmVydHMgdGhhdCBjb21taXQgYW5kIGluc3RlYWQgZml4ZXMgaXQgYnkgaW50 cm9kdWNpbmcKYSBzZXBhcnRlIHJoYXNoX3BvcnRpZCB2YXJpYWJsZSBzbyB0aGF0IHRoZSByZWFs IHBvcnRpZCBpcyBvbmx5IHNldAphZnRlciB0aGUgc29ja2V0IGhhcyBiZWVuIHN1Y2Nlc3NmdWxs eSBoYXNoZWQuCgpGaXhlczogYzBiYjA3ZGY3ZDk4ICgibmV0bGluazogUmVzZXQgcG9ydGlkIGFm dGVyIG5ldGxpbmtfaW5zZXJ0IGZhaWx1cmUiKQpSZXBvcnRlZC1ieTogVGVqdW4gSGVvIDx0akBr ZXJuZWwub3JnPgpSZXBvcnRlZC1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZv dW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5h cGFuYS5vcmcuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCAxMiArKysrKysrLS0tLS0K IG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuaCB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2FmX25l dGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCBiYmQ1ZDQzLi40MmRlMzg1 IDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsv YWZfbmV0bGluay5jCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBzdGF0aWMgaW5saW5lIGludCBuZXRs aW5rX2NvbXBhcmUoc3RydWN0IHJoYXNodGFibGVfY29tcGFyZV9hcmcgKmFyZywKIAljb25zdCBz dHJ1Y3QgbmV0bGlua19jb21wYXJlX2FyZyAqeCA9IGFyZy0+a2V5OwogCWNvbnN0IHN0cnVjdCBu ZXRsaW5rX3NvY2sgKm5sayA9IHB0cjsKIAotCXJldHVybiBubGstPnBvcnRpZCAhPSB4LT5wb3J0 aWQgfHwKKwlyZXR1cm4gbmxrLT5yaGFzaF9wb3J0aWQgIT0geC0+cG9ydGlkIHx8CiAJICAgICAg ICFuZXRfZXEoc29ja19uZXQoJm5say0+c2spLCByZWFkX3BuZXQoJngtPnBuZXQpKTsKIH0KIApA QCAtMTA0NSw3ICsxMDQ1LDcgQEAgc3RhdGljIGludCBfX25ldGxpbmtfaW5zZXJ0KHN0cnVjdCBu ZXRsaW5rX3RhYmxlICp0YWJsZSwgc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBuZXRsaW5r X2NvbXBhcmVfYXJnIGFyZzsKIAotCW5ldGxpbmtfY29tcGFyZV9hcmdfaW5pdCgmYXJnLCBzb2Nr X25ldChzayksIG5sa19zayhzayktPnBvcnRpZCk7CisJbmV0bGlua19jb21wYXJlX2FyZ19pbml0 KCZhcmcsIHNvY2tfbmV0KHNrKSwgbmxrX3NrKHNrKS0+cmhhc2hfcG9ydGlkKTsKIAlyZXR1cm4g cmhhc2h0YWJsZV9sb29rdXBfaW5zZXJ0X2tleSgmdGFibGUtPmhhc2gsICZhcmcsCiAJCQkJCSAg ICAmbmxrX3NrKHNrKS0+bm9kZSwKIAkJCQkJICAgIG5ldGxpbmtfcmhhc2h0YWJsZV9wYXJhbXMp OwpAQCAtMTEwNyw3ICsxMTA3LDcgQEAgc3RhdGljIGludCBuZXRsaW5rX2luc2VydChzdHJ1Y3Qg c29jayAqc2ssIHUzMiBwb3J0aWQpCiAJICAgIHVubGlrZWx5KGF0b21pY19yZWFkKCZ0YWJsZS0+ aGFzaC5uZWxlbXMpID49IFVJTlRfTUFYKSkKIAkJZ290byBlcnI7CiAKLQlubGtfc2soc2spLT5w b3J0aWQgPSBwb3J0aWQ7CisJbmxrX3NrKHNrKS0+cmhhc2hfcG9ydGlkID0gcG9ydGlkOwogCXNv Y2tfaG9sZChzayk7CiAKIAllcnIgPSBfX25ldGxpbmtfaW5zZXJ0KHRhYmxlLCBzayk7CkBAIC0x MTE5LDEwICsxMTE5LDEyIEBAIHN0YXRpYyBpbnQgbmV0bGlua19pbnNlcnQoc3RydWN0IHNvY2sg KnNrLCB1MzIgcG9ydGlkKQogCQkJZXJyID0gLUVPVkVSRkxPVzsKIAkJaWYgKGVyciA9PSAtRUVY SVNUKQogCQkJZXJyID0gLUVBRERSSU5VU0U7Ci0JCW5sa19zayhzayktPnBvcnRpZCA9IDA7CiAJ CXNvY2tfcHV0KHNrKTsKKwkJZ290byBlcnI7CiAJfQogCisJbmxrX3NrKHNrKS0+cG9ydGlkID0g cG9ydGlkOworCiBlcnI6CiAJcmVsZWFzZV9zb2NrKHNrKTsKIAlyZXR1cm4gZXJyOwpAQCAtMzIz Myw3ICszMjM1LDcgQEAgc3RhdGljIGlubGluZSB1MzIgbmV0bGlua19oYXNoKGNvbnN0IHZvaWQg KmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVkKQogCWNvbnN0IHN0cnVjdCBuZXRsaW5rX3NvY2sgKm5s ayA9IGRhdGE7CiAJc3RydWN0IG5ldGxpbmtfY29tcGFyZV9hcmcgYXJnOwogCi0JbmV0bGlua19j b21wYXJlX2FyZ19pbml0KCZhcmcsIHNvY2tfbmV0KCZubGstPnNrKSwgbmxrLT5wb3J0aWQpOwor CW5ldGxpbmtfY29tcGFyZV9hcmdfaW5pdCgmYXJnLCBzb2NrX25ldCgmbmxrLT5zayksIG5say0+ cmhhc2hfcG9ydGlkKTsKIAlyZXR1cm4gamhhc2gyKCh1MzIgKikmYXJnLCBuZXRsaW5rX2NvbXBh cmVfYXJnX2xlbiAvIHNpemVvZih1MzIpLCBzZWVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L25l dGxpbmsvYWZfbmV0bGluay5oIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5oCmluZGV4IGRmOWEw NjAuLjgwYjJiNzUgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaAorKysgYi9u ZXQvbmV0bGluay9hZl9uZXRsaW5rLmgKQEAgLTI1LDYgKzI1LDcgQEAgc3RydWN0IG5ldGxpbmtf cmluZyB7CiBzdHJ1Y3QgbmV0bGlua19zb2NrIHsKIAkvKiBzdHJ1Y3Qgc29jayBoYXMgdG8gYmUg dGhlIGZpcnN0IG1lbWJlciBvZiBuZXRsaW5rX3NvY2sgKi8KIAlzdHJ1Y3Qgc29jawkJc2s7CisJ dTMyCQkJcmhhc2hfcG9ydGlkOwogCXUzMgkJCXBvcnRpZDsKIAl1MzIJCQlkc3RfcG9ydGlkOwog CXUzMgkJCWRzdF9ncm91cDsKLS0gCjIuMS4wCgoKRnJvbSBhNWM1ZGVhMjZlNTBmY2ZjMmI0NTUz Yzc4ZGY4NzU1NTVmNWEyMGZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZXJiZXJ0 IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CkRhdGU6IFR1ZSwgMjIgU2VwIDIwMTUg MTE6Mzg6NTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDE4LzMwXSBuZXRsaW5rOiBSZXBsYWNlIHJo YXNoX3BvcnRpZCB3aXRoIGJvdW5kCgpbIFVwc3RyZWFtIGNvbW1pdCBkYTMxNGM5OTIzZmVkNTUz YTAwNzc4NWE5MDFmZDM5NWI3ZWI2YzE5IF0KCk9uIE1vbiwgU2VwIDIxLCAyMDE1IGF0IDAyOjIw OjIyUE0gLTA0MDAsIFRlanVuIEhlbyB3cm90ZToKPgo+IHN0b3JlX3JlbGVhc2UgYW5kIGxvYWRf YWNxdWlyZSBhcmUgZGlmZmVyZW50IGZyb20gdGhlIHVzdWFsIG1lbW9yeQo+IGJhcnJpZXJzIGFu ZCBjYW4ndCBiZSBwYWlyZWQgdGhpcyB3YXkuICBZb3UgaGF2ZSB0byBwYWlyIHN0b3JlX3JlbGVh c2UKPiBhbmQgbG9hZF9hY3F1aXJlLiAgQmVzaWRlcywgaXQgaXNuJ3QgYSBwYXJ0aWN1bGFybHkg Z29vZCBpZGVhIHRvCgpPSyBJJ3ZlIGRlY2lkZWQgdG8gZHJvcCB0aGUgYWNxdWlyZS9yZWxlYXNl IGhlbHBlcnMgYXMgdGhleSBkb24ndApoZWxwIHVzIGF0IGFsbCBhbmQgc2ltcGx5IHBlc3NpbWlz ZXMgdGhlIGNvZGUgYnkgdXNpbmcgZnVsbCBtZW1vcnkKYmFycmllcnMgKG9uIHNvbWUgYXJjaGl0 ZWN0dXJlcykgd2hlcmUgb25seSBhIHdyaXRlIG9yIHJlYWQgYmFycmllcgppcyBuZWVkZWQuCgo+ IGRlcGVuZCBvbiBtZW1vcnkgYmFycmllcnMgZW1iZWRkZWQgaW4gb3RoZXIgZGF0YSBzdHJ1Y3R1 cmVzIGxpa2UgdGhlCj4gYWJvdmUuICBIZXJlLCBlc3BlY2lhbGx5LCByaGFzaHRhYmxlX2luc2Vy dCgpIHdvdWxkIGhhdmUgd3JpdGUgYmFycmllcgo+ICpiZWZvcmUqIHRoZSBlbnRyeSBpcyBoYXNo ZWQgbm90IG5lY2Vzc2FyaWx5ICphZnRlciosIHdoaWNoIG1lYW5zIHRoYXQKPiBpbiB0aGUgYWJv dmUgY2FzZSwgYSBzb2NrZXQgd2hpY2ggYXBwZWFycyB0byBoYXZlIHNldCBib3VuZCB0byBhCj4g cmVhZGVyIG1pZ2h0IG5vdCB2aXNpYmxlIHdoZW4gdGhlIHJlYWRlciB0cmllcyB0byBsb29rIHVw IHRoZSBzb2NrZXQKPiBvbiB0aGUgaGFzaHRhYmxlLgoKQnV0IHlvdSBhcmUgcmlnaHQgd2UgZG8g bmVlZCBhbiBleHBsaWNpdCB3cml0ZSBiYXJyaWVyIGhlcmUgdG8KZW5zdXJlIHRoYXQgdGhlIGhh c2hpbmcgaXMgdmlzaWJsZS4KCj4gVGhlcmUncyBubyByZWFzb24gdG8gYmUgb3Zlcmx5IHNtYXJ0 IGhlcmUuICBUaGlzIGlzbid0IGEgY3JhenkgaG90Cj4gcGF0aCwgd3JpdGUgYmFycmllcnMgdGVu ZCB0byBiZSB2ZXJ5IGNoZWFwLCBzdG9yZV9yZWxlYXNlIG1vcmUgc28uCj4gUGxlYXNlIGp1c3Qg ZG8gc21wX3N0b3JlX3JlbGVhc2UoKSBhbmQgbm90ZSB3aGF0IGl0J3MgcGFpcmVkIHdpdGguCgpJ dCdzIG5vdCBhYm91dCBiZWluZyBvdmVybHkgc21hcnQuICBJdCdzIGFib3V0IGFjdHVhbGx5IHVu ZGVyc3RhbmRpbmcKd2hhdCdzIGdvaW5nIG9uIHdpdGggdGhlIGNvZGUuICBJJ3ZlIHNlZW4gdG9v IG1hbnkgaW5zdGFuY2VzIG9mCnBlb3BsZSBzaW1wbHkgc3ByaW5rbGluZyBzeW5jaHJvbmlzYXRp b24gcHJpbWl0aXZlcyBhcm91bmQgd2l0aG91dAphbnkga25vd2xlZGdlIG9mIHdoYXQgaXMgaGFw cGVuaW5nIHVuZGVybmVhdGgsIHdoaWNoIGlzIGp1c3QgYSByZWNpcGUKZm9yIGNyZWF0aW5nIGhh cmQtdG8tZGVidWcgcmFjZXMuCgo+ID4gQEAgLTE1MzksNyArMTU0Niw3IEBAIHN0YXRpYyBpbnQg bmV0bGlua19iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwK PiA+ICAJCX0KPiA+ICAJfQo+ID4KPiA+IC0JaWYgKCFubGstPnBvcnRpZCkgewo+ID4gKwlpZiAo IW5say0+Ym91bmQpIHsKPgo+IEkgZG9uJ3QgdGhpbmsgeW91IGNhbiBza2lwIGxvYWRfYWNxdWly ZSBoZXJlIGp1c3QgYmVjYXVzZSB0aGlzIGlzIHRoZQo+IHNlY29uZCBkZXJlZiBvZiB0aGUgdmFy aWFibGUuICBUaGF0IGRvZXNuJ3QgY2hhbmdlIGFueXRoaW5nLiAgUmFjZQo+IGNvbmRpdGlvbiBj b3VsZCBzdGlsbCBoYXBwZW4gYmV0d2VlbiB0aGUgZmlyc3QgYW5kIHNlY29uZCB0ZXN0cyBhbmQK PiBza2lwcGluZyB0aGUgc2Vjb25kIHdvdWxkIGxlYWQgdG8gdGhlIHNhbWUga2luZCBvZiBidWcu CgpUaGUgcmVhc29uIHRoaXMgb25lIGlzIE9LIGlzIGJlY2F1c2Ugd2UgZG8gbm90IHVzZSBubGst PnBvcnRpZCBvcgp0cnkgdG8gZ2V0IG5sayBmcm9tIHRoZSBoYXNoIHRhYmxlIGJlZm9yZSB3ZSBy ZXR1cm4gdG8gdXNlci1zcGFjZS4KCkhvd2V2ZXIsIHRoZXJlIGlzIGEgcmVhbCBidWcgaGVyZSB0 aGF0IG5vbmUgb2YgdGhlc2UgYWNxdWlyZS9yZWxlYXNlCmhlbHBlcnMgZGlzY292ZXJlZC4gIFRo ZSB0d28gYm91bmQgdGVzdHMgaGVyZSB1c2VkIHRvIGJlIGEgc2luZ2xlCm9uZS4gIE5vdyB0aGF0 IHRoZXkgYXJlIHNlcGFyYXRlIGl0IGlzIGVudGlyZWx5IHBvc3NpYmxlIGZvciBhbm90aGVyCnRo cmVhZCB0byBjb21lIGluIHRoZSBtaWRkbGUgYW5kIGJpbmQgdGhlIHNvY2tldC4gIFNvIHdlIG5l ZWQgdG8KcmVwZWF0IHRoZSBwb3J0aWQgY2hlY2sgaW4gb3JkZXIgdG8gbWFpbnRhaW4gY29uc2lz dGVuY3kuCgo+ID4gQEAgLTE1ODcsNyArMTU5NCw3IEBAIHN0YXRpYyBpbnQgbmV0bGlua19jb25u ZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKPiA+ICAJICAg ICFuZXRsaW5rX2FsbG93ZWQoc29jaywgTkxfQ0ZHX0ZfTk9OUk9PVF9TRU5EKSkKPiA+ICAJCXJl dHVybiAtRVBFUk07Cj4gPgo+ID4gLQlpZiAoIW5say0+cG9ydGlkKQo+ID4gKwlpZiAoIW5say0+ Ym91bmQpCj4KPiBEb24ndCB3ZSBuZWVkIGxvYWRfYWNxdWlyZSBoZXJlIHRvbz8gIElzIHRoaXMg cGF0aCBob2xkaW5nIGEgbG9jawo+IHdoaWNoIG1ha2VzIHRoYXQgdW5uZWNlc3Nhcnk/CgpEaXR0 by4KCi0tLTg8LS0tClRoZSBjb21taXQgMWY3NzBjMGEwOWRhODU1YTJiNTFhZjZkMTlkZTk3ZmI5 NTVlY2E4NSAoIm5ldGxpbms6CkZpeCBhdXRvYmluZCByYWNlIGNvbmRpdGlvbiB0aGF0IGxlYWRz IHRvIHplcm8gcG9ydCBJRCIpIGNyZWF0ZWQKc29tZSBuZXcgcmFjZXMgdGhhdCBjYW4gb2NjdXIg ZHVlIHRvIGluY29uY3Npc3RlbmNpZXMgYmV0d2VlbiB0aGUKdHdvIHBvcnQgSURzLgoKVGVqdW4g aXMgcmlnaHQgdGhhdCBhIGJhcnJpZXIgaXMgdW5hdm9pZGFibGUuICBUaGVyZWZvcmUgSSBhbQpy ZXZlcnRpbmcgdG8gdGhlIG9yaWdpbmFsIHBhdGNoIHRoYXQgdXNlZCBhIGJvb2xlYW4gdG8gaW5k aWNhdGUKdGhhdCBhIHVzZXIgbmV0bGluayBzb2NrZXQgaGFzIGJlZW4gYm91bmQuCgpCYXJyaWVy cyBoYXZlIGJlZW4gYWRkZWQgd2hlcmUgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IGEgdmFsaWQK cG9ydGlkIGFuZCB0aGUgaGFzaGVkIHNvY2tldCBpcyB2aXNpYmxlLgoKSSBoYXZlIGFsc28gY2hh bmdlZCBuZXRsaW5rX2luc2VydCB0byBvbmx5IHJldHVybiBFQlVTWSBpZiB0aGUKc29ja2V0IGlz IGJvdW5kIHRvIGEgcG9ydGlkIGRpZmZlcmVudCB0byB0aGUgcmVxdWVzdGVkIG9uZS4gIFRoaXMK Y29tYmluZWQgd2l0aCBvbmx5IHJlYWRpbmcgbmxrLT5ib3VuZCBvbmNlIGluIG5ldGxpbmtfYmlu ZCBmaXhlcwphIHJhY2Ugd2hlcmUgdHdvIHRocmVhZHMgdGhhdCBiaW5kIHRoZSBzb2NrZXQgYXQg dGhlIHNhbWUgdGltZQp3aXRoIGRpZmZlcmVudCBwb3J0IElEcyBtYXkgYm90aCBzdWNjZWVkLgoK Rml4ZXM6IDFmNzcwYzBhMDlkYSAoIm5ldGxpbms6IEZpeCBhdXRvYmluZCByYWNlIGNvbmRpdGlv biB0aGF0IGxlYWRzIHRvIHplcm8gcG9ydCBJRCIpClJlcG9ydGVkLWJ5OiBUZWp1biBIZW8gPHRq QGtlcm5lbC5vcmc+ClJlcG9ydGVkLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgt Zm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9y LmFwYW5hLm9yZy5hdT4KTmFja2VkLWJ5OiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv bmV0bGluay9hZl9uZXRsaW5rLmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuaCB8ICAyICstCiAyIGZpbGVzIGNoYW5n ZWQsIDI5IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9u ZXRsaW5rL2FmX25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCA0MmRl Mzg1Li4wODU3ZjcyIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKKysrIGIv bmV0L25ldGxpbmsvYWZfbmV0bGluay5jCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBzdGF0aWMgaW5s aW5lIGludCBuZXRsaW5rX2NvbXBhcmUoc3RydWN0IHJoYXNodGFibGVfY29tcGFyZV9hcmcgKmFy ZywKIAljb25zdCBzdHJ1Y3QgbmV0bGlua19jb21wYXJlX2FyZyAqeCA9IGFyZy0+a2V5OwogCWNv bnN0IHN0cnVjdCBuZXRsaW5rX3NvY2sgKm5sayA9IHB0cjsKIAotCXJldHVybiBubGstPnJoYXNo X3BvcnRpZCAhPSB4LT5wb3J0aWQgfHwKKwlyZXR1cm4gbmxrLT5wb3J0aWQgIT0geC0+cG9ydGlk IHx8CiAJICAgICAgICFuZXRfZXEoc29ja19uZXQoJm5say0+c2spLCByZWFkX3BuZXQoJngtPnBu ZXQpKTsKIH0KIApAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgc3RhdGljIGludCBfX25ldGxpbmtfaW5z ZXJ0KHN0cnVjdCBuZXRsaW5rX3RhYmxlICp0YWJsZSwgc3RydWN0IHNvY2sgKnNrKQogewogCXN0 cnVjdCBuZXRsaW5rX2NvbXBhcmVfYXJnIGFyZzsKIAotCW5ldGxpbmtfY29tcGFyZV9hcmdfaW5p dCgmYXJnLCBzb2NrX25ldChzayksIG5sa19zayhzayktPnJoYXNoX3BvcnRpZCk7CisJbmV0bGlu a19jb21wYXJlX2FyZ19pbml0KCZhcmcsIHNvY2tfbmV0KHNrKSwgbmxrX3NrKHNrKS0+cG9ydGlk KTsKIAlyZXR1cm4gcmhhc2h0YWJsZV9sb29rdXBfaW5zZXJ0X2tleSgmdGFibGUtPmhhc2gsICZh cmcsCiAJCQkJCSAgICAmbmxrX3NrKHNrKS0+bm9kZSwKIAkJCQkJICAgIG5ldGxpbmtfcmhhc2h0 YWJsZV9wYXJhbXMpOwpAQCAtMTA5OCw4ICsxMDk4LDggQEAgc3RhdGljIGludCBuZXRsaW5rX2lu c2VydChzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwb3J0aWQpCiAKIAlsb2NrX3NvY2soc2spOwogCi0J ZXJyID0gLUVCVVNZOwotCWlmIChubGtfc2soc2spLT5wb3J0aWQpCisJZXJyID0gbmxrX3NrKHNr KS0+cG9ydGlkID09IHBvcnRpZCA/IDAgOiAtRUJVU1k7CisJaWYgKG5sa19zayhzayktPmJvdW5k KQogCQlnb3RvIGVycjsKIAogCWVyciA9IC1FTk9NRU07CkBAIC0xMTA3LDcgKzExMDcsNyBAQCBz dGF0aWMgaW50IG5ldGxpbmtfaW5zZXJ0KHN0cnVjdCBzb2NrICpzaywgdTMyIHBvcnRpZCkKIAkg ICAgdW5saWtlbHkoYXRvbWljX3JlYWQoJnRhYmxlLT5oYXNoLm5lbGVtcykgPj0gVUlOVF9NQVgp KQogCQlnb3RvIGVycjsKIAotCW5sa19zayhzayktPnJoYXNoX3BvcnRpZCA9IHBvcnRpZDsKKwlu bGtfc2soc2spLT5wb3J0aWQgPSBwb3J0aWQ7CiAJc29ja19ob2xkKHNrKTsKIAogCWVyciA9IF9f bmV0bGlua19pbnNlcnQodGFibGUsIHNrKTsKQEAgLTExMjMsNyArMTEyMyw5IEBAIHN0YXRpYyBp bnQgbmV0bGlua19pbnNlcnQoc3RydWN0IHNvY2sgKnNrLCB1MzIgcG9ydGlkKQogCQlnb3RvIGVy cjsKIAl9CiAKLQlubGtfc2soc2spLT5wb3J0aWQgPSBwb3J0aWQ7CisJLyogV2UgbmVlZCB0byBl bnN1cmUgdGhhdCB0aGUgc29ja2V0IGlzIGhhc2hlZCBhbmQgdmlzaWJsZS4gKi8KKwlzbXBfd21i KCk7CisJbmxrX3NrKHNrKS0+Ym91bmQgPSBwb3J0aWQ7CiAKIGVycjoKIAlyZWxlYXNlX3NvY2so c2spOwpAQCAtMTUwOSw2ICsxNTExLDcgQEAgc3RhdGljIGludCBuZXRsaW5rX2JpbmQoc3RydWN0 IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCXN0cnVjdCBzb2NrYWRkcl9u bCAqbmxhZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9ubCAqKWFkZHI7CiAJaW50IGVycjsKIAlsb25n IHVuc2lnbmVkIGludCBncm91cHMgPSBubGFkZHItPm5sX2dyb3VwczsKKwlib29sIGJvdW5kOwog CiAJaWYgKGFkZHJfbGVuIDwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9ubCkpCiAJCXJldHVybiAt RUlOVkFMOwpAQCAtMTUyNSw5ICsxNTI4LDE0IEBAIHN0YXRpYyBpbnQgbmV0bGlua19iaW5kKHN0 cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAkJCXJldHVybiBlcnI7 CiAJfQogCi0JaWYgKG5say0+cG9ydGlkKQorCWJvdW5kID0gbmxrLT5ib3VuZDsKKwlpZiAoYm91 bmQpIHsKKwkJLyogRW5zdXJlIG5say0+cG9ydGlkIGlzIHVwLXRvLWRhdGUuICovCisJCXNtcF9y bWIoKTsKKwogCQlpZiAobmxhZGRyLT5ubF9waWQgIT0gbmxrLT5wb3J0aWQpCiAJCQlyZXR1cm4g LUVJTlZBTDsKKwl9CiAKIAlpZiAobmxrLT5uZXRsaW5rX2JpbmQgJiYgZ3JvdXBzKSB7CiAJCWlu dCBncm91cDsKQEAgLTE1NDMsNyArMTU1MSwxMCBAQCBzdGF0aWMgaW50IG5ldGxpbmtfYmluZChz dHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsCiAJCX0KIAl9CiAKLQlp ZiAoIW5say0+cG9ydGlkKSB7CisJLyogTm8gbmVlZCBmb3IgYmFycmllcnMgaGVyZSBhcyB3ZSBy ZXR1cm4gdG8gdXNlci1zcGFjZSB3aXRob3V0CisJICogdXNpbmcgYW55IG9mIHRoZSBib3VuZCBh dHRyaWJ1dGVzLgorCSAqLworCWlmICghYm91bmQpIHsKIAkJZXJyID0gbmxhZGRyLT5ubF9waWQg PwogCQkJbmV0bGlua19pbnNlcnQoc2ssIG5sYWRkci0+bmxfcGlkKSA6CiAJCQluZXRsaW5rX2F1 dG9iaW5kKHNvY2spOwpAQCAtMTU5MSw3ICsxNjAyLDEwIEBAIHN0YXRpYyBpbnQgbmV0bGlua19j b25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAkgICAg IW5ldGxpbmtfYWxsb3dlZChzb2NrLCBOTF9DRkdfRl9OT05ST09UX1NFTkQpKQogCQlyZXR1cm4g LUVQRVJNOwogCi0JaWYgKCFubGstPnBvcnRpZCkKKwkvKiBObyBuZWVkIGZvciBiYXJyaWVycyBo ZXJlIGFzIHdlIHJldHVybiB0byB1c2VyLXNwYWNlIHdpdGhvdXQKKwkgKiB1c2luZyBhbnkgb2Yg dGhlIGJvdW5kIGF0dHJpYnV0ZXMuCisJICovCisJaWYgKCFubGstPmJvdW5kKQogCQllcnIgPSBu ZXRsaW5rX2F1dG9iaW5kKHNvY2spOwogCiAJaWYgKGVyciA9PSAwKSB7CkBAIC0yNDA5LDEwICsy NDIzLDEzIEBAIHN0YXRpYyBpbnQgbmV0bGlua19zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ss IHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJZHN0X2dyb3VwID0gbmxrLT5kc3Rf Z3JvdXA7CiAJfQogCi0JaWYgKCFubGstPnBvcnRpZCkgeworCWlmICghbmxrLT5ib3VuZCkgewog CQllcnIgPSBuZXRsaW5rX2F1dG9iaW5kKHNvY2spOwogCQlpZiAoZXJyKQogCQkJZ290byBvdXQ7 CisJfSBlbHNlIHsKKwkJLyogRW5zdXJlIG5sayBpcyBoYXNoZWQgYW5kIHZpc2libGUuICovCisJ CXNtcF9ybWIoKTsKIAl9CiAKIAkvKiBJdCdzIGEgcmVhbGx5IGNvbnZvbHV0ZWQgd2F5IGZvciB1 c2VybGFuZCB0byBhc2sgZm9yIG1tYXBlZApAQCAtMzIzNSw3ICszMjUyLDcgQEAgc3RhdGljIGlu bGluZSB1MzIgbmV0bGlua19oYXNoKGNvbnN0IHZvaWQgKmRhdGEsIHUzMiBsZW4sIHUzMiBzZWVk KQogCWNvbnN0IHN0cnVjdCBuZXRsaW5rX3NvY2sgKm5sayA9IGRhdGE7CiAJc3RydWN0IG5ldGxp bmtfY29tcGFyZV9hcmcgYXJnOwogCi0JbmV0bGlua19jb21wYXJlX2FyZ19pbml0KCZhcmcsIHNv Y2tfbmV0KCZubGstPnNrKSwgbmxrLT5yaGFzaF9wb3J0aWQpOworCW5ldGxpbmtfY29tcGFyZV9h cmdfaW5pdCgmYXJnLCBzb2NrX25ldCgmbmxrLT5zayksIG5say0+cG9ydGlkKTsKIAlyZXR1cm4g amhhc2gyKCh1MzIgKikmYXJnLCBuZXRsaW5rX2NvbXBhcmVfYXJnX2xlbiAvIHNpemVvZih1MzIp LCBzZWVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5oIGIvbmV0 L25ldGxpbmsvYWZfbmV0bGluay5oCmluZGV4IDgwYjJiNzUuLjE0NDM3ZDkgMTAwNjQ0Ci0tLSBh L25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaAorKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmgK QEAgLTI1LDcgKzI1LDYgQEAgc3RydWN0IG5ldGxpbmtfcmluZyB7CiBzdHJ1Y3QgbmV0bGlua19z b2NrIHsKIAkvKiBzdHJ1Y3Qgc29jayBoYXMgdG8gYmUgdGhlIGZpcnN0IG1lbWJlciBvZiBuZXRs aW5rX3NvY2sgKi8KIAlzdHJ1Y3Qgc29jawkJc2s7Ci0JdTMyCQkJcmhhc2hfcG9ydGlkOwogCXUz MgkJCXBvcnRpZDsKIAl1MzIJCQlkc3RfcG9ydGlkOwogCXUzMgkJCWRzdF9ncm91cDsKQEAgLTM2 LDYgKzM1LDcgQEAgc3RydWN0IG5ldGxpbmtfc29jayB7CiAJdW5zaWduZWQgbG9uZwkJc3RhdGU7 CiAJc2l6ZV90CQkJbWF4X3JlY3Ztc2dfbGVuOwogCXdhaXRfcXVldWVfaGVhZF90CXdhaXQ7CisJ Ym9vbAkJCWJvdW5kOwogCWJvb2wJCQljYl9ydW5uaW5nOwogCXN0cnVjdCBuZXRsaW5rX2NhbGxi YWNrCWNiOwogCXN0cnVjdCBtdXRleAkJKmNiX211dGV4OwotLSAKMi4xLjAKCgpGcm9tIDRjZGY1 MzU5YjgyMjZiYTljMWNlMWE0ZGVkOTU1ZDJhZGYwMzVmZGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm0ubGludXgub3JnLnVrPgpEYXRl OiBNb24sIDIxIFNlcCAyMDE1IDIxOjQyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxOS8zMF0g bmV0OiBkc2E6IGFjdHVhbGx5IGZvcmNlIHRoZSBzcGVlZCBvbiB0aGUgQ1BVIHBvcnQKClsgVXBz dHJlYW0gY29tbWl0IDUzYWRjOWU4MzAyOGQ5ZTM1YjY0MDgyMzFlYmFmNjJhOTRhMTZlNGQgXQoK Q29tbWl0IDU0ZDc5MmYyNTdjNiAoIm5ldDogZHNhOiBDZW50cmFsaXNlIGdsb2JhbCBhbmQgcG9y dCBzZXR1cApjb2RlIGludG8gbXY4OGU2eHh4LiIpIG1lcmdlZCBpbiB0aGUgNC4yIG1lcmdlIHdp bmRvdyBicm9rZSB0aGUgbGluawpzcGVlZCBmb3JjaW5nIGZvciB0aGUgQ1BVIHBvcnQgb2YgTWFy dmVsbCBEU0Egc3dpdGNoZXMuICBUaGUgb3JpZ2luYWwKY29kZSB3YXM6CgogICAgICAgIC8qIE1B QyBGb3JjaW5nIHJlZ2lzdGVyOiBkb24ndCBmb3JjZSBsaW5rLCBzcGVlZCwgZHVwbGV4CiAgICAg ICAgICogb3IgZmxvdyBjb250cm9sIHN0YXRlIHRvIGFueSBwYXJ0aWN1bGFyIHZhbHVlcyBvbiBw aHlzaWNhbAogICAgICAgICAqIHBvcnRzLCBidXQgZm9yY2UgdGhlIENQVSBwb3J0IGFuZCBhbGwg RFNBIHBvcnRzIHRvIDEwMDAgTWIvcwogICAgICAgICAqIGZ1bGwgZHVwbGV4LgogICAgICAgICAq LwogICAgICAgIGlmIChkc2FfaXNfY3B1X3BvcnQoZHMsIHApIHx8IGRzLT5kc2FfcG9ydF9tYXNr ICYgKDEgPDwgcCkpCiAgICAgICAgICAgICAgICBSRUdfV1JJVEUoYWRkciwgMHgwMSwgMHgwMDNl KTsKICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBSRUdfV1JJVEUoYWRkciwgMHgwMSwgMHgw MDAzKTsKCmJ1dCB0aGUgbmV3IGNvZGUgZG9lcyBhIHJlYWQtbW9kaWZ5LXdyaXRlOgoKICAgICAg ICAgICAgICAgIHJlZyA9IF9tdjg4ZTZ4eHhfcmVnX3JlYWQoZHMsIFJFR19QT1JUKHBvcnQpLCBQ T1JUX1BDU19DVFJMKTsKICAgICAgICAgICAgICAgIGlmIChkc2FfaXNfY3B1X3BvcnQoZHMsIHBv cnQpIHx8CiAgICAgICAgICAgICAgICAgICAgZHMtPmRzYV9wb3J0X21hc2sgJiAoMSA8PCBwb3J0 KSkgewogICAgICAgICAgICAgICAgICAgICAgICByZWcgfD0gUE9SVF9QQ1NfQ1RSTF9GT1JDRV9M SU5LIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQT1JUX1BDU19DVFJMX0xJTktf VVAgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPUlRfUENTX0NUUkxfRFVQTEVY X0ZVTEwgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBPUlRfUENTX0NUUkxfRk9S Q0VfRFVQTEVYOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAobXY4OGU2eHh4XzYwNjVfZmFt aWx5KGRzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWcgfD0gUE9SVF9QQ1Nf Q1RSTF8xMDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWcgfD0gUE9SVF9QQ1NfQ1RSTF8xMDAwOwoKVGhlIGxpbmsgc3BlZWQg aW4gdGhlIFBDUyBjb250cm9sIHJlZ2lzdGVyIGlzIGEgdHdvIGJpdCBmaWVsZC4gIEZvcmNpbmcK dGhlIGxpbmsgc3BlZWQgaW4gdGhpcyB3YXkgZG9lc24ndCBlbnN1cmUgdGhhdCB0aGUgYml0IGZp ZWxkIGlzIHNldCB0bwp0aGUgY29ycmVjdCB2YWx1ZSAtIG9uIHRoZSBoYXJkd2FyZSBJIGhhdmUg aGVyZSwgdGhlIHNwZWVkIGJpdGZpZWxkCnJlbWFpbnMgc2V0IHRvIDB4MDMsIHJlc3VsdGluZyBp biB0aGUgc3BlZWQgbm90IGJlaW5nIGZvcmNlZCB0byBnaWdhYml0LgoKV2UgbXVzdCBjbGVhciBi b3RoIGJpdHMgYmVmb3JlIGZvcmNpbmcgdGhlIGxpbmsgc3BlZWQuCgpGaXhlczogNTRkNzkyZjI1 N2M2ICgibmV0OiBkc2E6IENlbnRyYWxpc2UgZ2xvYmFsIGFuZCBwb3J0IHNldHVwIGNvZGUgaW50 byBtdjg4ZTZ4eHguIikKU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFy bS5saW51eC5vcmcudWs+CkFja2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHguYyBiL2RyaXZl cnMvbmV0L2RzYS9tdjg4ZTZ4eHguYwppbmRleCA1NjEzNDI0Li4yNmVjMmZiIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4LmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhl Nnh4eC5jCkBAIC0xMzg3LDYgKzEzODcsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cF9w b3J0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQpCiAJCXJlZyA9IF9tdjg4ZTZ4eHhf cmVnX3JlYWQoZHMsIFJFR19QT1JUKHBvcnQpLCBQT1JUX1BDU19DVFJMKTsKIAkJaWYgKGRzYV9p c19jcHVfcG9ydChkcywgcG9ydCkgfHwKIAkJICAgIGRzLT5kc2FfcG9ydF9tYXNrICYgKDEgPDwg cG9ydCkpIHsKKwkJCXJlZyAmPSB+UE9SVF9QQ1NfQ1RSTF9VTkZPUkNFRDsKIAkJCXJlZyB8PSBQ T1JUX1BDU19DVFJMX0ZPUkNFX0xJTksgfAogCQkJCVBPUlRfUENTX0NUUkxfTElOS19VUCB8CiAJ CQkJUE9SVF9QQ1NfQ1RSTF9EVVBMRVhfRlVMTCB8Ci0tIAoyLjEuMAoKCkZyb20gYTVjYmFjYTll MDI0OTZiYzM4NTBlNGQwNTdjNjY3ZDk4ZDg3YTdjNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmVzc2UgR3Jvc3MgPGplc3NlQG5pY2lyYS5jb20+CkRhdGU6IE1vbiwgMjEgU2VwIDIw MTUgMjA6MjE6MjAgLTA3MDAKU3ViamVjdDogW1BBVENIIDIwLzMwXSBvcGVudnN3aXRjaDogWmVy byBmbG93cyBvbiBhbGxvY2F0aW9uLgoKWyBVcHN0cmVhbSBjb21taXQgYWU1ZjJmYjFkNTFmYTEy OGE0NjBiY2ZiZTNjNTZkN2FiOGJmNmE0MyBdCgpXaGVuIHN1cHBvcnQgZm9yIG1lZ2FmbG93cyB3 YXMgaW50cm9kdWNlZCwgT1ZTIG5lZWRlZCB0byBzdGFydAppbnN0YWxsaW5nIGZsb3dzIHdpdGgg YSBtYXNrIGFwcGxpZWQgdG8gdGhlbS4gU2luY2UgbWFza2luZyBpcyBhbgpleHBlbnNpdmUgb3Bl cmF0aW9uLCBPVlMgYWxzbyBoYWQgYW4gb3B0aW1pemF0aW9uIHRoYXQgd291bGQgb25seQp0YWtl IHRoZSBwYXJ0cyBvZiB0aGUgZmxvdyBrZXlzIHRoYXQgd2VyZSBjb3ZlcmVkIGJ5IGEgbm9uLXpl cm8KbWFzay4gVGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHJlbWFpbmluZyBwaWVjZXMgc2hvdWxk IG5vdCBtYXR0ZXIKYmVjYXVzZSB0aGV5IGFyZSBtYXNrZWQgb3V0LgoKV2hpbGUgdGhpcyB3b3Jr cyBmaW5lIGZvciB0aGUgcHVycG9zZXMgb2YgbWF0Y2hpbmcgKHdoaWNoIG11c3QgYWx3YXlzCmxv b2sgYXQgdGhlIG1hc2spLCBzZXJpYWxpemF0aW9uIHRvIG5ldGxpbmsgY2FuIGJlIHByb2JsZW1h dGljLiBTaW5jZQp0aGUgZmxvdyBhbmQgdGhlIG1hc2sgYXJlIHNlcmlhbGl6ZWQgc2VwYXJhdGVs eSwgdGhlIHVuaW5pdGlhbGl6ZWQKcG9ydGlvbnMgb2YgdGhlIGZsb3cgY2FuIGJlIGVuY29kZWQg d2l0aCB3aGF0ZXZlciB2YWx1ZXMgaGFwcGVuIHRvIGJlCnByZXNlbnQuCgpJbiB0ZXJtcyBvZiBm dW5jdGlvbmFsaXR5LCB0aGlzIGhhcyBsaXR0bGUgZWZmZWN0IHNpbmNlIHRoZXNlIGZpZWxkcwp3 aWxsIGJlIG1hc2tlZCBvdXQgYnkgZGVmaW5pdGlvbi4gSG93ZXZlciwgaXQgbGVha3Mga2VybmVs IG1lbW9yeSB0bwp1c2Vyc3BhY2UsIHdoaWNoIGlzIGEgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5l cmFiaWxpdHkuIEl0IGlzIGFsc28KcG9zc2libGUgdGhhdCBvdGhlciBjb2RlIHBhdGhzIGNvdWxk IGxvb2sgYXQgdGhlIG1hc2tlZCBrZXkgYW5kIGdldAp1bmluaXRpYWxpemVkIGRhdGEsIGFsdGhv dWdoIHRoaXMgZG9lcyBub3QgY3VycmVudGx5IGFwcGVhciB0byBiZSBhbgppc3N1ZSBpbiBwcmFj dGljZS4KClRoaXMgcmVtb3ZlcyB0aGUgbWFzayBvcHRpbWl6YXRpb24gZm9yIGZsb3dzIHRoYXQg YXJlIGJlaW5nIGluc3RhbGxlZC4KVGhpcyB3YXMgYWx3YXlzIGludGVuZGVkIHRvIGJlIHRoZSBj YXNlIGFzIHRoZSBtYXNrIG9wdGltaXphdGlvbnMgd2VyZQpyZWFsbHkgdGFyZ2V0dGluZyBwZXIt cGFja2V0IGZsb3cgb3BlcmF0aW9ucy4KCkZpeGVzOiAwM2YwZDkxNiAoIm9wZW52c3dpdGNoOiBN ZWdhIGZsb3cgaW1wbGVtZW50YXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBKZXNzZSBHcm9zcyA8amVz c2VAbmljaXJhLmNvbT4KQWNrZWQtYnk6IFByYXZpbiBCIFNoZWxhciA8cHNoZWxhckBuaWNpcmEu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMgICB8ICA0ICsrLS0KIG5ldC9vcGVudnN3 aXRjaC9mbG93X3RhYmxlLmMgfCAyMyArKysrKysrKysrKystLS0tLS0tLS0tLQogbmV0L29wZW52 c3dpdGNoL2Zsb3dfdGFibGUuaCB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9kYXRh cGF0aC5jIGIvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKaW5kZXggZmY4YzRhNC4uZmYzMzJk MSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2RhdGFwYXRoLmMKKysrIGIvbmV0L29wZW52 c3dpdGNoL2RhdGFwYXRoLmMKQEAgLTkyMCw3ICs5MjAsNyBAQCBzdGF0aWMgaW50IG92c19mbG93 X2NtZF9uZXcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykKIAlp ZiAoZXJyb3IpCiAJCWdvdG8gZXJyX2tmcmVlX2Zsb3c7CiAKLQlvdnNfZmxvd19tYXNrX2tleSgm bmV3X2Zsb3ctPmtleSwgJmtleSwgJm1hc2spOworCW92c19mbG93X21hc2tfa2V5KCZuZXdfZmxv dy0+a2V5LCAma2V5LCB0cnVlLCAmbWFzayk7CiAKIAkvKiBFeHRyYWN0IGZsb3cgaWRlbnRpZmll ci4gKi8KIAllcnJvciA9IG92c19ubGFfZ2V0X2lkZW50aWZpZXIoJm5ld19mbG93LT5pZCwgYVtP VlNfRkxPV19BVFRSX1VGSURdLApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgc3RhdGljIHN0cnVjdCBz d19mbG93X2FjdGlvbnMgKmdldF9mbG93X2FjdGlvbnMoY29uc3Qgc3RydWN0IG5sYXR0ciAqYSwK IAlzdHJ1Y3Qgc3dfZmxvd19rZXkgbWFza2VkX2tleTsKIAlpbnQgZXJyb3I7CiAKLQlvdnNfZmxv d19tYXNrX2tleSgmbWFza2VkX2tleSwga2V5LCBtYXNrKTsKKwlvdnNfZmxvd19tYXNrX2tleSgm bWFza2VkX2tleSwga2V5LCB0cnVlLCBtYXNrKTsKIAllcnJvciA9IG92c19ubGFfY29weV9hY3Rp b25zKGEsICZtYXNrZWRfa2V5LCAmYWN0cywgbG9nKTsKIAlpZiAoZXJyb3IpIHsKIAkJT1ZTX05M RVJSKGxvZywKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmMgYi9uZXQv b3BlbnZzd2l0Y2gvZmxvd190YWJsZS5jCmluZGV4IDY1NTIzOTQuLmI1YzNiYmEgMTAwNjQ0Ci0t LSBhL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmMKKysrIGIvbmV0L29wZW52c3dpdGNoL2Zs b3dfdGFibGUuYwpAQCAtNTYsMjAgKzU2LDIxIEBAIHN0YXRpYyB1MTYgcmFuZ2Vfbl9ieXRlcyhj b25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXlfcmFuZ2UgKnJhbmdlKQogfQogCiB2b2lkIG92c19mbG93 X21hc2tfa2V5KHN0cnVjdCBzd19mbG93X2tleSAqZHN0LCBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19r ZXkgKnNyYywKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2spCisJCSAg ICAgICBib29sIGZ1bGwsIGNvbnN0IHN0cnVjdCBzd19mbG93X21hc2sgKm1hc2spCiB7Ci0JY29u c3QgbG9uZyAqbSA9IChjb25zdCBsb25nICopKChjb25zdCB1OCAqKSZtYXNrLT5rZXkgKwotCQkJ CW1hc2stPnJhbmdlLnN0YXJ0KTsKLQljb25zdCBsb25nICpzID0gKGNvbnN0IGxvbmcgKikoKGNv bnN0IHU4ICopc3JjICsKLQkJCQltYXNrLT5yYW5nZS5zdGFydCk7Ci0JbG9uZyAqZCA9IChsb25n ICopKCh1OCAqKWRzdCArIG1hc2stPnJhbmdlLnN0YXJ0KTsKKwlpbnQgc3RhcnQgPSBmdWxsID8g MCA6IG1hc2stPnJhbmdlLnN0YXJ0OworCWludCBsZW4gPSBmdWxsID8gc2l6ZW9mICpkc3QgOiBy YW5nZV9uX2J5dGVzKCZtYXNrLT5yYW5nZSk7CisJY29uc3QgbG9uZyAqbSA9IChjb25zdCBsb25n ICopKChjb25zdCB1OCAqKSZtYXNrLT5rZXkgKyBzdGFydCk7CisJY29uc3QgbG9uZyAqcyA9IChj b25zdCBsb25nICopKChjb25zdCB1OCAqKXNyYyArIHN0YXJ0KTsKKwlsb25nICpkID0gKGxvbmcg KikoKHU4ICopZHN0ICsgc3RhcnQpOwogCWludCBpOwogCi0JLyogVGhlIG1lbW9yeSBvdXRzaWRl IG9mIHRoZSAnbWFzay0+cmFuZ2UnIGFyZSBub3Qgc2V0IHNpbmNlCi0JICogZnVydGhlciBvcGVy YXRpb25zIG9uICdkc3QnIG9ubHkgdXNlcyBjb250ZW50cyB3aXRoaW4KLQkgKiAnbWFzay0+cmFu Z2UnLgorCS8qIElmICdmdWxsJyBpcyB0cnVlIHRoZW4gYWxsIG9mICdkc3QnIGlzIGZ1bGx5IGlu aXRpYWxpemVkLiBPdGhlcndpc2UsCisJICogaWYgJ2Z1bGwnIGlzIGZhbHNlIHRoZSBtZW1vcnkg b3V0c2lkZSBvZiB0aGUgJ21hc2stPnJhbmdlJyBpcyBsZWZ0CisJICogdW5pbml0aWFsaXplZC4g VGhpcyBjYW4gYmUgdXNlZCBhcyBhbiBvcHRpbWl6YXRpb24gd2hlbiBmdXJ0aGVyCisJICogb3Bl cmF0aW9ucyBvbiAnZHN0JyBvbmx5IHVzZSBjb250ZW50cyB3aXRoaW4gJ21hc2stPnJhbmdlJy4K IAkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgcmFuZ2Vfbl9ieXRlcygmbWFzay0+cmFuZ2UpOyBpICs9 IHNpemVvZihsb25nKSkKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IHNpemVvZihsb25nKSkK IAkJKmQrKyA9ICpzKysgJiAqbSsrOwogfQogCkBAIC00NzMsNyArNDc0LDcgQEAgc3RhdGljIHN0 cnVjdCBzd19mbG93ICptYXNrZWRfZmxvd19sb29rdXAoc3RydWN0IHRhYmxlX2luc3RhbmNlICp0 aSwKIAl1MzIgaGFzaDsKIAlzdHJ1Y3Qgc3dfZmxvd19rZXkgbWFza2VkX2tleTsKIAotCW92c19m bG93X21hc2tfa2V5KCZtYXNrZWRfa2V5LCB1bm1hc2tlZCwgbWFzayk7CisJb3ZzX2Zsb3dfbWFz a19rZXkoJm1hc2tlZF9rZXksIHVubWFza2VkLCBmYWxzZSwgbWFzayk7CiAJaGFzaCA9IGZsb3df aGFzaCgmbWFza2VkX2tleSwgJm1hc2stPnJhbmdlKTsKIAloZWFkID0gZmluZF9idWNrZXQodGks IGhhc2gpOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShmbG93LCBoZWFkLCBmbG93X3RhYmxl Lm5vZGVbdGktPm5vZGVfdmVyXSkgewpkaWZmIC0tZ2l0IGEvbmV0L29wZW52c3dpdGNoL2Zsb3df dGFibGUuaCBiL25ldC9vcGVudnN3aXRjaC9mbG93X3RhYmxlLmgKaW5kZXggNjE2ZWRhMS4uMmRk OTkwMCAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2Zsb3dfdGFibGUuaAorKysgYi9uZXQv b3BlbnZzd2l0Y2gvZmxvd190YWJsZS5oCkBAIC04Niw1ICs4Niw1IEBAIHN0cnVjdCBzd19mbG93 ICpvdnNfZmxvd190YmxfbG9va3VwX3VmaWQoc3RydWN0IGZsb3dfdGFibGUgKiwKIGJvb2wgb3Zz X2Zsb3dfY21wKGNvbnN0IHN0cnVjdCBzd19mbG93ICosIGNvbnN0IHN0cnVjdCBzd19mbG93X21h dGNoICopOwogCiB2b2lkIG92c19mbG93X21hc2tfa2V5KHN0cnVjdCBzd19mbG93X2tleSAqZHN0 LCBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKnNyYywKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBz d19mbG93X21hc2sgKm1hc2spOworCQkgICAgICAgYm9vbCBmdWxsLCBjb25zdCBzdHJ1Y3Qgc3df Zmxvd19tYXNrICptYXNrKTsKICNlbmRpZiAvKiBmbG93X3RhYmxlLmggKi8KLS0gCjIuMS4wCgoK RnJvbSBmZTYyNjk5ZDIyMTBiZTYzNTI0MjAzNTQ2MWFiNTYzNmJjODdkNWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFdlZCwgMjMgU2VwIDIwMTUgMTQ6MDA6MjEgLTA3MDAKU3ViamVjdDogW1BBVENIIDIxLzMw XSB0Y3A6IGFkZCBwcm9wZXIgVFMgdmFsIGludG8gUlNUIHBhY2tldHMKClsgVXBzdHJlYW0gY29t bWl0IDY3NWVlMjMxZDk2MGFmMmFmMzYwNmI0NDgwMzI0ZTI2Nzk3ZWIwMTAgXQoKUlNUIHBhY2tl dHMgc2VudCBvbiBiZWhhbGYgb2YgVENQIGNvbm5lY3Rpb25zIHdpdGggVFMgb3B0aW9uIChSRkMg NzMyMwpUQ1AgdGltZXN0YW1wcykgaGF2ZSBpbmNvcnJlY3QgVFMgdmFsIChzZXQgdG8gMCksIGJ1 dCBjb3JyZWN0IFRTIGVjci4KCkEgPiBCOiBGbGFncyBbU10sIHNlcSAwLCB3aW4gNjU1MzUsIG9w dGlvbnMgW21zcyAxMDAwLG5vcCxub3AsVFMgdmFsIDEwMAplY3IgMF0sIGxlbmd0aCAwCkIgPiBB OiBGbGFncyBbUy5dLCBzZXEgMjQ0NDc1NTc5NCwgYWNrIDEsIHdpbiAyODk2MCwgb3B0aW9ucyBb bXNzCjE0NjAsbm9wLG5vcCxUUyB2YWwgNzI2NDM0NCBlY3IgMTAwXSwgbGVuZ3RoIDAKQSA+IEI6 IEZsYWdzIFsuXSwgYWNrIDEsIHdpbiA2NTUzNSwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMTEw IGVjcgo3MjY0MzQ0XSwgbGVuZ3RoIDAKCkIgPiBBOiBGbGFncyBbUi5dLCBzZXEgMSwgYWNrIDEs IHdpbiAyODk2MCwgb3B0aW9ucyBbbm9wLG5vcCxUUyB2YWwgMAplY3IgMTEwXSwgbGVuZ3RoIDAK CldlIG5lZWQgdG8gY2FsbCBza2JfbXN0YW1wX2dldCgpIHRvIGdldCBwcm9wZXIgVFMgdmFsLApk ZXJpdmVkIGZyb20gc2tiLT5za2JfbXN0YW1wCgpOb3RlIHRoYXQgUkZDIDEzMjMgd2FzIGFkdm9j YXRpbmcgdG8gbm90IHNlbmQgVFMgb3B0aW9uIGluIFJTVCBzZWdtZW50LApidXQgUkZDIDczMjMg cmVjb21tZW5kcyB0aGUgb3Bwb3NpdGUgOgoKICBPbmNlIFRTb3B0IGhhcyBiZWVuIHN1Y2Nlc3Nm dWxseSBuZWdvdGlhdGVkLCB0aGF0IGlzIGJvdGggPFNZTj4gYW5kCiAgPFNZTixBQ0s+IGNvbnRh aW4gVFNvcHQsIHRoZSBUU29wdCBNVVNUIGJlIHNlbnQgaW4gZXZlcnkgbm9uLTxSU1Q+CiAgc2Vn bWVudCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLCBhbmQgU0hPVUxEIGJlIHNl bnQgaW4gYW4KICA8UlNUPiBzZWdtZW50IChzZWUgU2VjdGlvbiA1LjIgZm9yIGRldGFpbHMpCgpO b3RlIHRoaXMgUkZDIHJlY29tbWVuZHMgdG8gc2VuZCBUUyB2YWwgPSAwLCBidXQgd2UgYmVsaWV2 ZSBpdCBpcwpwcmVtYXR1cmUgOiBXZSBkbyBub3Qga25vdyBpZiBhbGwgVENQIHN0YWNrcyBhcmUg cHJvcGVybHkKaGFuZGxpbmcgdGhlIHJlY2VpdmUgc2lkZSA6CgogICBXaGVuIGFuIDxSU1Q+IHNl Z21lbnQgaXMKICAgcmVjZWl2ZWQsIGl0IE1VU1QgTk9UIGJlIHN1YmplY3RlZCB0byB0aGUgUEFX UyBjaGVjayBieSB2ZXJpZnlpbmcgYW4KICAgYWNjZXB0YWJsZSB2YWx1ZSBpbiBTRUcuVFN2YWws IGFuZCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBUaW1lc3RhbXBzCiAgIG9wdGlvbiBNVVNUIE5PVCBi ZSB1c2VkIHRvIHVwZGF0ZSBjb25uZWN0aW9uIHN0YXRlIGluZm9ybWF0aW9uLgogICBTRUcuVFNl Y3IgTUFZIGJlIHVzZWQgdG8gcHJvdmlkZSBzdHJpY3RlciA8UlNUPiBhY2NlcHRhbmNlIGNoZWNr cy4KCkluIDUgeWVhcnMsIGlmL3doZW4gYWxsIFRDUCBzdGFjayBhcmUgUkZDIDczMjMgcmVhZHks IHdlIG1pZ2h0IGNvbnNpZGVyCnRvIGRlY2lkZSB0byBzZW5kIFRTIHZhbCA9IDAsIGlmIGl0IGJ1 eXMgc29tZXRoaW5nLgoKRml4ZXM6IDdmYWVlNWMwZDUxNCAoInRjcDogcmVtb3ZlIFRDUF9TS0Jf Q0Ioc2tiKS0+d2hlbiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvdGNwX291dHB1dC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0 LmMKaW5kZXggYjFjMjE4ZC4uYjdkZWRkOSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1 dC5jCisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwpAQCAtMjg5OCw2ICsyODk4LDcgQEAgdm9p ZCB0Y3Bfc2VuZF9hY3RpdmVfcmVzZXQoc3RydWN0IHNvY2sgKnNrLCBnZnBfdCBwcmlvcml0eSkK IAlza2JfcmVzZXJ2ZShza2IsIE1BWF9UQ1BfSEVBREVSKTsKIAl0Y3BfaW5pdF9ub25kYXRhX3Nr Yihza2IsIHRjcF9hY2NlcHRhYmxlX3NlcShzayksCiAJCQkgICAgIFRDUEhEUl9BQ0sgfCBUQ1BI RFJfUlNUKTsKKwlza2JfbXN0YW1wX2dldCgmc2tiLT5za2JfbXN0YW1wKTsKIAkvKiBTZW5kIGl0 IG9mZi4gKi8KIAlpZiAodGNwX3RyYW5zbWl0X3NrYihzaywgc2tiLCAwLCBwcmlvcml0eSkpCiAJ CU5FVF9JTkNfU1RBVFMoc29ja19uZXQoc2spLCBMSU5VWF9NSUJfVENQQUJPUlRGQUlMRUQpOwot LSAKMi4xLjAKCgpGcm9tIDU4MjlkMmVhZmU0OTc0MzdiZGEyZWYzMTBhMWVhYTRiZTU3ODMzMDYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5m cmFkZWFkLm9yZz4KRGF0ZTogV2VkLCAyMyBTZXAgMjAxNSAxOTo0NTowOCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggMjIvMzBdIEZpeCBBRl9QQUNLRVQgQUJJIGJyZWFrYWdlIGluIDQuMgoKWyBVcHN0 cmVhbSBjb21taXQgZDM4NjllZmU3YThhMjI5ODUxNmQ5YWY0ZjkxNDg3Y2Y0ODZjYTk0NSBdCgpD b21taXQgN2Q4MjQxMDk1MGFhICgidmlydGlvOiBhZGQgZXhwbGljaXQgYmlnLWVuZGlhbiBzdXBw b3J0IHRvIG1lbW9yeQphY2Nlc3NvcnMiKSBhY2NpZGVudGFsbHkgY2hhbmdlZCB0aGUgdmlydGlv X25ldCBoZWFkZXIgdXNlZCBieQpBRl9QQUNLRVQgd2l0aCBQQUNLRVRfVk5FVF9IRFIgZnJvbSBo b3N0LWVuZGlhbiB0byBiaWctZW5kaWFuLgoKU2luY2UgdmlydGlvX2xlZ2FjeV9pc19saXR0bGVf ZW5kaWFuKCkgaXMgYSB2ZXJ5IGxvbmcgaWRlbnRpZmllciwKZGVmaW5lIGEgdmlvX2xlIG1hY3Jv IGFuZCB1c2UgdGhhdCB0aHJvdWdob3V0IHRoZSBjb2RlIGluc3RlYWQgb2YgdGhlCmhhcmQtY29k ZWQgJ2ZhbHNlJyBmb3IgbGl0dGxlLWVuZGlhbi4KClRoaXMgcmVzdG9yZXMgdGhlIEFCSSB0byBt YXRjaCA0LjEgYW5kIGVhcmxpZXIga2VybmVscywgYW5kIG1ha2VzIG15CnRlc3QgcHJvZ3JhbSB3 b3JrIGFnYWluLgoKU2lnbmVkLW9mZi1ieTogRGF2aWQgV29vZGhvdXNlIDxEYXZpZC5Xb29kaG91 c2VAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDMyICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgMTUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9w YWNrZXQvYWZfcGFja2V0LmMKaW5kZXggZWQ0NThiMy4uNzg1MWIxMiAxMDA2NDQKLS0tIGEvbmV0 L3BhY2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0yMjks NiArMjI5LDggQEAgc3RydWN0IHBhY2tldF9za2JfY2IgewogCX0gc2E7CiB9OwogCisjZGVmaW5l IHZpb19sZSgpIHZpcnRpb19sZWdhY3lfaXNfbGl0dGxlX2VuZGlhbigpCisKICNkZWZpbmUgUEFD S0VUX1NLQl9DQihfX3NrYikJKChzdHJ1Y3QgcGFja2V0X3NrYl9jYiAqKSgoX19za2IpLT5jYikp CiAKICNkZWZpbmUgR0VUX1BCRFFDX0ZST01fUkIoeCkJKChzdHJ1Y3QgdHBhY2tldF9rYmRxX2Nv cmUgKikoJih4KS0+cHJiX2JkcWMpKQpAQCAtMjU2MSwxNSArMjU2MywxNSBAQCBzdGF0aWMgaW50 IHBhY2tldF9zbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXpl X3QgbGVuKQogCQkJZ290byBvdXRfdW5sb2NrOwogCiAJCWlmICgodm5ldF9oZHIuZmxhZ3MgJiBW SVJUSU9fTkVUX0hEUl9GX05FRURTX0NTVU0pICYmCi0JCSAgICAoX192aXJ0aW8xNl90b19jcHUo ZmFsc2UsIHZuZXRfaGRyLmNzdW1fc3RhcnQpICsKLQkJICAgICBfX3ZpcnRpbzE2X3RvX2NwdShm YWxzZSwgdm5ldF9oZHIuY3N1bV9vZmZzZXQpICsgMiA+Ci0JCSAgICAgIF9fdmlydGlvMTZfdG9f Y3B1KGZhbHNlLCB2bmV0X2hkci5oZHJfbGVuKSkpCi0JCQl2bmV0X2hkci5oZHJfbGVuID0gX19j cHVfdG9fdmlydGlvMTYoZmFsc2UsCi0JCQkJIF9fdmlydGlvMTZfdG9fY3B1KGZhbHNlLCB2bmV0 X2hkci5jc3VtX3N0YXJ0KSArCi0JCQkJX192aXJ0aW8xNl90b19jcHUoZmFsc2UsIHZuZXRfaGRy LmNzdW1fb2Zmc2V0KSArIDIpOworCQkgICAgKF9fdmlydGlvMTZfdG9fY3B1KHZpb19sZSgpLCB2 bmV0X2hkci5jc3VtX3N0YXJ0KSArCisJCSAgICAgX192aXJ0aW8xNl90b19jcHUodmlvX2xlKCks IHZuZXRfaGRyLmNzdW1fb2Zmc2V0KSArIDIgPgorCQkgICAgICBfX3ZpcnRpbzE2X3RvX2NwdSh2 aW9fbGUoKSwgdm5ldF9oZHIuaGRyX2xlbikpKQorCQkJdm5ldF9oZHIuaGRyX2xlbiA9IF9fY3B1 X3RvX3ZpcnRpbzE2KHZpb19sZSgpLAorCQkJCSBfX3ZpcnRpbzE2X3RvX2NwdSh2aW9fbGUoKSwg dm5ldF9oZHIuY3N1bV9zdGFydCkgKworCQkJCV9fdmlydGlvMTZfdG9fY3B1KHZpb19sZSgpLCB2 bmV0X2hkci5jc3VtX29mZnNldCkgKyAyKTsKIAogCQllcnIgPSAtRUlOVkFMOwotCQlpZiAoX192 aXJ0aW8xNl90b19jcHUoZmFsc2UsIHZuZXRfaGRyLmhkcl9sZW4pID4gbGVuKQorCQlpZiAoX192 aXJ0aW8xNl90b19jcHUodmlvX2xlKCksIHZuZXRfaGRyLmhkcl9sZW4pID4gbGVuKQogCQkJZ290 byBvdXRfdW5sb2NrOwogCiAJCWlmICh2bmV0X2hkci5nc29fdHlwZSAhPSBWSVJUSU9fTkVUX0hE Ul9HU09fTk9ORSkgewpAQCAtMjYxMiw3ICsyNjE0LDcgQEAgc3RhdGljIGludCBwYWNrZXRfc25k KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlo bGVuID0gTExfUkVTRVJWRURfU1BBQ0UoZGV2KTsKIAl0bGVuID0gZGV2LT5uZWVkZWRfdGFpbHJv b207CiAJc2tiID0gcGFja2V0X2FsbG9jX3NrYihzaywgaGxlbiArIHRsZW4sIGhsZW4sIGxlbiwK LQkJCSAgICAgICBfX3ZpcnRpbzE2X3RvX2NwdShmYWxzZSwgdm5ldF9oZHIuaGRyX2xlbiksCisJ CQkgICAgICAgX192aXJ0aW8xNl90b19jcHUodmlvX2xlKCksIHZuZXRfaGRyLmhkcl9sZW4pLAog CQkJICAgICAgIG1zZy0+bXNnX2ZsYWdzICYgTVNHX0RPTlRXQUlULCAmZXJyKTsKIAlpZiAoc2ti ID09IE5VTEwpCiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTI2NTksOCArMjY2MSw4IEBAIHN0YXRp YyBpbnQgcGFja2V0X3NuZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAKIAlpZiAocG8tPmhhc192bmV0X2hkcikgewogCQlpZiAodm5ldF9oZHIu ZmxhZ3MgJiBWSVJUSU9fTkVUX0hEUl9GX05FRURTX0NTVU0pIHsKLQkJCXUxNiBzID0gX192aXJ0 aW8xNl90b19jcHUoZmFsc2UsIHZuZXRfaGRyLmNzdW1fc3RhcnQpOwotCQkJdTE2IG8gPSBfX3Zp cnRpbzE2X3RvX2NwdShmYWxzZSwgdm5ldF9oZHIuY3N1bV9vZmZzZXQpOworCQkJdTE2IHMgPSBf X3ZpcnRpbzE2X3RvX2NwdSh2aW9fbGUoKSwgdm5ldF9oZHIuY3N1bV9zdGFydCk7CisJCQl1MTYg byA9IF9fdmlydGlvMTZfdG9fY3B1KHZpb19sZSgpLCB2bmV0X2hkci5jc3VtX29mZnNldCk7CiAJ CQlpZiAoIXNrYl9wYXJ0aWFsX2NzdW1fc2V0KHNrYiwgcywgbykpIHsKIAkJCQllcnIgPSAtRUlO VkFMOwogCQkJCWdvdG8gb3V0X2ZyZWU7CkBAIC0yNjY4LDcgKzI2NzAsNyBAQCBzdGF0aWMgaW50 IHBhY2tldF9zbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXpl X3QgbGVuKQogCQl9CiAKIAkJc2tiX3NoaW5mbyhza2IpLT5nc29fc2l6ZSA9Ci0JCQlfX3ZpcnRp bzE2X3RvX2NwdShmYWxzZSwgdm5ldF9oZHIuZ3NvX3NpemUpOworCQkJX192aXJ0aW8xNl90b19j cHUodmlvX2xlKCksIHZuZXRfaGRyLmdzb19zaXplKTsKIAkJc2tiX3NoaW5mbyhza2IpLT5nc29f dHlwZSA9IGdzb190eXBlOwogCiAJCS8qIEhlYWRlciBtdXN0IGJlIGNoZWNrZWQsIGFuZCBnc29f c2VncyBjb21wdXRlZC4gKi8KQEAgLTMwNDIsOSArMzA0NCw5IEBAIHN0YXRpYyBpbnQgcGFja2V0 X3JlY3Ztc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qg bGVuLAogCiAJCQkvKiBUaGlzIGlzIGEgaGludCBhcyB0byBob3cgbXVjaCBzaG91bGQgYmUgbGlu ZWFyLiAqLwogCQkJdm5ldF9oZHIuaGRyX2xlbiA9Ci0JCQkJX19jcHVfdG9fdmlydGlvMTYoZmFs c2UsIHNrYl9oZWFkbGVuKHNrYikpOworCQkJCV9fY3B1X3RvX3ZpcnRpbzE2KHZpb19sZSgpLCBz a2JfaGVhZGxlbihza2IpKTsKIAkJCXZuZXRfaGRyLmdzb19zaXplID0KLQkJCQlfX2NwdV90b192 aXJ0aW8xNihmYWxzZSwgc2luZm8tPmdzb19zaXplKTsKKwkJCQlfX2NwdV90b192aXJ0aW8xNih2 aW9fbGUoKSwgc2luZm8tPmdzb19zaXplKTsKIAkJCWlmIChzaW5mby0+Z3NvX3R5cGUgJiBTS0Jf R1NPX1RDUFY0KQogCQkJCXZuZXRfaGRyLmdzb190eXBlID0gVklSVElPX05FVF9IRFJfR1NPX1RD UFY0OwogCQkJZWxzZSBpZiAoc2luZm8tPmdzb190eXBlICYgU0tCX0dTT19UQ1BWNikKQEAgLTMw NjIsOSArMzA2NCw5IEBAIHN0YXRpYyBpbnQgcGFja2V0X3JlY3Ztc2coc3RydWN0IHNvY2tldCAq c29jaywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3QgbGVuLAogCiAJCWlmIChza2ItPmlwX3N1 bW1lZCA9PSBDSEVDS1NVTV9QQVJUSUFMKSB7CiAJCQl2bmV0X2hkci5mbGFncyA9IFZJUlRJT19O RVRfSERSX0ZfTkVFRFNfQ1NVTTsKLQkJCXZuZXRfaGRyLmNzdW1fc3RhcnQgPSBfX2NwdV90b192 aXJ0aW8xNihmYWxzZSwKKwkJCXZuZXRfaGRyLmNzdW1fc3RhcnQgPSBfX2NwdV90b192aXJ0aW8x Nih2aW9fbGUoKSwKIAkJCQkJICBza2JfY2hlY2tzdW1fc3RhcnRfb2Zmc2V0KHNrYikpOwotCQkJ dm5ldF9oZHIuY3N1bV9vZmZzZXQgPSBfX2NwdV90b192aXJ0aW8xNihmYWxzZSwKKwkJCXZuZXRf aGRyLmNzdW1fb2Zmc2V0ID0gX19jcHVfdG9fdmlydGlvMTYodmlvX2xlKCksCiAJCQkJCQkJIHNr Yi0+Y3N1bV9vZmZzZXQpOwogCQl9IGVsc2UgaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VN X1VOTkVDRVNTQVJZKSB7CiAJCQl2bmV0X2hkci5mbGFncyA9IFZJUlRJT19ORVRfSERSX0ZfREFU QV9WQUxJRDsKLS0gCjIuMS4wCgoKRnJvbSAxM2Q1NjNlN2ExZGMxYzVlNjU2Mjg1MTYxYjM4NjJl ZGFiNTIxMTJhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91 Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMiBTZXAgMjAxNSAxNzowMToxMSAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMjMvMzBdIG5ldDogcmV2ZXJ0ICJuZXRfc2NoZWQ6IG1vdmUgdHAt PnJvb3QgYWxsb2NhdGlvbiBpbnRvCiBmd19pbml0KCkiCgpbIFVwc3RyZWFtIGNvbW1pdCBkOGFl Y2IxMDExNTQ5N2Y2Y2RmODQxZGY4Yzg4ZWJiM2JhMjVmYTI4IF0KCmZ3IGZpbHRlciB1c2VzIHRw LT5yb290PT1OVUxMIHRvIGNoZWNrIGlmIGl0IGlzIHRoZSBvbGQgbWV0aG9kLApzbyBpdCBkb2Vz bid0IG5lZWQgYWxsb2NhdGlvbiBhdCBhbGwgaW4gdGhpcyBjYXNlLiBUaGlzIHBhdGNoCnJldmVy dHMgdGhlIG9mZmVuZGluZyBjb21taXQgYW5kIGFkZHMgc29tZSBjb21tZW50cyBmb3Igb2xkCm1l dGhvZCB0byBtYWtlIGl0IG9idmlvdXMuCgpGaXhlczogMzNmOGI5ZWNkYjE1ICgibmV0X3NjaGVk OiBtb3ZlIHRwLT5yb290IGFsbG9jYXRpb24gaW50byBmd19pbml0KCkiKQpSZXBvcnRlZC1ieTog QWtzaGF0IEtha2thciA8YWtzaGF0LjE5ODRAZ21haWwuY29tPgpDYzogSmFtYWwgSGFkaSBTYWxp bSA8amhzQG1vamF0YXR1LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+CkFja2VkLWJ5OiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9qYXRhdHUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L3NjaGVkL2Nsc19mdy5jIHwgMzAgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19mdy5jIGIvbmV0L3NjaGVkL2Nsc19mdy5jCmluZGV4 IDcxNWUwMWUuLmYyM2EzYjYgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfZncuYworKysgYi9u ZXQvc2NoZWQvY2xzX2Z3LmMKQEAgLTMzLDcgKzMzLDYgQEAKIAogc3RydWN0IGZ3X2hlYWQgewog CXUzMgkJCW1hc2s7Ci0JYm9vbAkJCW1hc2tfc2V0OwogCXN0cnVjdCBmd19maWx0ZXIgX19yY3UJ Kmh0W0hUU0laRV07CiAJc3RydWN0IHJjdV9oZWFkCQlyY3U7CiB9OwpAQCAtODQsNyArODMsNyBA QCBzdGF0aWMgaW50IGZ3X2NsYXNzaWZ5KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVj dCB0Y2ZfcHJvdG8gKnRwLAogCQkJfQogCQl9CiAJfSBlbHNlIHsKLQkJLyogb2xkIG1ldGhvZCAq LworCQkvKiBPbGQgbWV0aG9kOiBjbGFzc2lmeSB0aGUgcGFja2V0IHVzaW5nIGl0cyBza2IgbWFy ay4gKi8KIAkJaWYgKGlkICYmIChUQ19IX01BSihpZCkgPT0gMCB8fAogCQkJICAgIShUQ19IX01B SihpZCBeIHRwLT5xLT5oYW5kbGUpKSkpIHsKIAkJCXJlcy0+Y2xhc3NpZCA9IGlkOwpAQCAtMTE0 LDE0ICsxMTMsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBmd19nZXQoc3RydWN0IHRjZl9wcm90 byAqdHAsIHUzMiBoYW5kbGUpCiAKIHN0YXRpYyBpbnQgZndfaW5pdChzdHJ1Y3QgdGNmX3Byb3Rv ICp0cCkKIHsKLQlzdHJ1Y3QgZndfaGVhZCAqaGVhZDsKLQotCWhlYWQgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3QgZndfaGVhZCksIEdGUF9LRVJORUwpOwotCWlmIChoZWFkID09IE5VTEwpCi0JCXJl dHVybiAtRU5PQlVGUzsKLQotCWhlYWQtPm1hc2tfc2V0ID0gZmFsc2U7Ci0JcmN1X2Fzc2lnbl9w b2ludGVyKHRwLT5yb290LCBoZWFkKTsKKwkvKiBXZSBkb24ndCBhbGxvY2F0ZSBmd19oZWFkIGhl cmUsIGJlY2F1c2UgaW4gdGhlIG9sZCBtZXRob2QKKwkgKiB3ZSBkb24ndCBuZWVkIGl0IGF0IGFs bC4KKwkgKi8KIAlyZXR1cm4gMDsKIH0KIApAQCAtMjUyLDcgKzI0Niw3IEBAIHN0YXRpYyBpbnQg ZndfY2hhbmdlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwKIAlpbnQg ZXJyOwogCiAJaWYgKCFvcHQpCi0JCXJldHVybiBoYW5kbGUgPyAtRUlOVkFMIDogMDsKKwkJcmV0 dXJuIGhhbmRsZSA/IC1FSU5WQUwgOiAwOyAvKiBTdWNjZWVkIGlmIGl0IGlzIG9sZCBtZXRob2Qu ICovCiAKIAllcnIgPSBubGFfcGFyc2VfbmVzdGVkKHRiLCBUQ0FfRldfTUFYLCBvcHQsIGZ3X3Bv bGljeSk7CiAJaWYgKGVyciA8IDApCkBAIC0zMDIsMTEgKzI5NiwxNyBAQCBzdGF0aWMgaW50IGZ3 X2NoYW5nZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICppbl9za2IsCiAJaWYgKCFo YW5kbGUpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCFoZWFkLT5tYXNrX3NldCkgewotCQlo ZWFkLT5tYXNrID0gMHhGRkZGRkZGRjsKKwlpZiAoIWhlYWQpIHsKKwkJdTMyIG1hc2sgPSAweEZG RkZGRkZGOwogCQlpZiAodGJbVENBX0ZXX01BU0tdKQotCQkJaGVhZC0+bWFzayA9IG5sYV9nZXRf dTMyKHRiW1RDQV9GV19NQVNLXSk7Ci0JCWhlYWQtPm1hc2tfc2V0ID0gdHJ1ZTsKKwkJCW1hc2sg PSBubGFfZ2V0X3UzMih0YltUQ0FfRldfTUFTS10pOworCisJCWhlYWQgPSBremFsbG9jKHNpemVv ZigqaGVhZCksIEdGUF9LRVJORUwpOworCQlpZiAoIWhlYWQpCisJCQlyZXR1cm4gLUVOT0JVRlM7 CisJCWhlYWQtPm1hc2sgPSBtYXNrOworCisJCXJjdV9hc3NpZ25fcG9pbnRlcih0cC0+cm9vdCwg aGVhZCk7CiAJfQogCiAJZiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBmd19maWx0ZXIpLCBHRlBf S0VSTkVMKTsKLS0gCjIuMS4wCgoKRnJvbSA3YTA4NGMwNTEzYmVkZGYxOWExM2I0YjI5YTUzYzJi ZDhlMTUxMWI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxzb24gS29rIDx3a29r QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRhdGU6IFR1ZSwgMjIgU2VwIDIwMTUgMjE6NDA6MjIgLTA3 MDAKU3ViamVjdDogW1BBVENIIDI0LzMwXSBmaWJfcnVsZXM6IGZpeCBmaWIgcnVsZSBkdW1wcyBh Y3Jvc3MgbXVsdGlwbGUgc2ticwoKWyBVcHN0cmVhbSBjb21taXQgNDFmYzAxNDMzMmQ5MWVlOTBj MzI4NDBiZjE2MWY5Njg1YjdmYmYyYiBdCgpkdW1wX3J1bGVzIHJldHVybnMgc2tiIGxlbmd0aCBh bmQgbm90IGVycm9yLgpCdXQgd2hlbiBmYW1pbHkgPT0gQUZfVU5TUEVDLCB0aGUgY2FsbGVyIG9m IGR1bXBfcnVsZXMKYXNzdW1lcyB0aGF0IGl0IHJldHVybnMgYW4gZXJyb3IuIEhlbmNlLCB3aGVu IGZhbWlseSA9PSBBRl9VTlNQRUMsCndlIGNvbnRpbnVlIHRyeWluZyB0byBkdW1wIG9uIC1FTVNH U0laRSBlcnJvcnMgcmVzdWx0aW5nIGluCmluY29ycmVjdCBkdW1wIGlkeCBjYXJyaWVkIGJldHdl ZW4gc2ticyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgZHVtcC4KVGhpcyByZXN1bHRzIGluIGZpYiBy dWxlIGR1bXAgYWx3YXlzIG9ubHkgZHVtcGluZyBydWxlcyB0aGF0IGZpdAppbnRvIHRoZSBmaXJz dCBza2IuCgpUaGlzIHBhdGNoIGZpeGVzIGR1bXBfcnVsZXMgdG8gcmV0dXJuIGVycm9yIHNvIHRo YXQgd2UgZXhpdCBjb3JyZWN0bHkKYW5kIGlkeCBpcyBjb3JyZWN0bHkgbWFpbnRhaW5lZCBiZXR3 ZWVuIHNrYnMgdGhhdCBhcmUgcGFydCBvZiB0aGUKc2FtZSBkdW1wLgoKU2lnbmVkLW9mZi1ieTog V2lsc29uIEtvayA8d2tva0BjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb29w YSBQcmFiaHUgPHJvb3BhQGN1bXVsdXNuZXR3b3Jrcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9maWJfcnVsZXMu YyB8IDE0ICsrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jIGIvbmV0L2Nv cmUvZmliX3J1bGVzLmMKaW5kZXggOWExMjY2OC4uMGFkMTQ0ZiAxMDA2NDQKLS0tIGEvbmV0L2Nv cmUvZmliX3J1bGVzLmMKKysrIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKQEAgLTYxNSwxNSArNjE1 LDE3IEBAIHN0YXRpYyBpbnQgZHVtcF9ydWxlcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qg bmV0bGlua19jYWxsYmFjayAqY2IsCiB7CiAJaW50IGlkeCA9IDA7CiAJc3RydWN0IGZpYl9ydWxl ICpydWxlOworCWludCBlcnIgPSAwOwogCiAJcmN1X3JlYWRfbG9jaygpOwogCWxpc3RfZm9yX2Vh Y2hfZW50cnlfcmN1KHJ1bGUsICZvcHMtPnJ1bGVzX2xpc3QsIGxpc3QpIHsKIAkJaWYgKGlkeCA8 IGNiLT5hcmdzWzFdKQogCQkJZ290byBza2lwOwogCi0JCWlmIChmaWJfbmxfZmlsbF9ydWxlKHNr YiwgcnVsZSwgTkVUTElOS19DQihjYi0+c2tiKS5wb3J0aWQsCi0JCQkJICAgICBjYi0+bmxoLT5u bG1zZ19zZXEsIFJUTV9ORVdSVUxFLAotCQkJCSAgICAgTkxNX0ZfTVVMVEksIG9wcykgPCAwKQor CQllcnIgPSBmaWJfbmxfZmlsbF9ydWxlKHNrYiwgcnVsZSwgTkVUTElOS19DQihjYi0+c2tiKS5w b3J0aWQsCisJCQkJICAgICAgIGNiLT5ubGgtPm5sbXNnX3NlcSwgUlRNX05FV1JVTEUsCisJCQkJ ICAgICAgIE5MTV9GX01VTFRJLCBvcHMpOworCQlpZiAoZXJyKQogCQkJYnJlYWs7CiBza2lwOgog CQlpZHgrKzsKQEAgLTYzMiw3ICs2MzQsNyBAQCBza2lwOgogCWNiLT5hcmdzWzFdID0gaWR4Owog CXJ1bGVzX29wc19wdXQob3BzKTsKIAotCXJldHVybiBza2ItPmxlbjsKKwlyZXR1cm4gZXJyOwog fQogCiBzdGF0aWMgaW50IGZpYl9ubF9kdW1wcnVsZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCkBAIC02NDgsNyArNjUwLDkgQEAgc3RhdGljIGludCBm aWJfbmxfZHVtcHJ1bGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldGxpbmtfY2FsbGJh Y2sgKmNiKQogCQlpZiAob3BzID09IE5VTEwpCiAJCQlyZXR1cm4gLUVBRk5PU1VQUE9SVDsKIAot CQlyZXR1cm4gZHVtcF9ydWxlcyhza2IsIGNiLCBvcHMpOworCQlkdW1wX3J1bGVzKHNrYiwgY2Is IG9wcyk7CisKKwkJcmV0dXJuIHNrYi0+bGVuOwogCX0KIAogCXJjdV9yZWFkX2xvY2soKTsKLS0g CjIuMS4wCgoKRnJvbSBlM2RjMzc4ZTYyM2UxYTEyZjNmZjE5ZTE5MzEwYjdiODU3MWI5MTBhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGcubmF1bHRAYWxw aGFsaW5rLmZyPgpEYXRlOiBUaHUsIDI0IFNlcCAyMDE1IDEyOjU0OjAxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAyNS8zMF0gcHBwOiBmaXggbG9ja2RlcCBzcGxhdCBpbiBwcHBfZGV2X3VuaW5pdCgp CgpbIFVwc3RyZWFtIGNvbW1pdCA1OGE4OWVjYWNhNTM3MzZhYTQ2NTE3MDUzMGFjZWE0ZjhiZTM0 YWI0IF0KCnBwcF9kZXZfdW5pbml0KCkgbG9ja3MgYWxsX3BwcF9tdXRleCB3aGlsZSB1bmRlciBy dG5sIG11dGV4IHByb3RlY3Rpb24uCnBwcF9jcmVhdGVfaW50ZXJmYWNlKCkgbXVzdCB0aGVuIGxv Y2sgdGhlc2UgbXV0ZXhlcyBpbiB0aGF0IHNhbWUgb3JkZXIKdG8gYXZvaWQgcG9zc2libGUgZGVh ZGxvY2suCgpbICAxMjAuODgwMDExXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KWyAgMTIwLjg4MDAxMV0gWyBJTkZPOiBwb3NzaWJsZSBjaXJj dWxhciBsb2NraW5nIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgXQpbICAxMjAuODgwMDExXSA0LjIuMCAj MSBOb3QgdGFpbnRlZApbICAxMjAuODgwMDExXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClsgIDEyMC44ODAwMTFdIHBwcC1hcGl0ZXN0LzE1 ODI3IGlzIHRyeWluZyB0byBhY3F1aXJlIGxvY2s6ClsgIDEyMC44ODAwMTFdICAoJnBuLT5hbGxf cHBwX211dGV4KXsrLisuKy59LCBhdDogWzxmZmZmZmZmZmEwMTQ1ZjU2Pl0gcHBwX2Rldl91bmlu aXQrMHg2NC8weGIwIFtwcHBfZ2VuZXJpY10KWyAgMTIwLjg4MDAxMV0KWyAgMTIwLjg4MDAxMV0g YnV0IHRhc2sgaXMgYWxyZWFkeSBob2xkaW5nIGxvY2s6ClsgIDEyMC44ODAwMTFdICAocnRubF9t dXRleCl7Ky4rLisufSwgYXQ6IFs8ZmZmZmZmZmY4MTJlNDI1NT5dIHJ0bmxfbG9jaysweDEyLzB4 MTQKWyAgMTIwLjg4MDAxMV0KWyAgMTIwLjg4MDAxMV0gd2hpY2ggbG9jayBhbHJlYWR5IGRlcGVu ZHMgb24gdGhlIG5ldyBsb2NrLgpbICAxMjAuODgwMDExXQpbICAxMjAuODgwMDExXQpbICAxMjAu ODgwMDExXSB0aGUgZXhpc3RpbmcgZGVwZW5kZW5jeSBjaGFpbiAoaW4gcmV2ZXJzZSBvcmRlcikg aXM6ClsgIDEyMC44ODAwMTFdClsgIDEyMC44ODAwMTFdIC0+ICMxIChydG5sX211dGV4KXsrLisu Ky59OgpbICAxMjAuODgwMDExXSAgICAgICAgWzxmZmZmZmZmZjgxMDczYTZmPl0gbG9ja19hY3F1 aXJlKzB4Y2YvMHgxMGUKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZmZmY4MTNhYjE4YT5d IG11dGV4X2xvY2tfbmVzdGVkKzB4NTYvMHgzNDEKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZm ZmZmZmY4MTJlNDI1NT5dIHJ0bmxfbG9jaysweDEyLzB4MTQKWyAgMTIwLjg4MDAxMV0gICAgICAg IFs8ZmZmZmZmZmY4MTJkOWQ5ND5dIHJlZ2lzdGVyX25ldGRldisweDExLzB4MjcKWyAgMTIwLjg4 MDAxMV0gICAgICAgIFs8ZmZmZmZmZmZhMDE0N2IxNz5dIHBwcF9pb2N0bCsweDI4OS8weGM5OCBb cHBwX2dlbmVyaWNdClsgIDEyMC44ODAwMTFdICAgICAgICBbPGZmZmZmZmZmODExM2IzNjc+XSBk b192ZnNfaW9jdGwrMHg0ZWEvMHg1MzIKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZmZmY4 MTEzYjNmZD5dIFN5U19pb2N0bCsweDRlLzB4N2QKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZm ZmZmZmY4MTNhZDdkNz5dIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxMi8weDZmClsgIDEy MC44ODAwMTFdClsgIDEyMC44ODAwMTFdIC0+ICMwICgmcG4tPmFsbF9wcHBfbXV0ZXgpeysuKy4r Ln06ClsgIDEyMC44ODAwMTFdICAgICAgICBbPGZmZmZmZmZmODEwNzMzNGU+XSBfX2xvY2tfYWNx dWlyZSsweGIwNy8weGU3NgpbICAxMjAuODgwMDExXSAgICAgICAgWzxmZmZmZmZmZjgxMDczYTZm Pl0gbG9ja19hY3F1aXJlKzB4Y2YvMHgxMGUKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZm ZmY4MTNhYjE4YT5dIG11dGV4X2xvY2tfbmVzdGVkKzB4NTYvMHgzNDEKWyAgMTIwLjg4MDAxMV0g ICAgICAgIFs8ZmZmZmZmZmZhMDE0NWY1Nj5dIHBwcF9kZXZfdW5pbml0KzB4NjQvMHhiMCBbcHBw X2dlbmVyaWNdClsgIDEyMC44ODAwMTFdICAgICAgICBbPGZmZmZmZmZmODEyZDUyNjM+XSByb2xs YmFja19yZWdpc3RlcmVkX21hbnkrMHgxOWUvMHgyNTIKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8 ZmZmZmZmZmY4MTJkNTM4MT5dIHJvbGxiYWNrX3JlZ2lzdGVyZWQrMHgyOS8weDM4ClsgIDEyMC44 ODAwMTFdICAgICAgICBbPGZmZmZmZmZmODEyZDUzZmE+XSB1bnJlZ2lzdGVyX25ldGRldmljZV9x dWV1ZSsweDZhLzB4NzcKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZmZmZhMDE0NmE5ND5d IHBwcF9yZWxlYXNlKzB4NDIvMHg3OSBbcHBwX2dlbmVyaWNdClsgIDEyMC44ODAwMTFdICAgICAg ICBbPGZmZmZmZmZmODExMmQ5ZjY+XSBfX2ZwdXQrMHhlYy8weDE5MgpbICAxMjAuODgwMDExXSAg ICAgICAgWzxmZmZmZmZmZjgxMTJkYWNjPl0gX19fX2ZwdXQrMHg5LzB4YgpbICAxMjAuODgwMDEx XSAgICAgICAgWzxmZmZmZmZmZjgxMDU0NDdhPl0gdGFza193b3JrX3J1bisweDY2LzB4ODAKWyAg MTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZmZmY4MTAwMTgwMT5dIHByZXBhcmVfZXhpdF90b191 c2VybW9kZSsweDhjLzB4YTcKWyAgMTIwLjg4MDAxMV0gICAgICAgIFs8ZmZmZmZmZmY4MTAwMTkw MD5dIHN5c2NhbGxfcmV0dXJuX3Nsb3dwYXRoKzB4ZTQvMHgxMDQKWyAgMTIwLjg4MDAxMV0gICAg ICAgIFs8ZmZmZmZmZmY4MTNhZDkzMT5dIGludF9yZXRfZnJvbV9zeXNfY2FsbCsweDI1LzB4OWYK WyAgMTIwLjg4MDAxMV0KWyAgMTIwLjg4MDAxMV0gb3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAg dXMgZGVidWcgdGhpczoKWyAgMTIwLjg4MDAxMV0KWyAgMTIwLjg4MDAxMV0gIFBvc3NpYmxlIHVu c2FmZSBsb2NraW5nIHNjZW5hcmlvOgpbICAxMjAuODgwMDExXQpbICAxMjAuODgwMDExXSAgICAg ICAgQ1BVMCAgICAgICAgICAgICAgICAgICAgQ1BVMQpbICAxMjAuODgwMDExXSAgICAgICAgLS0t LSAgICAgICAgICAgICAgICAgICAgLS0tLQpbICAxMjAuODgwMDExXSAgIGxvY2socnRubF9tdXRl eCk7ClsgIDEyMC44ODAwMTFdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrKCZw bi0+YWxsX3BwcF9tdXRleCk7ClsgIDEyMC44ODAwMTFdICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsb2NrKHJ0bmxfbXV0ZXgpOwpbICAxMjAuODgwMDExXSAgIGxvY2soJnBuLT5hbGxf cHBwX211dGV4KTsKWyAgMTIwLjg4MDAxMV0KWyAgMTIwLjg4MDAxMV0gICoqKiBERUFETE9DSyAq KioKCkZpeGVzOiA4Y2I3NzViYzBhMzQgKCJwcHA6IGZpeCBkZXZpY2UgdW5yZWdpc3RyYXRpb24g dXBvbiBuZXRucyBkZWxldGlvbiIpClJlcG9ydGVkLWJ5OiBTZWRhdCBEaWxlayA8c2VkYXQuZGls ZWtAZ21haWwuY29tPgpUZXN0ZWQtYnk6IFNlZGF0IERpbGVrIDxzZWRhdC5kaWxla0BnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Zy5uYXVsdEBhbHBoYWxpbmsuZnI+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BwcC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKaW5kZXgg ZmE4ZjUwNC4uNDg3YmUyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmlj LmMKKysrIGIvZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMKQEAgLTI3NDIsNiArMjc0Miw3 IEBAIHN0YXRpYyBzdHJ1Y3QgcHBwICpwcHBfY3JlYXRlX2ludGVyZmFjZShzdHJ1Y3QgbmV0ICpu ZXQsIGludCB1bml0LAogCSAqLwogCWRldl9uZXRfc2V0KGRldiwgbmV0KTsKIAorCXJ0bmxfbG9j aygpOwogCW11dGV4X2xvY2soJnBuLT5hbGxfcHBwX211dGV4KTsKIAogCWlmICh1bml0IDwgMCkg ewpAQCAtMjc3Miw3ICsyNzczLDcgQEAgc3RhdGljIHN0cnVjdCBwcHAgKnBwcF9jcmVhdGVfaW50 ZXJmYWNlKHN0cnVjdCBuZXQgKm5ldCwgaW50IHVuaXQsCiAJcHBwLT5maWxlLmluZGV4ID0gdW5p dDsKIAlzcHJpbnRmKGRldi0+bmFtZSwgInBwcCVkIiwgdW5pdCk7CiAKLQlyZXQgPSByZWdpc3Rl cl9uZXRkZXYoZGV2KTsKKwlyZXQgPSByZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKIAlpZiAocmV0 ICE9IDApIHsKIAkJdW5pdF9wdXQoJnBuLT51bml0c19pZHIsIHVuaXQpOwogCQluZXRkZXZfZXJy KHBwcC0+ZGV2LCAiUFBQOiBjb3VsZG4ndCByZWdpc3RlciBkZXZpY2UgJXMgKCVkKVxuIiwKQEAg LTI3ODQsNiArMjc4NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcHBwICpwcHBfY3JlYXRlX2ludGVyZmFj ZShzdHJ1Y3QgbmV0ICpuZXQsIGludCB1bml0LAogCiAJYXRvbWljX2luYygmcHBwX3VuaXRfY291 bnQpOwogCW11dGV4X3VubG9jaygmcG4tPmFsbF9wcHBfbXV0ZXgpOworCXJ0bmxfdW5sb2NrKCk7 CiAKIAkqcmV0cCA9IDA7CiAJcmV0dXJuIHBwcDsKLS0gCjIuMS4wCgoKRnJvbSBkODJkOTJlMzU1 MzVlYmFhZmVmNGJhZDYwNDkzZDFlMjg3M2ZkN2E5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAy MCBKdWwgMjAxNSAxNzo0OTo1NSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjYvMzBdIG5ldDogZHNh OiBiY21fc2YyOiBEbyBub3Qgb3ZlcnJpZGUgc3BlZWQgc2V0dGluZ3MKClsgVXBzdHJlYW0gZDJl YWM5OGY3ZDFiOTUwYjc2MmE3ZWNhMDVhOWNlMGVhMWQ4NzhkMiBpbiBuZXQtbmV4dCB0cmVlLAog IHdpbGwgYmUgcHVzaGVkIHRvIExpbnVzIHZlcnkgc29vbi4gXQoKVGhlIFNGMiBkcml2ZXIgY3Vy cmVudGx5IG92ZXJyaWRlcyBzcGVlZCBzZXR0aW5ncyBmb3IgaXRzIHBvcnQKY29uZmlndXJlZCB1 c2luZyBhIGZpeGVkIFBIWSwgdGhpcyBpcyBib3RoIHVubmVjZXNzYXJ5IGFuZCBpbmNvcnJlY3Qs CmJlY2F1c2Ugd2Uga2VlcCBmZWVkYmFjayB0byB0aGUgaGFyZHdhcmUgcGFyYW1ldGVycyB0aGF0 IHdlIHJlYWQgZnJvbQp0aGUgUEhZIGRldmljZSwgd2hpY2ggaW4gdGhlIGNhc2Ugb2YgYSBmaXhl ZCBQSFkgY2Fubm90IHBvc3NpYmx5IGNoYW5nZQpzcGVlZC4KClRoaXMgaXMgYSByZXF1aXJlZCBj aGFuZ2UgdG8gYWxsb3cgdGhlIGZpeGVkIFBIWSBjb2RlIHRvIGFsbG93CnJlZ2lzdGVyaW5nIGEg UEhZIHdpdGggYSBsaW5rIGNvbmZpZ3VyZWQgYXMgRE9XTiBieSBkZWZhdWx0IGFuZCBhdm9pZApz b21lIHNvcnQgb2YgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aGVyZSB3ZSByZXF1aXJlIHRoZSBsaW5r X3VwZGF0ZQpjYWxsYmFjayB0byBydW4gdG8gcHJvZ3JhbSB0aGUgaGFyZHdhcmUsIGFuZCB3ZSB0 aGVuIHV0aWxpemUgdGhlIGZpeGVkClBIWSBwYXJhbWV0ZXJzIHRvIHByb2dyYW0gdGhlIGhhcmR3 YXJlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MuCgpGaXhlczogMjQ2ZDdmNzczYzEzICgibmV0OiBk c2E6IGFkZCBCcm9hZGNvbSBTRjIgc3dpdGNoIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IEZsb3Jp YW4gRmFpbmVsbGkgPGYuZmFpbmVsbGlAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL2JjbV9z ZjIuYyB8IDE4ICstLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvYmNtX3Nm Mi5jIGIvZHJpdmVycy9uZXQvZHNhL2JjbV9zZjIuYwppbmRleCA2OTFjYWVhLi45ZDU2NTE1IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvYmNtX3NmMi5jCisrKyBiL2RyaXZlcnMvbmV0L2Rz YS9iY21fc2YyLmMKQEAgLTkwNSwxNSArOTA1LDExIEBAIHN0YXRpYyB2b2lkIGJjbV9zZjJfc3df Zml4ZWRfbGlua191cGRhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAkJCQkJ IHN0cnVjdCBmaXhlZF9waHlfc3RhdHVzICpzdGF0dXMpCiB7CiAJc3RydWN0IGJjbV9zZjJfcHJp diAqcHJpdiA9IGRzX3RvX3ByaXYoZHMpOwotCXUzMiBkdXBsZXgsIHBhdXNlLCBzcGVlZDsKKwl1 MzIgZHVwbGV4LCBwYXVzZTsKIAl1MzIgcmVnOwogCiAJZHVwbGV4ID0gY29yZV9yZWFkbChwcml2 LCBDT1JFX0RVUFNUUyk7CiAJcGF1c2UgPSBjb3JlX3JlYWRsKHByaXYsIENPUkVfUEFVU0VTVFMp OwotCXNwZWVkID0gY29yZV9yZWFkbChwcml2LCBDT1JFX1NQRFNUUyk7Ci0KLQlzcGVlZCA+Pj0g KHBvcnQgKiBTUERTVFNfU0hJRlQpOwotCXNwZWVkICY9IFNQRFNUU19NQVNLOwogCiAJc3RhdHVz LT5saW5rID0gMDsKIApAQCAtOTQ4LDE4ICs5NDQsNiBAQCBzdGF0aWMgdm9pZCBiY21fc2YyX3N3 X2ZpeGVkX2xpbmtfdXBkYXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsCiAJCXJl ZyAmPSB+TElOS19TVFM7CiAJY29yZV93cml0ZWwocHJpdiwgcmVnLCBDT1JFX1NUU19PVkVSUklE RV9HTUlJUF9QT1JUKHBvcnQpKTsKIAotCXN3aXRjaCAoc3BlZWQpIHsKLQljYXNlIFNQRFNUU18x MDoKLQkJc3RhdHVzLT5zcGVlZCA9IFNQRUVEXzEwOwotCQlicmVhazsKLQljYXNlIFNQRFNUU18x MDA6Ci0JCXN0YXR1cy0+c3BlZWQgPSBTUEVFRF8xMDA7Ci0JCWJyZWFrOwotCWNhc2UgU1BEU1RT XzEwMDA6Ci0JCXN0YXR1cy0+c3BlZWQgPSBTUEVFRF8xMDAwOwotCQlicmVhazsKLQl9Ci0KIAlp ZiAoKHBhdXNlICYgKDEgPDwgcG9ydCkpICYmCiAJICAgIChwYXVzZSAmICgxIDw8IChwb3J0ICsg UEFVU0VTVFNfVFhfUEFVU0VfU0hJRlQpKSkpIHsKIAkJc3RhdHVzLT5hc3ltX3BhdXNlID0gMTsK LS0gCjIuMS4wCgoKRnJvbSA3YjM3MTNkYjE2YWM1MWFkODBkODU1YmI5NmRkZGY0NGU3N2RmMjRk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAbGlzdC5y dT4KRGF0ZTogTW9uLCAyMCBKdWwgMjAxNSAxNzo0OTo1NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0gg MjcvMzBdIG5ldDogcGh5OiBmaXhlZF9waHk6IGhhbmRsZSBsaW5rLWRvd24gY2FzZQoKWyBVcHN0 cmVhbSA4NjhhNDIxNWJlOWE2ZDgwNTQ4Y2NiNzQ3NjNiODgzZGM5OWQzMmEyIGluIG5ldC1uZXh0 IHRyZWUsCiAgd2lsbCBiZSBwdXNoZWQgdG8gTGludXMgdmVyeSBzb29uLiBdCgpmaXhlZF9waHlf cmVnaXN0ZXIoKSBjdXJyZW50bHkgaGFyZGNvZGVzIHRoZSBmaXhlZCBQSFkgbGluayB0byAxLCBh bmQKZXhwZWN0cyB0byBmaW5kIGEgInNwZWVkIiBwYXJhbWV0ZXIgdG8gcHJvdmlkZSBjb3JyZWN0 IGluZm9ybWF0aW9uCnRvd2FyZHMgdGhlIGZpeGVkIFBIWSBjb25zdW1lci4KCkluIGEgc3Vic2Vx dWVudCBjaGFuZ2UsIHdoZXJlIHdlIGFsbG93ICJtYW5hZ2VkIiAoZS5nOiAoUlMpR01JSSBpbi1i YW5kCnN0YXR1cyBhdXRvLW5lZ290aWF0aW9uKSBmaXhlZCBQSFlzLCBub25lIG9mIHRoZXNlIHBh cmFtZXRlcnMgY2FuIGJlCnByb3ZpZGVkIHNpbmNlIHRoZXkgd2lsbCBiZSBhdXRvLW5lZ290aWF0 ZWQsIGhlbmNlLCB3ZSBqdXN0IHByb3ZpZGUgYQp6ZXJvLWluaXRpYWxpemVkIGZpeGVkX3BoeV9z dGF0dXMgdG8gZml4ZWRfcGh5X3JlZ2lzdGVyKCkgd2hpY2ggbWFrZXMgaXQKZmFpbCB3aGVuIHdl IGNhbGwgZml4ZWRfcGh5X3VwZGF0ZV9yZWdzKCkgc2luY2Ugc3RhdHVzLnNwZWVkID0gMCB3aGlj aAptYWtlcyB1cyBoaXQgdGhlICJkZWZhdWx0IiBsYWJlbCBhbmQgZXJyb3Igb3V0LgoKV2l0aG91 dCB0aGlzIGNoYW5nZSwgd2Ugd291bGQgYWxzbyBzZWUgcG90ZW50aWFsbHkgaW5jb25zaXN0ZW50 CnNwZWVkL2R1cGxleCBwYXJhbWV0ZXJzIGZvciBmaXhlZCBQSFlzIHdoZW4gdGhlIGxpbmsgaXMg RE9XTi4KCkNDOiBuZXRkZXZAdmdlci5rZXJuZWwub3JnCkNDOiBsaW51eC1rZXJuZWxAdmdlci5r ZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vm b3JnZS5uZXQ+CltmbG9yaWFuOiBhZGQgbW9yZSBiYWNrZ3JvdW5kIHRvIHdoeSB0aGlzIGlzIGNv cnJlY3QgYW5kIGRlc2lyYWJsZV0KU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5m YWluZWxsaUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvZml4ZWRfcGh5LmMgfCA4ICsrKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9maXhlZF9waHkuYyBiL2RyaXZlcnMvbmV0L3BoeS9m aXhlZF9waHkuYwppbmRleCBkN2E2NTI0Li45OWQ5YmMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9waHkvZml4ZWRfcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L2ZpeGVkX3BoeS5jCkBAIC01 Miw2ICs1MiwxMCBAQCBzdGF0aWMgaW50IGZpeGVkX3BoeV91cGRhdGVfcmVncyhzdHJ1Y3QgZml4 ZWRfcGh5ICpmcCkKIAl1MTYgbHBhZ2IgPSAwOwogCXUxNiBscGEgPSAwOwogCisJaWYgKCFmcC0+ c3RhdHVzLmxpbmspCisJCWdvdG8gZG9uZTsKKwlibXNyIHw9IEJNU1JfTFNUQVRVUyB8IEJNU1Jf QU5FR0NPTVBMRVRFOworCiAJaWYgKGZwLT5zdGF0dXMuZHVwbGV4KSB7CiAJCWJtY3IgfD0gQk1D Ul9GVUxMRFBMWDsKIApAQCAtOTYsMTUgKzEwMCwxMyBAQCBzdGF0aWMgaW50IGZpeGVkX3BoeV91 cGRhdGVfcmVncyhzdHJ1Y3QgZml4ZWRfcGh5ICpmcCkKIAkJfQogCX0KIAotCWlmIChmcC0+c3Rh dHVzLmxpbmspCi0JCWJtc3IgfD0gQk1TUl9MU1RBVFVTIHwgQk1TUl9BTkVHQ09NUExFVEU7Ci0K IAlpZiAoZnAtPnN0YXR1cy5wYXVzZSkKIAkJbHBhIHw9IExQQV9QQVVTRV9DQVA7CiAKIAlpZiAo ZnAtPnN0YXR1cy5hc3ltX3BhdXNlKQogCQlscGEgfD0gTFBBX1BBVVNFX0FTWU07CiAKK2RvbmU6 CiAJZnAtPnJlZ3NbTUlJX1BIWVNJRDFdID0gMDsKIAlmcC0+cmVnc1tNSUlfUEhZU0lEMl0gPSAw OwogCi0tIAoyLjEuMAoKCkZyb20gZGVjOThkZDRiZjYxMDdmMWRlNzk2NjgxMTlhMzQzNGZmMTJi MDRlNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3RhcyBTZXJnZWV2IDxzdHNwQGxp c3QucnU+CkRhdGU6IE1vbiwgMjAgSnVsIDIwMTUgMTc6NDk6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIIDI4LzMwXSBvZl9tZGlvOiBhZGQgbmV3IERUIHByb3BlcnR5ICdtYW5hZ2VkJyB0byBzcGVj aWZ5IHRoZQogUEhZIG1hbmFnZW1lbnQgdHlwZQoKWyBVcHN0cmVhbSBjb21taXQgNGNiYTVjMjEw MzY1N2Q0M2QwODg2ZTRjZmY4MDA0ZDk1YTNkMGRlZiBpbiBuZXQtbmV4dCB0cmVlLAogIHdpbGwg YmUgcHVzaGVkIHRvIExpbnVzIHZlcnkgc29vbi4gXQoKQ3VycmVudGx5IHRoZSBQSFkgbWFuYWdl bWVudCB0eXBlIGlzIHNlbGVjdGVkIGJ5IHRoZSBNQUMgZHJpdmVyIGFyYml0cmFyeS4KVGhlIGRl Y2lzaW9uIGlzIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgImZpeGVkLWxpbmsiIG5vZGUg YW5kIG9uIGEKd2lsbCBvZiB0aGUgZHJpdmVyJ3MgYXV0aG9ycy4KVGhpcyBjYXVzZWQgYSByZWdy ZXNzaW9uIHJlY2VudGx5LCB3aGVuIG12bmV0YSBkcml2ZXIgc3VkZGVubHkgc3RhcnRlZAp0byB1 c2UgdGhlIGluLWJhbmQgc3RhdHVzIGZvciBhdXRvLW5lZ290aWF0aW9uIG9uIGZpeGVkIGxpbmtz LgpJdCBhcHBlYXJzIHRoZSBhdXRvLW5lZ290aWF0aW9uIG1heSBub3Qgd29yayB3aGVuIGV4cGVj dGVkIGJ5IHRoZSBNQUMgZHJpdmVyLgpTZWJhc3RpZW4gUmFubm91IGV4cGxhaW5zOgo8PCBZZXMs IEkgY29uZmlybSB0aGF0IG15IEhXIGRvZXMgbm90IGdlbmVyYXRlIGFuIGluLWJhbmQgc3RhdHVz LiBBRkFJSywgaXQncwphIFBIWSB0aGF0IGFnZ3JlZ2F0ZXMgNHhTR01JSXMgdG8gMXhRU0dNSUkg OyB0aGUgTUFDIHNpZGUgb2YgdGhlIFBIWSAod2l0aAppbmJhbmQgc3RhdHVzKSBpcyBjb25uZWN0 ZWQgdG8gdGhlIHN3aXRjaCB0aHJvdWdoIFFTR01JSSwgYW5kIGluIHRoaXMgY29udGV4dAp3ZSBh cmUgb24gdGhlIG1lZGlhIHNpZGUgb2YgdGhlIFBIWS4gPj4KaHR0cHM6Ly9sa21sLm9yZy9sa21s LzIwMTUvNy8xMC8yMDYKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgbmV3IHN0cmluZyBwcm9w ZXJ0eSAnbWFuYWdlZCcgdGhhdCBhbGxvd3MKdGhlIHVzZXIgdG8gc2V0IHRoZSBtYW5hZ2VtZW50 IHR5cGUgZXhwbGljaXRseS4KVGhlIHN1cHBvcnRlZCB2YWx1ZXMgYXJlOgoiYXV0byIgLSBkZWZh dWx0LiBVc2VzIGVpdGhlciBNRElPIG9yIG5vdGhpbmcsIGRlcGVuZGluZyBvbiB0aGUgcHJlc2Vu Y2UKb2YgdGhlIGZpeGVkLWxpbmsgbm9kZQoiaW4tYmFuZC1zdGF0dXMiIC0gdXNlIGluLWJhbmQg c3RhdHVzCgpTaWduZWQtb2ZmLWJ5OiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNlZm9y Z2UubmV0PgoKQ0M6IFJvYiBIZXJyaW5nIDxyb2JoK2R0QGtlcm5lbC5vcmc+CkNDOiBQYXdlbCBN b2xsIDxwYXdlbC5tb2xsQGFybS5jb20+CkNDOiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBh cm0uY29tPgpDQzogSWFuIENhbXBiZWxsIDxpamMrZGV2aWNldHJlZUBoZWxsaW9uLm9yZy51az4K Q0M6IEt1bWFyIEdhbGEgPGdhbGFrQGNvZGVhdXJvcmEub3JnPgpDQzogRmxvcmlhbiBGYWluZWxs aSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkNDOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBs aW5hcm8ub3JnPgpDQzogZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcKQ0M6IGxpbnV4LWtlcm5l bEB2Z2VyLmtlcm5lbC5vcmcKQ0M6IG5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIERvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQudHh0IHwgIDQgKysrKwogZHJpdmVy cy9vZi9vZl9tZGlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysr KysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25l dC9ldGhlcm5ldC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0 aGVybmV0LnR4dAppbmRleCA0MWIzZjNmLi41ZDg4ZjM3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LnR4dAorKysgYi9Eb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2V0aGVybmV0LnR4dApAQCAtMjUsNyArMjUsMTEg QEAgVGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBjb21tb24gdG8gdGhlIEV0aGVybmV0IGNv bnRyb2xsZXJzOgogICBmbG93IGNvbnRyb2wgdGhyZXNob2xkcy4KIC0gdHgtZmlmby1kZXB0aDog dGhlIHNpemUgb2YgdGhlIGNvbnRyb2xsZXIncyB0cmFuc21pdCBmaWZvIGluIGJ5dGVzLiBUaGlz CiAgIGlzIHVzZWQgZm9yIGNvbXBvbmVudHMgdGhhdCBjYW4gaGF2ZSBjb25maWd1cmFibGUgZmlm byBzaXplcy4KKy0gbWFuYWdlZDogc3RyaW5nLCBzcGVjaWZpZXMgdGhlIFBIWSBtYW5hZ2VtZW50 IHR5cGUuIFN1cHBvcnRlZCB2YWx1ZXMgYXJlOgorICAiYXV0byIsICJpbi1iYW5kLXN0YXR1cyIu ICJhdXRvIiBpcyB0aGUgZGVmYXVsdCwgaXQgdXNlc3MgTURJTyBmb3IKKyAgbWFuYWdlbWVudCBp ZiBmaXhlZC1saW5rIGlzIG5vdCBzcGVjaWZpZWQuCiAKIENoaWxkIG5vZGVzIG9mIHRoZSBFdGhl cm5ldCBjb250cm9sbGVyIGFyZSB0eXBpY2FsbHkgdGhlIGluZGl2aWR1YWwgUEhZIGRldmljZXMK IGNvbm5lY3RlZCB2aWEgdGhlIE1ESU8gYnVzIChzb21ldGltZXMgdGhlIE1ESU8gYnVzIGNvbnRy b2xsZXIgaXMgc2VwYXJhdGUpLgogVGhleSBhcmUgZGVzY3JpYmVkIGluIHRoZSBwaHkudHh0IGZp bGUgaW4gdGhpcyBzYW1lIGRpcmVjdG9yeS4KK0ZvciBub24tTURJTyBQSFkgbWFuYWdlbWVudCBz ZWUgZml4ZWQtbGluay50eHQuCmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL29mX21kaW8uYyBiL2Ry aXZlcnMvb2Yvb2ZfbWRpby5jCmluZGV4IGZkYzYwZGIuLjdjOGMyM2MgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvb2Yvb2ZfbWRpby5jCisrKyBiL2RyaXZlcnMvb2Yvb2ZfbWRpby5jCkBAIC0yNjYsNyAr MjY2LDggQEAgRVhQT1JUX1NZTUJPTChvZl9waHlfYXR0YWNoKTsKIGJvb2wgb2ZfcGh5X2lzX2Zp eGVkX2xpbmsoc3RydWN0IGRldmljZV9ub2RlICpucCkKIHsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUg KmRuOwotCWludCBsZW47CisJaW50IGxlbiwgZXJyOworCWNvbnN0IGNoYXIgKm1hbmFnZWQ7CiAK IAkvKiBOZXcgYmluZGluZyAqLwogCWRuID0gb2ZfZ2V0X2NoaWxkX2J5X25hbWUobnAsICJmaXhl ZC1saW5rIik7CkBAIC0yNzUsNiArMjc2LDEwIEBAIGJvb2wgb2ZfcGh5X2lzX2ZpeGVkX2xpbmso c3RydWN0IGRldmljZV9ub2RlICpucCkKIAkJcmV0dXJuIHRydWU7CiAJfQogCisJZXJyID0gb2Zf cHJvcGVydHlfcmVhZF9zdHJpbmcobnAsICJtYW5hZ2VkIiwgJm1hbmFnZWQpOworCWlmIChlcnIg PT0gMCAmJiBzdHJjbXAobWFuYWdlZCwgImF1dG8iKSAhPSAwKQorCQlyZXR1cm4gdHJ1ZTsKKwog CS8qIE9sZCBiaW5kaW5nICovCiAJaWYgKG9mX2dldF9wcm9wZXJ0eShucCwgImZpeGVkLWxpbmsi LCAmbGVuKSAmJgogCSAgICBsZW4gPT0gKDUgKiBzaXplb2YoX19iZTMyKSkpCkBAIC0yODksOCAr Mjk0LDE4IEBAIGludCBvZl9waHlfcmVnaXN0ZXJfZml4ZWRfbGluayhzdHJ1Y3QgZGV2aWNlX25v ZGUgKm5wKQogCXN0cnVjdCBmaXhlZF9waHlfc3RhdHVzIHN0YXR1cyA9IHt9OwogCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqZml4ZWRfbGlua19ub2RlOwogCWNvbnN0IF9fYmUzMiAqZml4ZWRfbGlua19w cm9wOwotCWludCBsZW47CisJaW50IGxlbiwgZXJyOwogCXN0cnVjdCBwaHlfZGV2aWNlICpwaHk7 CisJY29uc3QgY2hhciAqbWFuYWdlZDsKKworCWVyciA9IG9mX3Byb3BlcnR5X3JlYWRfc3RyaW5n KG5wLCAibWFuYWdlZCIsICZtYW5hZ2VkKTsKKwlpZiAoZXJyID09IDApIHsKKwkJaWYgKHN0cmNt cChtYW5hZ2VkLCAiaW4tYmFuZC1zdGF0dXMiKSA9PSAwKSB7CisJCQkvKiBzdGF0dXMgaXMgemVy b2VkLCBuYW1lbHkgaXRzIC5saW5rIG1lbWJlciAqLworCQkJcGh5ID0gZml4ZWRfcGh5X3JlZ2lz dGVyKFBIWV9QT0xMLCAmc3RhdHVzLCBucCk7CisJCQlyZXR1cm4gSVNfRVJSKHBoeSkgPyBQVFJf RVJSKHBoeSkgOiAwOworCQl9CisJfQogCiAJLyogTmV3IGJpbmRpbmcgKi8KIAlmaXhlZF9saW5r X25vZGUgPSBvZl9nZXRfY2hpbGRfYnlfbmFtZShucCwgImZpeGVkLWxpbmsiKTsKLS0gCjIuMS4w CgoKRnJvbSBkNDdjZmI2NDNiNzU5NTRhZDU0MzQxZWU2MzM2OWM1OWNkM2JkNjcwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAbGlzdC5ydT4KRGF0ZTog TW9uLCAyMCBKdWwgMjAxNSAxNzo0OTo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjkvMzBdIG12 bmV0YTogdXNlIGluYmFuZCBzdGF0dXMgb25seSB3aGVuIGV4cGxpY2l0bHkgZW5hYmxlZAoKWyBV cHN0cmVhbSBjb21taXQgZjhhZjhlNmViOTUwOTNkNWNlNWViY2M1MmJkMTkyOWIwNDMzZTE3MiBp biBuZXQtbmV4dCB0cmVlLAogIHdpbGwgYmUgcHVzaGVkIHRvIExpbnVzIHZlcnkgc29vbi4gXQoK VGhlIGNvbW1pdCA4OThiMjk3MGUyYzkgKCJtdm5ldGE6IGltcGxlbWVudCBTR01JSS1iYXNlZCBp bi1iYW5kIGxpbmsgc3RhdGUKc2lnbmFsaW5nIikgaW1wbGVtZW50ZWQgdGhlIGxpbmsgcGFyYW1l dGVycyBhdXRvLW5lZ290aWF0aW9uIHVuY29uZGl0aW9uYWxseS4KVW5mb3J0dW5hdGVseSBpdCBh cHBlYXJzIHRoYXQgc29tZSBIVyB0aGF0IGltcGxlbWVudHMgU0dNSUkgcHJvdG9jb2wsCmRvZXNu J3QgZ2VuZXJhdGUgdGhlIGluYmFuZCBzdGF0dXMsIHNvIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBh dXRvLW5lZ290aWF0ZQphbnl0aGluZyB3aXRoIHN1Y2ggSFcuCgpUaGlzIHBhdGNoIGVuYWJsZXMg dGhlIGF1dG8tbmVnb3RpYXRpb24gb25seSBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoCnRo ZSAnbWFuYWdlZCcgRFQgcHJvcGVydHkuCgpUaGlzIHBhdGNoIGZpeGVzIHRoZSBmb2xsb3dpbmcg cmVncmVzc2lvbjoKaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTUvNy84Lzg2NQoKU2lnbmVkLW9m Zi1ieTogU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCkNDOiBUaG9t YXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGZyZWUtZWxlY3Ryb25zLmNvbT4KQ0M6IG5l dGRldkB2Z2VyLmtlcm5lbC5vcmcKQ0M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMgfCA5ICsrKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWFydmVsbC9tdm5ldGEuYwppbmRleCAwM2UwNTJhLi4wOWVjMzJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKQEAgLTMwMjksOCArMzAyOSw4IEBAIHN0YXRpYyBpbnQg bXZuZXRhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJY29uc3QgY2hhciAq ZHRfbWFjX2FkZHI7CiAJY2hhciBod19tYWNfYWRkcltFVEhfQUxFTl07CiAJY29uc3QgY2hhciAq bWFjX2Zyb207CisJY29uc3QgY2hhciAqbWFuYWdlZDsKIAlpbnQgcGh5X21vZGU7Ci0JaW50IGZp eGVkX3BoeSA9IDA7CiAJaW50IGVycjsKIAogCS8qIE91ciBtdWx0aXF1ZXVlIHN1cHBvcnQgaXMg bm90IGNvbXBsZXRlLCBzbyBmb3Igbm93LCBvbmx5CkBAIC0zMDY0LDcgKzMwNjQsNiBAQCBzdGF0 aWMgaW50IG12bmV0YV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQkJZGV2 X2VycigmcGRldi0+ZGV2LCAiY2Fubm90IHJlZ2lzdGVyIGZpeGVkIFBIWVxuIik7CiAJCQlnb3Rv IGVycl9mcmVlX2lycTsKIAkJfQotCQlmaXhlZF9waHkgPSAxOwogCiAJCS8qIEluIHRoZSBjYXNl IG9mIGEgZml4ZWQgUEhZLCB0aGUgRFQgbm9kZSBhc3NvY2lhdGVkCiAJCSAqIHRvIHRoZSBQSFkg aXMgdGhlIEV0aGVybmV0IE1BQyBEVCBub2RlLgpAQCAtMzA4OCw4ICszMDg3LDEwIEBAIHN0YXRp YyBpbnQgbXZuZXRhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcHAgPSBu ZXRkZXZfcHJpdihkZXYpOwogCXBwLT5waHlfbm9kZSA9IHBoeV9ub2RlOwogCXBwLT5waHlfaW50 ZXJmYWNlID0gcGh5X21vZGU7Ci0JcHAtPnVzZV9pbmJhbmRfc3RhdHVzID0gKHBoeV9tb2RlID09 IFBIWV9JTlRFUkZBQ0VfTU9ERV9TR01JSSkgJiYKLQkJCQlmaXhlZF9waHk7CisKKwllcnIgPSBv Zl9wcm9wZXJ0eV9yZWFkX3N0cmluZyhkbiwgIm1hbmFnZWQiLCAmbWFuYWdlZCk7CisJcHAtPnVz ZV9pbmJhbmRfc3RhdHVzID0gKGVyciA9PSAwICYmCisJCQkJIHN0cmNtcChtYW5hZ2VkLCAiaW4t YmFuZC1zdGF0dXMiKSA9PSAwKTsKIAogCXBwLT5jbGsgPSBkZXZtX2Nsa19nZXQoJnBkZXYtPmRl diwgTlVMTCk7CiAJaWYgKElTX0VSUihwcC0+Y2xrKSkgewotLSAKMi4xLjAKCgpGcm9tIGE4MGMx MWU3ZTAwYjljZmFjYjVkMGZmNDk0MDQ2MzZjOWIxMTQwODIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IENhcm9sIEwgU290byA8Y2xzb3RvQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTog VGh1LCAyNyBBdWcgMjAxNSAxNDo0MzoyNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMzAvMzBdIG5l dC9tbHg0X2NvcmU6IENhcHBpbmcgbnVtYmVyIG9mIHJlcXVlc3RlZCBNU0lYcyB0bwogTUFYX01T SVgKClsgVXBzdHJlYW0gY29tbWl0IDkyOTMyNjdhM2UyYTdhMjU1NWQ4ZGRjOGY5MzAxNTI1ZTVi MDNiMWIgXQoKV2UgY3VycmVudGx5IG1hbmFnZSBJUlFzIGluIHBvb2xfYm0gd2hpY2ggaXMgYSBi aXQgZmllbGQKb2YgTUFYX01TSVggYml0cy4gVGh1cywgYWxsb2NhdGluZyBtb3JlIHRoYW4gTUFY X01TSVgKaW50ZXJydXB0cyBjYW4ndCBiZSBtYW5hZ2VkIGluIHBvb2xfYm0uCkZpeGluZyB0aGlz IGJ5IGNhcHBpbmcgbnVtYmVyIG9mIHJlcXVlc3RlZCBNU0lYcyB0bwpNQVhfTVNJWC4KClNpZ25l ZC1vZmYtYnk6IE1hdGFuIEJhcmFrIDxtYXRhbmJAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBDYXJvbCBMIFNvdG8gPGNsc290b0BsaW51eC52bmV0LmlibS5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg0L21haW4uYyB8IDEwICsrKysrKysrKy0KIDEgZmlsZSBjaGFu Z2VkLCA5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDQvbWFpbi5jCmluZGV4IDI5YzJhMDEuLmE0MDg5NzcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDQvbWFpbi5jCkBAIC0yNjU0LDkgKzI2NTQsMTQgQEAg c3RhdGljIHZvaWQgbWx4NF9lbmFibGVfbXNpX3goc3RydWN0IG1seDRfZGV2ICpkZXYpCiAKIAlp ZiAobXNpX3gpIHsKIAkJaW50IG5yZXEgPSBkZXYtPmNhcHMubnVtX3BvcnRzICogbnVtX29ubGlu ZV9jcHVzKCkgKyAxOworCQlib29sIHNoYXJlZF9wb3J0cyA9IGZhbHNlOwogCiAJCW5yZXEgPSBt aW5fdChpbnQsIGRldi0+Y2Fwcy5udW1fZXFzIC0gZGV2LT5jYXBzLnJlc2VydmVkX2VxcywKIAkJ CSAgICAgbnJlcSk7CisJCWlmIChucmVxID4gTUFYX01TSVgpIHsKKwkJCW5yZXEgPSBNQVhfTVNJ WDsKKwkJCXNoYXJlZF9wb3J0cyA9IHRydWU7CisJCX0KIAogCQllbnRyaWVzID0ga2NhbGxvYyhu cmVxLCBzaXplb2YgKmVudHJpZXMsIEdGUF9LRVJORUwpOwogCQlpZiAoIWVudHJpZXMpCkBAIC0y Njc5LDYgKzI2ODQsOSBAQCBzdGF0aWMgdm9pZCBtbHg0X2VuYWJsZV9tc2lfeChzdHJ1Y3QgbWx4 NF9kZXYgKmRldikKIAkJYml0bWFwX3plcm8ocHJpdi0+ZXFfdGFibGUuZXFbTUxYNF9FUV9BU1lO Q10uYWN0dl9wb3J0cy5wb3J0cywKIAkJCSAgICBkZXYtPmNhcHMubnVtX3BvcnRzKTsKIAorCQlp ZiAoTUxYNF9JU19MRUdBQ1lfRVFfTU9ERShkZXYtPmNhcHMpKQorCQkJc2hhcmVkX3BvcnRzID0g dHJ1ZTsKKwogCQlmb3IgKGkgPSAwOyBpIDwgZGV2LT5jYXBzLm51bV9jb21wX3ZlY3RvcnMgKyAx OyBpKyspIHsKIAkJCWlmIChpID09IE1MWDRfRVFfQVNZTkMpCiAJCQkJY29udGludWU7CkBAIC0y Njg2LDcgKzI2OTQsNyBAQCBzdGF0aWMgdm9pZCBtbHg0X2VuYWJsZV9tc2lfeChzdHJ1Y3QgbWx4 NF9kZXYgKmRldikKIAkJCXByaXYtPmVxX3RhYmxlLmVxW2ldLmlycSA9CiAJCQkJZW50cmllc1tp ICsgMSAtICEhKGkgPiBNTFg0X0VRX0FTWU5DKV0udmVjdG9yOwogCi0JCQlpZiAoTUxYNF9JU19M RUdBQ1lfRVFfTU9ERShkZXYtPmNhcHMpKSB7CisJCQlpZiAoc2hhcmVkX3BvcnRzKSB7CiAJCQkJ Yml0bWFwX2ZpbGwocHJpdi0+ZXFfdGFibGUuZXFbaV0uYWN0dl9wb3J0cy5wb3J0cywKIAkJCQkJ ICAgIGRldi0+Y2Fwcy5udW1fcG9ydHMpOwogCQkJCS8qIFdlIGRvbid0IHNldCBhZmZpbml0eSBo aW50IHdoZW4gdGhlcmUKLS0gCjIuMS4wCgo= ----Next_Part(Mon_Sep_28_21_54_08_2015_173)----