From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from imap1.codethink.co.uk ([176.9.8.82]:41944 "EHLO imap1.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726435AbeLMUYh (ORCPT ); Thu, 13 Dec 2018 15:24:37 -0500 Message-ID: <1544732664.19315.59.camel@codethink.co.uk> Subject: Fix for CVE-2018-1120 in 4.4 From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable , Lorenzo Stoakes , Linus Torvalds , Willy Tarreau Date: Thu, 13 Dec 2018 20:24:24 +0000 Content-Type: multipart/mixed; boundary="=-vW55sKj3yhpxhgppJye8" Mime-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: --=-vW55sKj3yhpxhgppJye8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit I've backported changes to fix CVE-2018-1120 (denial of service via FUSE-backed /proc/PID/cmdline) in 4.4-stable. See for an explanation of the issue. This was already fixed in newer stable branches, but the fix depended on API changes made in 4.9. The API changes are fairly straightforward and should be low risk, so the attached patches include those API changes. I verified that the proof-of-concept no longer works after these changes, and that there were no regressions in the user-copy and vm self-tests. I leave it to you to decide whether it's worthwhile to fix this in 4.4. Ben. -- Ben Hutchings, Software Developer   Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-vW55sKj3yhpxhgppJye8 Content-Type: application/mbox; name="security-4.4-CVE-2018-1120.mbox" Content-Disposition: attachment; filename="security-4.4-CVE-2018-1120.mbox" Content-Transfer-Encoding: base64 RnJvbSBjMGY5MzgxMzhkNTk4YjdlMTQzMTE5MjY5NTIxYjg4MzM2YTVmMjA2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMb3JlbnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCAxMyBPY3QgMjAxNiAwMToyMDoxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTBdIG1tOiByZW1vdmUgd3JpdGUvZm9yY2UgcGFyYW1ldGVycyBmcm9tCiBfX2dldF91c2VyX3Bh Z2VzX2xvY2tlZCgpCgpjb21taXQgODU5MTEwZDc0OTdjZGQwZTZiMjEwMTBkNmY3NzcwNDlkNjc2 MzgyYyB1cHN0cmVhbS4KClRoaXMgcmVtb3ZlcyB0aGUgcmVkdW5kYW50ICd3cml0ZScgYW5kICdm b3JjZScgcGFyYW1ldGVycyBmcm9tCl9fZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKCkgdG8gbWFrZSB0 aGUgdXNlIG9mIEZPTExfRk9SQ0UgZXhwbGljaXQgaW4KY2FsbGVycyBhcyB1c2Ugb2YgdGhpcyBm bGFnIGNhbiByZXN1bHQgaW4gc3VycHJpc2luZyBiZWhhdmlvdXIgKGFuZApoZW5jZSBidWdzKSB3 aXRoaW4gdGhlIG1tIHN1YnN5c3RlbS4KClNpZ25lZC1vZmYtYnk6IExvcmVuem8gU3RvYWtlcyA8 bHN0b2FrZXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4K QWNrZWQtYnk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBM aW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Cltid2g6IEJhY2tw b3J0ZWQgdG8gNC40OgogLSBEcm9wIGNoYW5nZSBpbiBnZXRfdXNlcl9wYWdlc19yZW1vdGUoKQog LSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNo aW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogbW0vZ3VwLmMgfCAzNyArKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwg MTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW0vZ3VwLmMgYi9tbS9ndXAuYwppbmRleCAw MTgxNDRjNGI5ZWMuLmJlZDc1OGY3YmQ2MyAxMDA2NDQKLS0tIGEvbW0vZ3VwLmMKKysrIGIvbW0v Z3VwLmMKQEAgLTYyNyw3ICs2MjcsNiBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgX19n ZXRfdXNlcl9wYWdlc19sb2NrZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJCQkJCQlzdHJ1 Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkJCXVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkJCQl1bnNp Z25lZCBsb25nIG5yX3BhZ2VzLAotCQkJCQkJaW50IHdyaXRlLCBpbnQgZm9yY2UsCiAJCQkJCQlz dHJ1Y3QgcGFnZSAqKnBhZ2VzLAogCQkJCQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqdm1hcywK IAkJCQkJCWludCAqbG9ja2VkLCBib29sIG5vdGlmeV9kcm9wLApAQCAtNjQ1LDEwICs2NDQsNiBA QCBzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgX19nZXRfdXNlcl9wYWdlc19sb2NrZWQoc3Ry dWN0IHRhc2tfc3RydWN0ICp0c2ssCiAKIAlpZiAocGFnZXMpCiAJCWZsYWdzIHw9IEZPTExfR0VU OwotCWlmICh3cml0ZSkKLQkJZmxhZ3MgfD0gRk9MTF9XUklURTsKLQlpZiAoZm9yY2UpCi0JCWZs YWdzIHw9IEZPTExfRk9SQ0U7CiAKIAlwYWdlc19kb25lID0gMDsKIAlsb2NrX2Ryb3BwZWQgPSBm YWxzZTsKQEAgLTc0NSw4ICs3NDAsMTUgQEAgbG9uZyBnZXRfdXNlcl9wYWdlc19sb2NrZWQoc3Ry dWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgaW50IHdy aXRlLCBpbnQgZm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJCQkgICBpbnQgKmxvY2tlZCkK IHsKLQlyZXR1cm4gX19nZXRfdXNlcl9wYWdlc19sb2NrZWQodHNrLCBtbSwgc3RhcnQsIG5yX3Bh Z2VzLCB3cml0ZSwgZm9yY2UsCi0JCQkJICAgICAgIHBhZ2VzLCBOVUxMLCBsb2NrZWQsIHRydWUs IEZPTExfVE9VQ0gpOworCXVuc2lnbmVkIGludCBmbGFncyA9IEZPTExfVE9VQ0g7CisKKwlpZiAo d3JpdGUpCisJCWZsYWdzIHw9IEZPTExfV1JJVEU7CisJaWYgKGZvcmNlKQorCQlmbGFncyB8PSBG T0xMX0ZPUkNFOworCisJcmV0dXJuIF9fZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHRzaywgbW0sIHN0 YXJ0LCBucl9wYWdlcywKKwkJCQkgICAgICAgcGFnZXMsIE5VTEwsIGxvY2tlZCwgdHJ1ZSwgZmxh Z3MpOwogfQogRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlc19sb2NrZWQpOwogCkBAIC03Njcs OSArNzY5LDE1IEBAIF9fYWx3YXlzX2lubGluZSBsb25nIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2Nr ZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtCiB7CiAJbG9uZyByZXQ7CiAJaW50 IGxvY2tlZCA9IDE7CisKKwlpZiAod3JpdGUpCisJCWd1cF9mbGFncyB8PSBGT0xMX1dSSVRFOwor CWlmIChmb3JjZSkKKwkJZ3VwX2ZsYWdzIHw9IEZPTExfRk9SQ0U7CisKIAlkb3duX3JlYWQoJm1t LT5tbWFwX3NlbSk7Ci0JcmV0ID0gX19nZXRfdXNlcl9wYWdlc19sb2NrZWQodHNrLCBtbSwgc3Rh cnQsIG5yX3BhZ2VzLCB3cml0ZSwgZm9yY2UsCi0JCQkJICAgICAgcGFnZXMsIE5VTEwsICZsb2Nr ZWQsIGZhbHNlLCBndXBfZmxhZ3MpOworCXJldCA9IF9fZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHRz aywgbW0sIHN0YXJ0LCBucl9wYWdlcywgcGFnZXMsIE5VTEwsCisJCQkJICAgICAgJmxvY2tlZCwg ZmFsc2UsIGd1cF9mbGFncyk7CiAJaWYgKGxvY2tlZCkKIAkJdXBfcmVhZCgmbW0tPm1tYXBfc2Vt KTsKIAlyZXR1cm4gcmV0OwpAQCAtODYxLDggKzg2OSwxNSBAQCBsb25nIGdldF91c2VyX3BhZ2Vz KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJdW5zaWdu ZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywgaW50IHdyaXRlLAogCQlpbnQg Zm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKnZtYXMp CiB7Ci0JcmV0dXJuIF9fZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHRzaywgbW0sIHN0YXJ0LCBucl9w YWdlcywgd3JpdGUsIGZvcmNlLAotCQkJCSAgICAgICBwYWdlcywgdm1hcywgTlVMTCwgZmFsc2Us IEZPTExfVE9VQ0gpOworCXVuc2lnbmVkIGludCBmbGFncyA9IEZPTExfVE9VQ0g7CisKKwlpZiAo d3JpdGUpCisJCWZsYWdzIHw9IEZPTExfV1JJVEU7CisJaWYgKGZvcmNlKQorCQlmbGFncyB8PSBG T0xMX0ZPUkNFOworCisJcmV0dXJuIF9fZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHRzaywgbW0sIHN0 YXJ0LCBucl9wYWdlcywKKwkJCQkgICAgICAgcGFnZXMsIHZtYXMsIE5VTEwsIGZhbHNlLCBmbGFn cyk7CiB9CiBFWFBPUlRfU1lNQk9MKGdldF91c2VyX3BhZ2VzKTsKIAoKRnJvbSAzY2ViMDc4Y2Fi NmI0ZmUxY2Y2MWNiZDhhNzZjZjk3MmZiOWJmMDhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBMb3JlbnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMyBP Y3QgMjAxNiAwMToyMDoxMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTBdIG1tOiByZW1vdmUg d3JpdGUvZm9yY2UgcGFyYW1ldGVycyBmcm9tCiBfX2dldF91c2VyX3BhZ2VzX3VubG9ja2VkKCkK CmNvbW1pdCBkNDk0NGIwZWNlYzBhZjg4MjQ4M2ZlNDRiNjY3MjkzMTZlNTc1MjA4IHVwc3RyZWFt LgoKVGhpcyByZW1vdmVzIHRoZSByZWR1bmRhbnQgJ3dyaXRlJyBhbmQgJ2ZvcmNlJyBwYXJhbWV0 ZXJzIGZyb20KX19nZXRfdXNlcl9wYWdlc191bmxvY2tlZCgpIHRvIG1ha2UgdGhlIHVzZSBvZiBG T0xMX0ZPUkNFIGV4cGxpY2l0IGluCmNhbGxlcnMgYXMgdXNlIG9mIHRoaXMgZmxhZyBjYW4gcmVz dWx0IGluIHN1cnByaXNpbmcgYmVoYXZpb3VyIChhbmQKaGVuY2UgYnVncykgd2l0aGluIHRoZSBt bSBzdWJzeXN0ZW0uCgpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdt YWlsLmNvbT4KQWNrZWQtYnk6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+ClJl dmlld2VkLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpBY2tlZC1ieTogTWljaGFsIEhvY2tv IDxtaG9ja29Ac3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxk c0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIERlZmVy IGNoYW5nZXMgaW4gcHJvY2Vzc192bV9yd19zaW5nbGVfdmVjKCkgYW5kIGFzeW5jX3BmX2V4ZWN1 dGUoKSBzaW5jZQogICB0aGV5IHVzZSBnZXRfdXNlcl9wYWdlc191bmxvY2tlZCgpIGhlcmUKIC0g QWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGlu Z3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGluY2x1ZGUvbGludXgvbW0uaCAgfCAgMyArLS0KIG1t L2d1cC5jICAgICAgICAgICAgfCAxOSArKysrKysrKysrLS0tLS0tLS0tCiBtbS9ub21tdS5jICAg ICAgICAgIHwgMTQgKysrKysrKysrKy0tLS0KIHZpcnQva3ZtL2t2bV9tYWluLmMgfCAxMSArKysr KysrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgK aW5kZXggZDRlODA3N2ZjYTk2Li4zOTFhZThhM2Q1ZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTEyMDcsOCArMTIwNyw3IEBAIGxv bmcgZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3Qg bW1fc3RydWN0ICptbSwKIAkJICAgIGludCAqbG9ja2VkKTsKIGxvbmcgX19nZXRfdXNlcl9wYWdl c191bmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0s CiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywK LQkJCSAgICAgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBhZ2UgKipwYWdlcywKLQkJ CSAgICAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzKTsKKwkJCSAgICAgICBzdHJ1Y3QgcGFnZSAq KnBhZ2VzLCB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzKTsKIGxvbmcgZ2V0X3VzZXJfcGFnZXNfdW5s b2NrZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkg ICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKIAkJICAgIGlu dCB3cml0ZSwgaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKTsKZGlmZiAtLWdpdCBhL21t L2d1cC5jIGIvbW0vZ3VwLmMKaW5kZXggYmVkNzU4ZjdiZDYzLi45YWVlNjk0NWYzNDkgMTAwNjQ0 Ci0tLSBhL21tL2d1cC5jCisrKyBiL21tL2d1cC5jCkBAIC03NjQsMTcgKzc2NCwxMSBAQCBFWFBP UlRfU1lNQk9MKGdldF91c2VyX3BhZ2VzX2xvY2tlZCk7CiAgKi8KIF9fYWx3YXlzX2lubGluZSBs b25nIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5z aWduZWQgbG9uZyBucl9wYWdlcywKLQkJCQkJICAgICAgIGludCB3cml0ZSwgaW50IGZvcmNlLCBz dHJ1Y3QgcGFnZSAqKnBhZ2VzLAotCQkJCQkgICAgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncykK KwkJCQkJICAgICAgIHN0cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGludCBndXBfZmxhZ3Mp CiB7CiAJbG9uZyByZXQ7CiAJaW50IGxvY2tlZCA9IDE7CiAKLQlpZiAod3JpdGUpCi0JCWd1cF9m bGFncyB8PSBGT0xMX1dSSVRFOwotCWlmIChmb3JjZSkKLQkJZ3VwX2ZsYWdzIHw9IEZPTExfRk9S Q0U7Ci0KIAlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJcmV0ID0gX19nZXRfdXNlcl9wYWdl c19sb2NrZWQodHNrLCBtbSwgc3RhcnQsIG5yX3BhZ2VzLCBwYWdlcywgTlVMTCwKIAkJCQkgICAg ICAmbG9ja2VkLCBmYWxzZSwgZ3VwX2ZsYWdzKTsKQEAgLTgwNSw4ICs3OTksMTUgQEAgbG9uZyBn ZXRfdXNlcl9wYWdlc191bmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1t X3N0cnVjdCAqbW0sCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcg bnJfcGFnZXMsCiAJCQkgICAgIGludCB3cml0ZSwgaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBh Z2VzKQogewotCXJldHVybiBfX2dldF91c2VyX3BhZ2VzX3VubG9ja2VkKHRzaywgbW0sIHN0YXJ0 LCBucl9wYWdlcywgd3JpdGUsCi0JCQkJCSBmb3JjZSwgcGFnZXMsIEZPTExfVE9VQ0gpOworCXVu c2lnbmVkIGludCBmbGFncyA9IEZPTExfVE9VQ0g7CisKKwlpZiAod3JpdGUpCisJCWZsYWdzIHw9 IEZPTExfV1JJVEU7CisJaWYgKGZvcmNlKQorCQlmbGFncyB8PSBGT0xMX0ZPUkNFOworCisJcmV0 dXJuIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQodHNrLCBtbSwgc3RhcnQsIG5yX3BhZ2VzLAor CQkJCQkgcGFnZXMsIGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZ2V0X3VzZXJfcGFnZXNfdW5s b2NrZWQpOwogCmRpZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYwppbmRleCA5MmJl ODYyYzg1OWIuLjU0NjJlZDg4YTU0OCAxMDA2NDQKLS0tIGEvbW0vbm9tbXUuYworKysgYi9tbS9u b21tdS5jCkBAIC0yMTEsOCArMjExLDcgQEAgRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlc19s b2NrZWQpOwogCiBsb25nIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoc3RydWN0IHRhc2tfc3Ry dWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcg c3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCi0JCQkgICAgICAgaW50IHdyaXRlLCBpbnQg Zm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCQkgICAgICAgdW5zaWduZWQgaW50IGd1cF9m bGFncykKKwkJCSAgICAgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBpbnQgZ3VwX2Zs YWdzKQogewogCWxvbmcgcmV0OwogCWRvd25fcmVhZCgmbW0tPm1tYXBfc2VtKTsKQEAgLTIyNyw4 ICsyMjYsMTUgQEAgbG9uZyBnZXRfdXNlcl9wYWdlc191bmxvY2tlZChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkgICAgIHVuc2lnbmVkIGxvbmcgc3Rh cnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAJCQkgICAgIGludCB3cml0ZSwgaW50IGZvcmNl LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzKQogewotCXJldHVybiBfX2dldF91c2VyX3BhZ2VzX3VubG9j a2VkKHRzaywgbW0sIHN0YXJ0LCBucl9wYWdlcywgd3JpdGUsCi0JCQkJCSBmb3JjZSwgcGFnZXMs IDApOworCXVuc2lnbmVkIGludCBmbGFncyA9IDA7CisKKwlpZiAod3JpdGUpCisJCWZsYWdzIHw9 IEZPTExfV1JJVEU7CisJaWYgKGZvcmNlKQorCQlmbGFncyB8PSBGT0xMX0ZPUkNFOworCisJcmV0 dXJuIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQodHNrLCBtbSwgc3RhcnQsIG5yX3BhZ2VzLAor CQkJCQkgcGFnZXMsIGZsYWdzKTsKIH0KIEVYUE9SVF9TWU1CT0woZ2V0X3VzZXJfcGFnZXNfdW5s b2NrZWQpOwogCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1fbWFpbi5jIGIvdmlydC9rdm0va3Zt X21haW4uYwppbmRleCBiODE0YWU2ODIyYjYuLmU0YmU2OTVlYjc4OSAxMDA2NDQKLS0tIGEvdmly dC9rdm0va3ZtX21haW4uYworKysgYi92aXJ0L2t2bS9rdm1fbWFpbi5jCkBAIC0xMzUyLDEwICsx MzUyLDE1IEBAIHN0YXRpYyBpbnQgaHZhX3RvX3Bmbl9zbG93KHVuc2lnbmVkIGxvbmcgYWRkciwg Ym9vbCAqYXN5bmMsIGJvb2wgd3JpdGVfZmF1bHQsCiAJCW5wYWdlcyA9IGdldF91c2VyX3BhZ2Vf bm93YWl0KGN1cnJlbnQsIGN1cnJlbnQtPm1tLAogCQkJCQkgICAgICBhZGRyLCB3cml0ZV9mYXVs dCwgcGFnZSk7CiAJCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7Ci0JfSBlbHNlCisJ fSBlbHNlIHsKKwkJdW5zaWduZWQgaW50IGZsYWdzID0gRk9MTF9UT1VDSCB8IEZPTExfSFdQT0lT T047CisKKwkJaWYgKHdyaXRlX2ZhdWx0KQorCQkJZmxhZ3MgfD0gRk9MTF9XUklURTsKKwogCQlu cGFnZXMgPSBfX2dldF91c2VyX3BhZ2VzX3VubG9ja2VkKGN1cnJlbnQsIGN1cnJlbnQtPm1tLCBh ZGRyLCAxLAotCQkJCQkJICAgd3JpdGVfZmF1bHQsIDAsIHBhZ2UsCi0JCQkJCQkgICBGT0xMX1RP VUNIfEZPTExfSFdQT0lTT04pOworCQkJCQkJICAgcGFnZSwgZmxhZ3MpOworCX0KIAlpZiAobnBh Z2VzICE9IDEpCiAJCXJldHVybiBucGFnZXM7CiAKCkZyb20gZTU3NzgwNWY0M2E2ZTVkMmEyMjdk NmY4YjNkNjkyZGMyNmYyOWJkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTG9yZW56 byBTdG9ha2VzIDxsc3RvYWtlc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMTMgT2N0IDIwMTYgMDE6 MjA6MTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDAzLzEwXSBtbTogcmVwbGFjZSBnZXRfdXNlcl9w YWdlc191bmxvY2tlZCgpIHdyaXRlL2ZvcmNlCiBwYXJhbWV0ZXJzIHdpdGggZ3VwX2ZsYWdzCgpj b21taXQgYzE2NDE1NGY2NmYwYzliMDI2NzNmMDdhYTRmMDQ0ZjFkOWM3MDI3NCB1cHN0cmVhbS4K ClRoaXMgcmVtb3ZlcyB0aGUgJ3dyaXRlJyBhbmQgJ2ZvcmNlJyB1c2UgZnJvbSBnZXRfdXNlcl9w YWdlc191bmxvY2tlZCgpCmFuZCByZXBsYWNlcyB0aGVtIHdpdGggJ2d1cF9mbGFncycgdG8gbWFr ZSB0aGUgdXNlIG9mIEZPTExfRk9SQ0UKZXhwbGljaXQgaW4gY2FsbGVycyBhcyB1c2Ugb2YgdGhp cyBmbGFnIGNhbiByZXN1bHQgaW4gc3VycHJpc2luZwpiZWhhdmlvdXIgKGFuZCBoZW5jZSBidWdz KSB3aXRoaW4gdGhlIG1tIHN1YnN5c3RlbS4KClNpZ25lZC1vZmYtYnk6IExvcmVuem8gU3RvYWtl cyA8bHN0b2FrZXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEthcmEgPGphY2tAc3VzZS5j ej4KQWNrZWQtYnk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5 OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Cltid2g6IEJh Y2twb3J0ZWQgdG8gNC40OgogLSBBbHNvIHVwZGF0ZSBjYWxscyBmcm9tIHByb2Nlc3Nfdm1fcndf c2luZ2xlX3ZlYygpIGFuZCBhc3luY19wZl9leGVjdXRlKCkKIC0gQWRqdXN0IGNvbnRleHRdClNp Z25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVr PgotLS0KIGFyY2gvbWlwcy9tbS9ndXAuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9z MzkwL21tL2d1cC5jICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3NoL21tL2d1cC5jICAg ICAgICAgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3NwYXJjL21tL2d1cC5jICAgICAgICAgICAg ICAgIHwgIDMgKystCiBhcmNoL3g4Ni9tbS9ndXAuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGRyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0di11ZG1hLmMgfCAgMyArKy0KIGRyaXZlcnMvbWVk aWEvcGNpL2l2dHYvaXZ0di15dXYuYyAgfCAgOCArKysrLS0tLQogZHJpdmVycy9zY3NpL3N0LmMg ICAgICAgICAgICAgICAgICB8ICA1ICsrLS0tCiBkcml2ZXJzL3ZpZGVvL2ZiZGV2L3B2cjJmYi5j ICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvbGludXgvbW0uaCAgICAgICAgICAgICAgICAgfCAgMiAr LQogbW0vZ3VwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKystLS0tLS0tLS0t CiBtbS9ub21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKystLS0tLS0tLS0KIG1t L3Byb2Nlc3Nfdm1fYWNjZXNzLmMgICAgICAgICAgICAgfCAgNiArKysrKy0KIG1tL3V0aWwuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2NlcGgvcGFnZXZlYy5jICAgICAg ICAgICAgICAgICB8ICAyICstCiB2aXJ0L2t2bS9hc3luY19wZi5jICAgICAgICAgICAgICAgIHwg IDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9ndXAuYyBiL2FyY2gvbWlwcy9tbS9ndXAuYwpp bmRleCAzNDk5OTVkMTljN2YuLmU1OTZlMGExY2VjYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21t L2d1cC5jCisrKyBiL2FyY2gvbWlwcy9tbS9ndXAuYwpAQCAtMzAzLDcgKzMwMyw3IEBAIHNsb3df aXJxb246CiAKIAlyZXQgPSBnZXRfdXNlcl9wYWdlc191bmxvY2tlZChjdXJyZW50LCBtbSwgc3Rh cnQsCiAJCQkJICAgICAgKGVuZCAtIHN0YXJ0KSA+PiBQQUdFX1NISUZULAotCQkJCSAgICAgIHdy aXRlLCAwLCBwYWdlcyk7CisJCQkJICAgICAgcGFnZXMsIHdyaXRlID8gRk9MTF9XUklURSA6IDAp OwogCiAJLyogSGF2ZSB0byBiZSBhIGJpdCBjYXJlZnVsIHdpdGggcmV0dXJuIHZhbHVlcyAqLwog CWlmIChuciA+IDApIHsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9ndXAuYyBiL2FyY2gvczM5 MC9tbS9ndXAuYwppbmRleCAxMmJiZjBlODQ3OGYuLjdhZDQxYmU4YjM3MyAxMDA2NDQKLS0tIGEv YXJjaC9zMzkwL21tL2d1cC5jCisrKyBiL2FyY2gvczM5MC9tbS9ndXAuYwpAQCAtMjQyLDcgKzI0 Miw3IEBAIGludCBnZXRfdXNlcl9wYWdlc19mYXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBu cl9wYWdlcywgaW50IHdyaXRlLAogCXN0YXJ0ICs9IG5yIDw8IFBBR0VfU0hJRlQ7CiAJcGFnZXMg Kz0gbnI7CiAJcmV0ID0gZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoY3VycmVudCwgbW0sIHN0YXJ0 LAotCQkJICAgICBucl9wYWdlcyAtIG5yLCB3cml0ZSwgMCwgcGFnZXMpOworCQkJICAgICBucl9w YWdlcyAtIG5yLCBwYWdlcywgd3JpdGUgPyBGT0xMX1dSSVRFIDogMCk7CiAJLyogSGF2ZSB0byBi ZSBhIGJpdCBjYXJlZnVsIHdpdGggcmV0dXJuIHZhbHVlcyAqLwogCWlmIChuciA+IDApCiAJCXJl dCA9IChyZXQgPCAwKSA/IG5yIDogcmV0ICsgbnI7CmRpZmYgLS1naXQgYS9hcmNoL3NoL21tL2d1 cC5jIGIvYXJjaC9zaC9tbS9ndXAuYwppbmRleCBlN2FmNmE2NWJhYWIuLjhjNTFhMGU5NDg1NCAx MDA2NDQKLS0tIGEvYXJjaC9zaC9tbS9ndXAuYworKysgYi9hcmNoL3NoL21tL2d1cC5jCkBAIC0y NTgsNyArMjU4LDggQEAgc2xvd19pcnFvbjoKIAkJcGFnZXMgKz0gbnI7CiAKIAkJcmV0ID0gZ2V0 X3VzZXJfcGFnZXNfdW5sb2NrZWQoY3VycmVudCwgbW0sIHN0YXJ0LAotCQkJKGVuZCAtIHN0YXJ0 KSA+PiBQQUdFX1NISUZULCB3cml0ZSwgMCwgcGFnZXMpOworCQkJKGVuZCAtIHN0YXJ0KSA+PiBQ QUdFX1NISUZULCBwYWdlcywKKwkJCXdyaXRlID8gRk9MTF9XUklURSA6IDApOwogCiAJCS8qIEhh dmUgdG8gYmUgYSBiaXQgY2FyZWZ1bCB3aXRoIHJldHVybiB2YWx1ZXMgKi8KIAkJaWYgKG5yID4g MCkgewpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9tbS9ndXAuYyBiL2FyY2gvc3BhcmMvbW0vZ3Vw LmMKaW5kZXggMmU1YzRmYzJkYWE5Li4xNTBmNDgzMDNmYjAgMTAwNjQ0Ci0tLSBhL2FyY2gvc3Bh cmMvbW0vZ3VwLmMKKysrIGIvYXJjaC9zcGFyYy9tbS9ndXAuYwpAQCAtMjUwLDcgKzI1MCw4IEBA IHNsb3c6CiAJCXBhZ2VzICs9IG5yOwogCiAJCXJldCA9IGdldF91c2VyX3BhZ2VzX3VubG9ja2Vk KGN1cnJlbnQsIG1tLCBzdGFydCwKLQkJCShlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCwgd3Jp dGUsIDAsIHBhZ2VzKTsKKwkJCShlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCwgcGFnZXMsCisJ CQl3cml0ZSA/IEZPTExfV1JJVEUgOiAwKTsKIAogCQkvKiBIYXZlIHRvIGJlIGEgYml0IGNhcmVm dWwgd2l0aCByZXR1cm4gdmFsdWVzICovCiAJCWlmIChuciA+IDApIHsKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L21tL2d1cC5jIGIvYXJjaC94ODYvbW0vZ3VwLmMKaW5kZXggYWU5YTM3YmYxMzcxLi43 ZDI1NDJhZDM0NmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL2d1cC5jCisrKyBiL2FyY2gveDg2 L21tL2d1cC5jCkBAIC0zODgsNyArMzg4LDcgQEAgc2xvd19pcnFvbjoKIAogCQlyZXQgPSBnZXRf dXNlcl9wYWdlc191bmxvY2tlZChjdXJyZW50LCBtbSwgc3RhcnQsCiAJCQkJCSAgICAgIChlbmQg LSBzdGFydCkgPj4gUEFHRV9TSElGVCwKLQkJCQkJICAgICAgd3JpdGUsIDAsIHBhZ2VzKTsKKwkJ CQkJICAgICAgcGFnZXMsIHdyaXRlID8gRk9MTF9XUklURSA6IDApOwogCiAJCS8qIEhhdmUgdG8g YmUgYSBiaXQgY2FyZWZ1bCB3aXRoIHJldHVybiB2YWx1ZXMgKi8KIAkJaWYgKG5yID4gMCkgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LXVkbWEuYyBiL2RyaXZlcnMv bWVkaWEvcGNpL2l2dHYvaXZ0di11ZG1hLmMKaW5kZXggMjQxNTJhY2NjNjZjLi44NzI5ZmRlYmVm OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGNpL2l2dHYvaXZ0di11ZG1hLmMKKysrIGIv ZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LXVkbWEuYwpAQCAtMTI1LDcgKzEyNSw4IEBAIGlu dCBpdnR2X3VkbWFfc2V0dXAoc3RydWN0IGl2dHYgKml0diwgdW5zaWduZWQgbG9uZyBpdnR2X2Rl c3RfYWRkciwKIAogCS8qIEdldCB1c2VyIHBhZ2VzIGZvciBETUEgWGZlciAqLwogCWVyciA9IGdl dF91c2VyX3BhZ2VzX3VubG9ja2VkKGN1cnJlbnQsIGN1cnJlbnQtPm1tLAotCQkJdXNlcl9kbWEu dWFkZHIsIHVzZXJfZG1hLnBhZ2VfY291bnQsIDAsIDEsIGRtYS0+bWFwKTsKKwkJCXVzZXJfZG1h LnVhZGRyLCB1c2VyX2RtYS5wYWdlX2NvdW50LCBkbWEtPm1hcCwKKwkJCUZPTExfRk9SQ0UpOwog CiAJaWYgKHVzZXJfZG1hLnBhZ2VfY291bnQgIT0gZXJyKSB7CiAJCUlWVFZfREVCVUdfV0FSTigi ZmFpbGVkIHRvIG1hcCB1c2VyIHBhZ2VzLCByZXR1cm5lZCAlZCBpbnN0ZWFkIG9mICVkXG4iLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LXl1di5jIGIvZHJpdmVycy9t ZWRpYS9wY2kvaXZ0di9pdnR2LXl1di5jCmluZGV4IDJiOGU3YjJmMmI4Ni4uOWNkOTk1ZjQxOGUw IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3BjaS9pdnR2L2l2dHYteXV2LmMKKysrIGIvZHJp dmVycy9tZWRpYS9wY2kvaXZ0di9pdnR2LXl1di5jCkBAIC03NiwxMyArNzYsMTMgQEAgc3RhdGlj IGludCBpdnR2X3l1dl9wcmVwX3VzZXJfZG1hKHN0cnVjdCBpdnR2ICppdHYsIHN0cnVjdCBpdnR2 X3VzZXJfZG1hICpkbWEsCiAKIAkvKiBHZXQgdXNlciBwYWdlcyBmb3IgRE1BIFhmZXIgKi8KIAl5 X3BhZ2VzID0gZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoY3VycmVudCwgY3VycmVudC0+bW0sCi0J CQkJeV9kbWEudWFkZHIsIHlfZG1hLnBhZ2VfY291bnQsIDAsIDEsCi0JCQkJJmRtYS0+bWFwWzBd KTsKKwkJCQl5X2RtYS51YWRkciwgeV9kbWEucGFnZV9jb3VudCwKKwkJCQkmZG1hLT5tYXBbMF0s IEZPTExfRk9SQ0UpOwogCXV2X3BhZ2VzID0gMDsgLyogc2lsZW5jZSBnY2MuIHZhbHVlIGlzIHNl dCBhbmQgY29uc3VtZWQgb25seSBpZjogKi8KIAlpZiAoeV9wYWdlcyA9PSB5X2RtYS5wYWdlX2Nv dW50KSB7CiAJCXV2X3BhZ2VzID0gZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoY3VycmVudCwgY3Vy cmVudC0+bW0sCi0JCQkJCXV2X2RtYS51YWRkciwgdXZfZG1hLnBhZ2VfY291bnQsIDAsIDEsCi0J CQkJCSZkbWEtPm1hcFt5X3BhZ2VzXSk7CisJCQkJCXV2X2RtYS51YWRkciwgdXZfZG1hLnBhZ2Vf Y291bnQsCisJCQkJCSZkbWEtPm1hcFt5X3BhZ2VzXSwgRk9MTF9GT1JDRSk7CiAJfQogCiAJaWYg KHlfcGFnZXMgIT0geV9kbWEucGFnZV9jb3VudCB8fCB1dl9wYWdlcyAhPSB1dl9kbWEucGFnZV9j b3VudCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3N0LmMgYi9kcml2ZXJzL3Njc2kvc3Qu YwppbmRleCAyZTUyMjk1MWI2MTkuLjA4OGE2OGFiNDI0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9z Y3NpL3N0LmMKKysrIGIvZHJpdmVycy9zY3NpL3N0LmMKQEAgLTQ4MjEsOSArNDgyMSw4IEBAIHN0 YXRpYyBpbnQgc2dsX21hcF91c2VyX3BhZ2VzKHN0cnVjdCBzdF9idWZmZXIgKlNUYnAsCiAJCWN1 cnJlbnQtPm1tLAogCQl1YWRkciwKIAkJbnJfcGFnZXMsCi0JCXJ3ID09IFJFQUQsCi0JCTAsIC8q IGRvbid0IGZvcmNlICovCi0JCXBhZ2VzKTsKKwkJcGFnZXMsCisJCXJ3ID09IFJFQUQgPyBGT0xM X1dSSVRFIDogMCk7IC8qIGRvbid0IGZvcmNlICovCiAKIAkvKiBFcnJvcnMgYW5kIG5vIHBhZ2Ug bWFwcGVkIHNob3VsZCByZXR1cm4gaGVyZSAqLwogCWlmIChyZXMgPCBucl9wYWdlcykKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHZyMmZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2 L3B2cjJmYi5jCmluZGV4IDBlMjRlYjljMjE5Yy4uNzUwYTM4NGJmMTkxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3ZpZGVvL2ZiZGV2L3B2cjJmYi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvcHZy MmZiLmMKQEAgLTY4Nyw3ICs2ODcsNyBAQCBzdGF0aWMgc3NpemVfdCBwdnIyZmJfd3JpdGUoc3Ry dWN0IGZiX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKmJ1ZiwKIAkJcmV0dXJuIC1FTk9NRU07CiAK IAlyZXQgPSBnZXRfdXNlcl9wYWdlc191bmxvY2tlZChjdXJyZW50LCBjdXJyZW50LT5tbSwgKHVu c2lnbmVkIGxvbmcpYnVmLAotCQkJCSAgICAgIG5yX3BhZ2VzLCBXUklURSwgMCwgcGFnZXMpOwor CQkJCSAgICAgIG5yX3BhZ2VzLCBwYWdlcywgRk9MTF9XUklURSk7CiAKIAlpZiAocmV0IDwgbnJf cGFnZXMpIHsKIAkJbnJfcGFnZXMgPSByZXQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21t LmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXggMzkxYWU4YTNkNWY5Li5jMDQzYzkzNmE0YTUg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgK QEAgLTEyMTAsNyArMTIxMCw3IEBAIGxvbmcgX19nZXRfdXNlcl9wYWdlc191bmxvY2tlZChzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkgICAgICAgc3Ry dWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IGd1cF9mbGFncyk7CiBsb25nIGdldF91c2Vy X3BhZ2VzX3VubG9ja2VkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0 ICptbSwKIAkJICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMs Ci0JCSAgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBhZ2UgKipwYWdlcyk7CisJCSAg ICBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzKTsKIGludCBnZXRf dXNlcl9wYWdlc19mYXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBucl9wYWdlcywgaW50IHdy aXRlLAogCQkJc3RydWN0IHBhZ2UgKipwYWdlcyk7CiAKZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIv bW0vZ3VwLmMKaW5kZXggOWFlZTY5NDVmMzQ5Li42YmJlYzFiNjk0ZWEgMTAwNjQ0Ci0tLSBhL21t L2d1cC5jCisrKyBiL21tL2d1cC5jCkBAIC03OTcsMTcgKzc5NywxMCBAQCBFWFBPUlRfU1lNQk9M KF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQpOwogICovCiBsb25nIGdldF91c2VyX3BhZ2VzX3Vu bG9ja2VkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJ CSAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKLQkJCSAg ICAgaW50IHdyaXRlLCBpbnQgZm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMpCisJCQkgICAgIHN0 cnVjdCBwYWdlICoqcGFnZXMsIHVuc2lnbmVkIGludCBndXBfZmxhZ3MpCiB7Ci0JdW5zaWduZWQg aW50IGZsYWdzID0gRk9MTF9UT1VDSDsKLQotCWlmICh3cml0ZSkKLQkJZmxhZ3MgfD0gRk9MTF9X UklURTsKLQlpZiAoZm9yY2UpCi0JCWZsYWdzIHw9IEZPTExfRk9SQ0U7Ci0KIAlyZXR1cm4gX19n ZXRfdXNlcl9wYWdlc191bmxvY2tlZCh0c2ssIG1tLCBzdGFydCwgbnJfcGFnZXMsCi0JCQkJCSBw YWdlcywgZmxhZ3MpOworCQkJCQkgcGFnZXMsIGd1cF9mbGFncyB8IEZPTExfVE9VQ0gpOwogfQog RVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlc191bmxvY2tlZCk7CiAKQEAgLTE0MjcsNyArMTQy MCw4IEBAIGludCBnZXRfdXNlcl9wYWdlc19mYXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBu cl9wYWdlcywgaW50IHdyaXRlLAogCQlwYWdlcyArPSBucjsKIAogCQlyZXQgPSBnZXRfdXNlcl9w YWdlc191bmxvY2tlZChjdXJyZW50LCBtbSwgc3RhcnQsCi0JCQkJCSAgICAgIG5yX3BhZ2VzIC0g bnIsIHdyaXRlLCAwLCBwYWdlcyk7CisJCQkJCSAgICAgIG5yX3BhZ2VzIC0gbnIsIHBhZ2VzLAor CQkJCQkgICAgICB3cml0ZSA/IEZPTExfV1JJVEUgOiAwKTsKIAogCQkvKiBIYXZlIHRvIGJlIGEg Yml0IGNhcmVmdWwgd2l0aCByZXR1cm4gdmFsdWVzICovCiAJCWlmIChuciA+IDApIHsKZGlmZiAt LWdpdCBhL21tL25vbW11LmMgYi9tbS9ub21tdS5jCmluZGV4IDU0NjJlZDg4YTU0OC4uOTMwZWUw M2NhOWRkIDEwMDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTIyNCwx NyArMjI0LDEwIEBAIEVYUE9SVF9TWU1CT0woX19nZXRfdXNlcl9wYWdlc191bmxvY2tlZCk7CiAK IGxvbmcgZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25l ZCBsb25nIG5yX3BhZ2VzLAotCQkJICAgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBh Z2UgKipwYWdlcykKKwkJCSAgICAgc3RydWN0IHBhZ2UgKipwYWdlcywgdW5zaWduZWQgaW50IGd1 cF9mbGFncykKIHsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSAwOwotCi0JaWYgKHdyaXRlKQotCQlm bGFncyB8PSBGT0xMX1dSSVRFOwotCWlmIChmb3JjZSkKLQkJZmxhZ3MgfD0gRk9MTF9GT1JDRTsK LQogCXJldHVybiBfX2dldF91c2VyX3BhZ2VzX3VubG9ja2VkKHRzaywgbW0sIHN0YXJ0LCBucl9w YWdlcywKLQkJCQkJIHBhZ2VzLCBmbGFncyk7CisJCQkJCSBwYWdlcywgZ3VwX2ZsYWdzKTsKIH0K IEVYUE9SVF9TWU1CT0woZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQpOwogCmRpZmYgLS1naXQgYS9t bS9wcm9jZXNzX3ZtX2FjY2Vzcy5jIGIvbW0vcHJvY2Vzc192bV9hY2Nlc3MuYwppbmRleCA1ZDQ1 M2U1OGRkYmYuLjFiNWE2MTA0YzVmYyAxMDA2NDQKLS0tIGEvbW0vcHJvY2Vzc192bV9hY2Nlc3Mu YworKysgYi9tbS9wcm9jZXNzX3ZtX2FjY2Vzcy5jCkBAIC04OCwxOSArODgsMjMgQEAgc3RhdGlj IGludCBwcm9jZXNzX3ZtX3J3X3NpbmdsZV92ZWModW5zaWduZWQgbG9uZyBhZGRyLAogCXNzaXpl X3QgcmMgPSAwOwogCXVuc2lnbmVkIGxvbmcgbWF4X3BhZ2VzX3Blcl9sb29wID0gUFZNX01BWF9L TUFMTE9DX1BBR0VTCiAJCS8gc2l6ZW9mKHN0cnVjdCBwYWdlcyAqKTsKKwl1bnNpZ25lZCBpbnQg ZmxhZ3MgPSAwOwogCiAJLyogV29yayBvdXQgYWRkcmVzcyBhbmQgcGFnZSByYW5nZSByZXF1aXJl ZCAqLwogCWlmIChsZW4gPT0gMCkKIAkJcmV0dXJuIDA7CiAJbnJfcGFnZXMgPSAoYWRkciArIGxl biAtIDEpIC8gUEFHRV9TSVpFIC0gYWRkciAvIFBBR0VfU0laRSArIDE7CiAKKwlpZiAodm1fd3Jp dGUpCisJCWZsYWdzIHw9IEZPTExfV1JJVEU7CisKIAl3aGlsZSAoIXJjICYmIG5yX3BhZ2VzICYm IGlvdl9pdGVyX2NvdW50KGl0ZXIpKSB7CiAJCWludCBwYWdlcyA9IG1pbihucl9wYWdlcywgbWF4 X3BhZ2VzX3Blcl9sb29wKTsKIAkJc2l6ZV90IGJ5dGVzOwogCiAJCS8qIEdldCB0aGUgcGFnZXMg d2UncmUgaW50ZXJlc3RlZCBpbiAqLwogCQlwYWdlcyA9IGdldF91c2VyX3BhZ2VzX3VubG9ja2Vk KHRhc2ssIG1tLCBwYSwgcGFnZXMsCi0JCQkJCQl2bV93cml0ZSwgMCwgcHJvY2Vzc19wYWdlcyk7 CisJCQkJCQlwcm9jZXNzX3BhZ2VzLCBmbGFncyk7CiAJCWlmIChwYWdlcyA8PSAwKQogCQkJcmV0 dXJuIC1FRkFVTFQ7CiAKZGlmZiAtLWdpdCBhL21tL3V0aWwuYyBiL21tL3V0aWwuYwppbmRleCA1 ZmFlNWI5YzI4ODUuLmRiMzkyMzU5NzBjNiAxMDA2NDQKLS0tIGEvbW0vdXRpbC5jCisrKyBiL21t L3V0aWwuYwpAQCAtMjc4LDcgKzI3OCw3IEBAIGludCBfX3dlYWsgZ2V0X3VzZXJfcGFnZXNfZmFz dCh1bnNpZ25lZCBsb25nIHN0YXJ0LAogewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVu dC0+bW07CiAJcmV0dXJuIGdldF91c2VyX3BhZ2VzX3VubG9ja2VkKGN1cnJlbnQsIG1tLCBzdGFy dCwgbnJfcGFnZXMsCi0JCQkJICAgICAgIHdyaXRlLCAwLCBwYWdlcyk7CisJCQkJICAgICAgIHBh Z2VzLCB3cml0ZSA/IEZPTExfV1JJVEUgOiAwKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGdldF91 c2VyX3BhZ2VzX2Zhc3QpOwogCmRpZmYgLS1naXQgYS9uZXQvY2VwaC9wYWdldmVjLmMgYi9uZXQv Y2VwaC9wYWdldmVjLmMKaW5kZXggZDRmNWYyMjBhOGU1Li4yODQ1M2Q2OThkODYgMTAwNjQ0Ci0t LSBhL25ldC9jZXBoL3BhZ2V2ZWMuYworKysgYi9uZXQvY2VwaC9wYWdldmVjLmMKQEAgLTI2LDcg KzI2LDcgQEAgc3RydWN0IHBhZ2UgKipjZXBoX2dldF9kaXJlY3RfcGFnZV92ZWN0b3IoY29uc3Qg dm9pZCBfX3VzZXIgKmRhdGEsCiAJd2hpbGUgKGdvdCA8IG51bV9wYWdlcykgewogCQlyYyA9IGdl dF91c2VyX3BhZ2VzX3VubG9ja2VkKGN1cnJlbnQsIGN1cnJlbnQtPm1tLAogCQkgICAgKHVuc2ln bmVkIGxvbmcpZGF0YSArICgodW5zaWduZWQgbG9uZylnb3QgKiBQQUdFX1NJWkUpLAotCQkgICAg bnVtX3BhZ2VzIC0gZ290LCB3cml0ZV9wYWdlLCAwLCBwYWdlcyArIGdvdCk7CisJCSAgICBudW1f cGFnZXMgLSBnb3QsIHBhZ2VzICsgZ290LCB3cml0ZV9wYWdlID8gRk9MTF9XUklURSA6IDApOwog CQlpZiAocmMgPCAwKQogCQkJYnJlYWs7CiAJCUJVR19PTihyYyA9PSAwKTsKZGlmZiAtLWdpdCBh L3ZpcnQva3ZtL2FzeW5jX3BmLmMgYi92aXJ0L2t2bS9hc3luY19wZi5jCmluZGV4IDRmNzBkMTJl MzkyZC4uZWRkY2U1OTk4NmVlIDEwMDY0NAotLS0gYS92aXJ0L2t2bS9hc3luY19wZi5jCisrKyBi L3ZpcnQva3ZtL2FzeW5jX3BmLmMKQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHZvaWQgYXN5bmNf cGZfZXhlY3V0ZShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAKIAltaWdodF9zbGVlcCgpOwog Ci0JZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoTlVMTCwgbW0sIGFkZHIsIDEsIDEsIDAsIE5VTEwp OworCWdldF91c2VyX3BhZ2VzX3VubG9ja2VkKE5VTEwsIG1tLCBhZGRyLCAxLCBOVUxMLCBGT0xM X1dSSVRFKTsKIAlrdm1fYXN5bmNfcGFnZV9wcmVzZW50X3N5bmModmNwdSwgYXBmKTsKIAogCXNw aW5fbG9jaygmdmNwdS0+YXN5bmNfcGYubG9jayk7CgpGcm9tIDhiYzI3M2IyYTQ0MjYyMGE0NzQ1 N2IwZTFmYjFjNjRlN2RlMGNmNzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExvcmVu em8gU3RvYWtlcyA8bHN0b2FrZXNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEzIE9jdCAyMDE2IDAx OjIwOjE0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNC8xMF0gbW06IHJlcGxhY2UgZ2V0X3VzZXJf cGFnZXNfbG9ja2VkKCkgd3JpdGUvZm9yY2UKIHBhcmFtZXRlcnMgd2l0aCBndXBfZmxhZ3MKCmNv bW1pdCAzYjkxMzE3OWMzZmE4OWRkMGUzMDQxOTNmYTBjNzQ2ZmMwNDgxNDQ3IHVwc3RyZWFtLgoK VGhpcyByZW1vdmVzIHRoZSAnd3JpdGUnIGFuZCAnZm9yY2UnIHVzZSBmcm9tIGdldF91c2VyX3Bh Z2VzX2xvY2tlZCgpCmFuZCByZXBsYWNlcyB0aGVtIHdpdGggJ2d1cF9mbGFncycgdG8gbWFrZSB0 aGUgdXNlIG9mIEZPTExfRk9SQ0UKZXhwbGljaXQgaW4gY2FsbGVycyBhcyB1c2Ugb2YgdGhpcyBm bGFnIGNhbiByZXN1bHQgaW4gc3VycHJpc2luZwpiZWhhdmlvdXIgKGFuZCBoZW5jZSBidWdzKSB3 aXRoaW4gdGhlIG1tIHN1YnN5c3RlbS4KClNpZ25lZC1vZmYtYnk6IExvcmVuem8gU3RvYWtlcyA8 bHN0b2FrZXNAZ21haWwuY29tPgpBY2tlZC1ieTogTWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5j b20+ClJldmlld2VkLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpTaWduZWQtb2ZmLWJ5OiBM aW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Cltid2g6IEJhY2tw b3J0ZWQgdG8gNC40OiBhZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5n cyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogaW5jbHVkZS9saW51eC9tbS5o IHwgIDMgKy0tCiBtbS9mcmFtZV92ZWN0b3IuYyAgfCAgOCArKysrKysrLQogbW0vZ3VwLmMgICAg ICAgICAgIHwgMTIgKysrLS0tLS0tLS0tCiBtbS9ub21tdS5jICAgICAgICAgfCAgNSArKysrLQog NCBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXggYzA0 M2M5MzZhNGE1Li5jYmI5YmQ4YjkxMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAor KysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTEyMDMsOCArMTIwMyw3IEBAIGxvbmcgZ2V0X3Vz ZXJfcGFnZXMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAog CQkgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqdm1hcyk7CiBsb25nIGdldF91c2VyX3BhZ2Vz X2xvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJ CSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAotCQkgICAg aW50IHdyaXRlLCBpbnQgZm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMsCi0JCSAgICBpbnQgKmxv Y2tlZCk7CisJCSAgICB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2Vz LCBpbnQgKmxvY2tlZCk7CiBsb25nIF9fZ2V0X3VzZXJfcGFnZXNfdW5sb2NrZWQoc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgICAgIHVuc2lnbmVk IGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMsCiAJCQkgICAgICAgc3RydWN0IHBh Z2UgKipwYWdlcywgdW5zaWduZWQgaW50IGd1cF9mbGFncyk7CmRpZmYgLS1naXQgYS9tbS9mcmFt ZV92ZWN0b3IuYyBiL21tL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IDdjZjJiNzE2MzIyMi4uNDBlMzEx NmI1NjY2IDEwMDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9tbS9mcmFtZV92ZWN0 b3IuYwpAQCAtNDEsMTAgKzQxLDE2IEBAIGludCBnZXRfdmFkZHJfZnJhbWVzKHVuc2lnbmVkIGxv bmcgc3RhcnQsIHVuc2lnbmVkIGludCBucl9mcmFtZXMsCiAJaW50IHJldCA9IDA7CiAJaW50IGVy cjsKIAlpbnQgbG9ja2VkOworCXVuc2lnbmVkIGludCBndXBfZmxhZ3MgPSAwOwogCiAJaWYgKG5y X2ZyYW1lcyA9PSAwKQogCQlyZXR1cm4gMDsKIAorCWlmICh3cml0ZSkKKwkJZ3VwX2ZsYWdzIHw9 IEZPTExfV1JJVEU7CisJaWYgKGZvcmNlKQorCQlndXBfZmxhZ3MgfD0gRk9MTF9GT1JDRTsKKwog CWlmIChXQVJOX09OX09OQ0UobnJfZnJhbWVzID4gdmVjLT5ucl9hbGxvY2F0ZWQpKQogCQlucl9m cmFtZXMgPSB2ZWMtPm5yX2FsbG9jYXRlZDsKIApAQCAtNTksNyArNjUsNyBAQCBpbnQgZ2V0X3Zh ZGRyX2ZyYW1lcyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBpbnQgbnJfZnJhbWVzLAog CQl2ZWMtPmdvdF9yZWYgPSB0cnVlOwogCQl2ZWMtPmlzX3BmbnMgPSBmYWxzZTsKIAkJcmV0ID0g Z2V0X3VzZXJfcGFnZXNfbG9ja2VkKGN1cnJlbnQsIG1tLCBzdGFydCwgbnJfZnJhbWVzLAotCQkJ d3JpdGUsIGZvcmNlLCAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyksICZsb2NrZWQpOworCQkJ Z3VwX2ZsYWdzLCAoc3RydWN0IHBhZ2UgKiopKHZlYy0+cHRycyksICZsb2NrZWQpOwogCQlnb3Rv IG91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL21tL2d1cC5jIGIvbW0vZ3VwLmMKaW5kZXggNmJiZWMx YjY5NGVhLi5iY2RlZmI5NzcyNjkgMTAwNjQ0Ci0tLSBhL21tL2d1cC5jCisrKyBiL21tL2d1cC5j CkBAIC03MzcsMTggKzczNywxMiBAQCBzdGF0aWMgX19hbHdheXNfaW5saW5lIGxvbmcgX19nZXRf dXNlcl9wYWdlc19sb2NrZWQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAgKi8KIGxvbmcgZ2V0 X3VzZXJfcGFnZXNfbG9ja2VkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFn ZXMsCi0JCQkgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBhZ2UgKipwYWdlcywKKwkJ CSAgIHVuc2lnbmVkIGludCBndXBfZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJCQkgICBp bnQgKmxvY2tlZCkKIHsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX1RPVUNIOwotCi0JaWYg KHdyaXRlKQotCQlmbGFncyB8PSBGT0xMX1dSSVRFOwotCWlmIChmb3JjZSkKLQkJZmxhZ3MgfD0g Rk9MTF9GT1JDRTsKLQogCXJldHVybiBfX2dldF91c2VyX3BhZ2VzX2xvY2tlZCh0c2ssIG1tLCBz dGFydCwgbnJfcGFnZXMsCi0JCQkJICAgICAgIHBhZ2VzLCBOVUxMLCBsb2NrZWQsIHRydWUsIGZs YWdzKTsKKwkJCQkgICAgICAgcGFnZXMsIE5VTEwsIGxvY2tlZCwgdHJ1ZSwKKwkJCQkgICAgICAg Z3VwX2ZsYWdzIHwgRk9MTF9UT1VDSCk7CiB9CiBFWFBPUlRfU1lNQk9MKGdldF91c2VyX3BhZ2Vz X2xvY2tlZCk7CiAKZGlmZiAtLWdpdCBhL21tL25vbW11LmMgYi9tbS9ub21tdS5jCmluZGV4IDkz MGVlMDNjYTlkZC4uMDQ0ZWZlMGE1MmVhIDEwMDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21t L25vbW11LmMKQEAgLTIwMSw5ICsyMDEsMTIgQEAgRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdl cyk7CiAKIGxvbmcgZ2V0X3VzZXJfcGFnZXNfbG9ja2VkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr LCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2ln bmVkIGxvbmcgbnJfcGFnZXMsCi0JCQkgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBh Z2UgKipwYWdlcywKKwkJCSAgIHVuc2lnbmVkIGludCBndXBfZmxhZ3MsIHN0cnVjdCBwYWdlICoq cGFnZXMsCiAJCQkgICBpbnQgKmxvY2tlZCkKIHsKKwlpbnQgd3JpdGUgPSBndXBfZmxhZ3MgJiBG T0xMX1dSSVRFOworCWludCBmb3JjZSA9IGd1cF9mbGFncyAmIEZPTExfRk9SQ0U7CisKIAlyZXR1 cm4gZ2V0X3VzZXJfcGFnZXModHNrLCBtbSwgc3RhcnQsIG5yX3BhZ2VzLCB3cml0ZSwgZm9yY2Us CiAJCQkgICAgICBwYWdlcywgTlVMTCk7CiB9CgpGcm9tIDljNDM4NTA0YTU5MzIyMTYwMDdkMTRj NWFmNjk4NmVlNWQxMTIzZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExvcmVuem8g U3RvYWtlcyA8bHN0b2FrZXNAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEzIE9jdCAyMDE2IDAxOjIw OjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNS8xMF0gbW06IHJlcGxhY2UgZ2V0X3ZhZGRyX2Zy YW1lcygpIHdyaXRlL2ZvcmNlIHBhcmFtZXRlcnMKIHdpdGggZ3VwX2ZsYWdzCgpjb21taXQgN2Yy M2IzNTA0YTBkZjYzYjcyNDE4MDI2MmM1ZjNmMTE3ZjIxYmNhZSB1cHN0cmVhbS4KClRoaXMgcmVt b3ZlcyB0aGUgJ3dyaXRlJyBhbmQgJ2ZvcmNlJyBmcm9tIGdldF92YWRkcl9mcmFtZXMoKSBhbmQK cmVwbGFjZXMgdGhlbSB3aXRoICdndXBfZmxhZ3MnIHRvIG1ha2UgdGhlIHVzZSBvZiBGT0xMX0ZP UkNFIGV4cGxpY2l0IGluCmNhbGxlcnMgYXMgdXNlIG9mIHRoaXMgZmxhZyBjYW4gcmVzdWx0IGlu IHN1cnByaXNpbmcgYmVoYXZpb3VyIChhbmQKaGVuY2UgYnVncykgd2l0aGluIHRoZSBtbSBzdWJz eXN0ZW0uCgpTaWduZWQtb2ZmLWJ5OiBMb3JlbnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNv bT4KQWNrZWQtYnk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog SmFuIEthcmEgPGphY2tAc3VzZS5jej4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRv cnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdz IDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZzJkLmMgICAgfCAgMyArKy0KIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0v b21hcC9vbWFwX3ZvdXQuYyAgICB8ICAyICstCiBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRl b2J1ZjItbWVtb3BzLmMgfCAgNiArKysrKy0KIGluY2x1ZGUvbGludXgvbW0uaCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBtbS9mcmFtZV92ZWN0b3IuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMyArKy0tLS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlv bnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9nMmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9n MmQuYwppbmRleCBjMTdlZmRiMjM4YTYuLjYzOWVhMjg4MDhlMiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2cyZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9nMmQuYwpAQCAtNDcxLDcgKzQ3MSw4IEBAIHN0YXRpYyBkbWFfYWRk cl90ICpnMmRfdXNlcnB0cl9nZXRfZG1hX2FkZHIoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYs CiAJCWdvdG8gZXJyX2ZyZWU7CiAJfQogCi0JcmV0ID0gZ2V0X3ZhZGRyX2ZyYW1lcyhzdGFydCwg bnBhZ2VzLCB0cnVlLCB0cnVlLCBnMmRfdXNlcnB0ci0+dmVjKTsKKwlyZXQgPSBnZXRfdmFkZHJf ZnJhbWVzKHN0YXJ0LCBucGFnZXMsIEZPTExfRk9SQ0UgfCBGT0xMX1dSSVRFLAorCQlnMmRfdXNl cnB0ci0+dmVjKTsKIAlpZiAocmV0ICE9IG5wYWdlcykgewogCQlEUk1fRVJST1IoImZhaWxlZCB0 byBnZXQgdXNlciBwYWdlcyBmcm9tIHVzZXJwdHIuXG4iKTsKIAkJaWYgKHJldCA8IDApCmRpZmYg LS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvb21hcF92b3V0LmMgYi9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL29tYXAvb21hcF92b3V0LmMKaW5kZXggNzBjMjhkMTllYTA0Li41OTYz NTk1NzYxMDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vb21hcC9vbWFwX3Zv dXQuYworKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL29tYXAvb21hcF92b3V0LmMKQEAgLTIx NCw3ICsyMTQsNyBAQCBzdGF0aWMgaW50IG9tYXBfdm91dF9nZXRfdXNlcnB0cihzdHJ1Y3Qgdmlk ZW9idWZfYnVmZmVyICp2YiwgdTMyIHZpcnRwLAogCWlmICghdmVjKQogCQlyZXR1cm4gLUVOT01F TTsKIAotCXJldCA9IGdldF92YWRkcl9mcmFtZXModmlydHAsIDEsIHRydWUsIGZhbHNlLCB2ZWMp OworCXJldCA9IGdldF92YWRkcl9mcmFtZXModmlydHAsIDEsIEZPTExfV1JJVEUsIHZlYyk7CiAJ aWYgKHJldCAhPSAxKSB7CiAJCWZyYW1lX3ZlY3Rvcl9kZXN0cm95KHZlYyk7CiAJCXJldHVybiAt RUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLW1l bW9wcy5jIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLW1lbW9wcy5jCmluZGV4 IDNjM2I1MTdmMWQxYy4uMWNkMzIyZTkzOWM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0 bDItY29yZS92aWRlb2J1ZjItbWVtb3BzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUv dmlkZW9idWYyLW1lbW9wcy5jCkBAIC00Miw2ICs0MiwxMCBAQCBzdHJ1Y3QgZnJhbWVfdmVjdG9y ICp2YjJfY3JlYXRlX2ZyYW1ldmVjKHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJdW5zaWduZWQgbG9u ZyBmaXJzdCwgbGFzdDsKIAl1bnNpZ25lZCBsb25nIG5yOwogCXN0cnVjdCBmcmFtZV92ZWN0b3Ig KnZlYzsKKwl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOworCisJaWYgKHdyaXRlKQor CQlmbGFncyB8PSBGT0xMX1dSSVRFOwogCiAJZmlyc3QgPSBzdGFydCA+PiBQQUdFX1NISUZUOwog CWxhc3QgPSAoc3RhcnQgKyBsZW5ndGggLSAxKSA+PiBQQUdFX1NISUZUOwpAQCAtNDksNyArNTMs NyBAQCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2YjJfY3JlYXRlX2ZyYW1ldmVjKHVuc2lnbmVkIGxv bmcgc3RhcnQsCiAJdmVjID0gZnJhbWVfdmVjdG9yX2NyZWF0ZShucik7CiAJaWYgKCF2ZWMpCiAJ CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwotCXJldCA9IGdldF92YWRkcl9mcmFtZXMoc3RhcnQg JiBQQUdFX01BU0ssIG5yLCB3cml0ZSwgdHJ1ZSwgdmVjKTsKKwlyZXQgPSBnZXRfdmFkZHJfZnJh bWVzKHN0YXJ0ICYgUEFHRV9NQVNLLCBuciwgZmxhZ3MsIHZlYyk7CiAJaWYgKHJldCA8IDApCiAJ CWdvdG8gb3V0X2Rlc3Ryb3k7CiAJLyogV2UgYWNjZXB0IG9ubHkgY29tcGxldGUgc2V0IG9mIFBG TnMgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgvbW0u aAppbmRleCBjYmI5YmQ4YjkxMGEuLjVjMThjZDljNzJkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtMTIyNyw3ICsxMjI3LDcgQEAg c3RydWN0IGZyYW1lX3ZlY3RvciB7CiBzdHJ1Y3QgZnJhbWVfdmVjdG9yICpmcmFtZV92ZWN0b3Jf Y3JlYXRlKHVuc2lnbmVkIGludCBucl9mcmFtZXMpOwogdm9pZCBmcmFtZV92ZWN0b3JfZGVzdHJv eShzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwogaW50IGdldF92YWRkcl9mcmFtZXModW5zaWdu ZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgaW50IG5yX3BmbnMsCi0JCSAgICAgYm9vbCB3cml0ZSwg Ym9vbCBmb3JjZSwgc3RydWN0IGZyYW1lX3ZlY3RvciAqdmVjKTsKKwkJICAgICB1bnNpZ25lZCBp bnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgZnJhbWVfdmVjdG9yICp2ZWMpOwogdm9pZCBwdXRfdmFkZHJf ZnJhbWVzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiBpbnQgZnJhbWVfdmVjdG9yX3RvX3Bh Z2VzKHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CiB2b2lkIGZyYW1lX3ZlY3Rvcl90b19wZm5z KHN0cnVjdCBmcmFtZV92ZWN0b3IgKnZlYyk7CmRpZmYgLS1naXQgYS9tbS9mcmFtZV92ZWN0b3Iu YyBiL21tL2ZyYW1lX3ZlY3Rvci5jCmluZGV4IDQwZTMxMTZiNTY2Ni4uYzFlNzkyNmE0MWM0IDEw MDY0NAotLS0gYS9tbS9mcmFtZV92ZWN0b3IuYworKysgYi9tbS9mcmFtZV92ZWN0b3IuYwpAQCAt MTEsMTAgKzExLDcgQEAKICAqIGdldF92YWRkcl9mcmFtZXMoKSAtIG1hcCB2aXJ0dWFsIGFkZHJl c3NlcyB0byBwZm5zCiAgKiBAc3RhcnQ6CXN0YXJ0aW5nIHVzZXIgYWRkcmVzcwogICogQG5yX2Zy YW1lczoJbnVtYmVyIG9mIHBhZ2VzIC8gcGZucyBmcm9tIHN0YXJ0IHRvIG1hcAotICogQHdyaXRl Ogl3aGV0aGVyIHBhZ2VzIHdpbGwgYmUgd3JpdHRlbiB0byBieSB0aGUgY2FsbGVyCi0gKiBAZm9y Y2U6CXdoZXRoZXIgdG8gZm9yY2Ugd3JpdGUgYWNjZXNzIGV2ZW4gaWYgdXNlciBtYXBwaW5nIGlz Ci0gKgkJcmVhZG9ubHkuIFNlZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2FtZSBhcmd1bWVudCBvZgot CQlnZXRfdXNlcl9wYWdlcygpLgorICogQGd1cF9mbGFnczoJZmxhZ3MgbW9kaWZ5aW5nIGxvb2t1 cCBiZWhhdmlvdXIKICAqIEB2ZWM6CXN0cnVjdHVyZSB3aGljaCByZWNlaXZlcyBwYWdlcyAvIHBm bnMgb2YgdGhlIGFkZHJlc3NlcyBtYXBwZWQuCiAgKgkJSXQgc2hvdWxkIGhhdmUgc3BhY2UgZm9y IGF0IGxlYXN0IG5yX2ZyYW1lcyBlbnRyaWVzLgogICoKQEAgLTM0LDIzICszMSwxNyBAQAogICog VGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIGdyYWJiaW5nIG1tYXBfc2VtIGFzIG5lY2Vzc2Fy eS4KICAqLwogaW50IGdldF92YWRkcl9mcmFtZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWdu ZWQgaW50IG5yX2ZyYW1lcywKLQkJICAgICBib29sIHdyaXRlLCBib29sIGZvcmNlLCBzdHJ1Y3Qg ZnJhbWVfdmVjdG9yICp2ZWMpCisJCSAgICAgdW5zaWduZWQgaW50IGd1cF9mbGFncywgc3RydWN0 IGZyYW1lX3ZlY3RvciAqdmVjKQogewogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gY3VycmVudC0+ bW07CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJaW50IHJldCA9IDA7CiAJaW50IGVy cjsKIAlpbnQgbG9ja2VkOwotCXVuc2lnbmVkIGludCBndXBfZmxhZ3MgPSAwOwogCiAJaWYgKG5y X2ZyYW1lcyA9PSAwKQogCQlyZXR1cm4gMDsKIAotCWlmICh3cml0ZSkKLQkJZ3VwX2ZsYWdzIHw9 IEZPTExfV1JJVEU7Ci0JaWYgKGZvcmNlKQotCQlndXBfZmxhZ3MgfD0gRk9MTF9GT1JDRTsKLQog CWlmIChXQVJOX09OX09OQ0UobnJfZnJhbWVzID4gdmVjLT5ucl9hbGxvY2F0ZWQpKQogCQlucl9m cmFtZXMgPSB2ZWMtPm5yX2FsbG9jYXRlZDsKIAoKRnJvbSA1NzYyY2M0MDZkZjhkYTMwZGQzM2Fh ZDRjYTRlNjMwMjgyYTA0NWM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMb3Jlbnpv IFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMyBPY3QgMjAxNiAwMToy MDoxNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTBdIG1tOiByZXBsYWNlIGdldF91c2VyX3Bh Z2VzKCkgd3JpdGUvZm9yY2UgcGFyYW1ldGVycwogd2l0aCBndXBfZmxhZ3MKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKCmNvbW1pdCA3NjhhZTMwOWE5NjEwM2VkMDJlYjFlMTExZTgz OGM4Nzg1NGQ4YjUxIHVwc3RyZWFtLgoKVGhpcyByZW1vdmVzIHRoZSAnd3JpdGUnIGFuZCAnZm9y Y2UnIGZyb20gZ2V0X3VzZXJfcGFnZXMoKSBhbmQgcmVwbGFjZXMKdGhlbSB3aXRoICdndXBfZmxh Z3MnIHRvIG1ha2UgdGhlIHVzZSBvZiBGT0xMX0ZPUkNFIGV4cGxpY2l0IGluIGNhbGxlcnMKYXMg dXNlIG9mIHRoaXMgZmxhZyBjYW4gcmVzdWx0IGluIHN1cnByaXNpbmcgYmVoYXZpb3VyIChhbmQg aGVuY2UgYnVncykKd2l0aGluIHRoZSBtbSBzdWJzeXN0ZW0uCgpTaWduZWQtb2ZmLWJ5OiBMb3Jl bnpvIFN0b2FrZXMgPGxzdG9ha2VzQGdtYWlsLmNvbT4KQWNrZWQtYnk6IENocmlzdGlhbiBLw7Zu aWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KQWNrZWQtYnk6IEplc3BlciBOaWxzc29uIDxq ZXNwZXIubmlsc3NvbkBheGlzLmNvbT4KQWNrZWQtYnk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1 c2UuY29tPgpSZXZpZXdlZC1ieTogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KU2lnbmVkLW9mZi1i eTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpbYndoOiBC YWNrcG9ydGVkIHRvIDQuNDoKIC0gRHJvcCBjaGFuZ2VzIGluIHJhcGlkaW8sIHZjaGlxLCBnb2xk ZmlzaAogLSBLZWVwIHRoZSAid3JpdGUiIHZhcmlhYmxlIGluIGFtZGdwdV90dG1fdHRfcGluX3Vz ZXJwdHIoKSBhcyBpdCdzIHN0aWxsCiAgIG5lZWRlZAogLSBBbHNvIHVwZGF0ZSBjYWxscyBmcm9t IHZhcmlvdXMgb3RoZXIgcGxhY2VzIHRoYXQgbm93IHVzZQogICBnZXRfdXNlcl9wYWdlc19yZW1v dGUoKSB1cHN0cmVhbSwgd2hpY2ggd2VyZSB1cGRhdGVkIHRoZXJlIGJ5IGNvbW1pdAogICA5YmVh ZTFlYTg5MzAgIm1tOiByZXBsYWNlIGdldF91c2VyX3BhZ2VzX3JlbW90ZSgpIHdyaXRlL2ZvcmNl IC4uLiIKIC0gQWxzbyB1cGRhdGUgY2FsbHMgZnJvbSBoZmkxIGFuZCBpcGF0aAogLSBBZGp1c3Qg Y29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2Rl dGhpbmsuY28udWs+Ci0tLQogYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMg ICAgICAgIHwgIDQgKy0tLQogYXJjaC9pYTY0L2tlcm5lbC9lcnJfaW5qZWN0LmMgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L21tL21weC5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAzICstLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAg ICAgIHwgIDYgKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV91c2VycHRyLmMg ICAgICAgfCAgNiArKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMgICAgICAg ICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMgICAgICAgICAg ICAgICAgfCAgNiArKysrKy0KIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMgICAg ICAgICAgICB8ICA3ICsrKysrLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9t ZW1mcmVlLmMgICB8ICA0ICsrLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3VzZXJf cGFnZXMuYyAgICB8ICAzICsrLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L3VzbmljL3VzbmljX3Vp b20uYyAgICAgIHwgIDUgKysrKy0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmLWRt YS1zZy5jICAgICB8ICA3ICsrKysrLS0KIGRyaXZlcnMvbWlzYy9taWMvc2NpZi9zY2lmX3JtYS5j ICAgICAgICAgICAgICB8ICAzICstLQogZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1ZmF1bHQuYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy9yZG1hL2hmaTEvdXNlcl9wYWdl cy5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL3N0YWdpbmcvcmRtYS9pcGF0aC9pcGF0aF91c2Vy X3BhZ2VzLmMgfCAgMiArLQogZHJpdmVycy92aXJ0L2ZzbF9oeXBlcnZpc29yLmMgICAgICAgICAg ICAgICAgIHwgIDQgKystLQogZnMvZXhlYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDkgKysrKysrKy0tCiBpbmNsdWRlL2xpbnV4L21tLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQoga2VybmVsL2V2ZW50cy91cHJvYmVzLmMgICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKystLQogbW0vZ3VwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTUgKysrKystLS0tLS0tLS0tCiBtbS9tZW1vcnkuYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKy0KIG1tL21lbXBvbGljeS5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBtbS9ub21tdS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrLS0tLS0tLS0tLS0tLS0KIHNlY3VyaXR5L3Rv bW95by9kb21haW4uYyAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrLQogMjYgZmlsZXMgY2hh bmdlZCwgNzIgaW5zZXJ0aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJj aC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMgYi9hcmNoL2NyaXMvYXJjaC12MzIv ZHJpdmVycy9jcnlwdG9jb3AuYwppbmRleCA4NzdkYTE5MDgyMzQuLjk4ZTJhNWRiY2ZkYSAxMDA2 NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMKKysrIGIvYXJj aC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvY3J5cHRvY29wLmMKQEAgLTI3MjQsNyArMjcyNCw2IEBA IHN0YXRpYyBpbnQgY3J5cHRvY29wX2lvY3RsX3Byb2Nlc3Moc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnCiAJCQkgICAgICh1bnNpZ25lZCBsb25nIGludCkob3Bl ci5pbmRhdGEgKyBwcmV2X2l4KSwKIAkJCSAgICAgbm9pbnBhZ2VzLAogCQkJICAgICAwLCAgLyog cmVhZCBhY2Nlc3Mgb25seSBmb3IgaW4gZGF0YSAqLwotCQkJICAgICAwLCAvKiBubyBmb3JjZSAq LwogCQkJICAgICBpbnBhZ2VzLAogCQkJICAgICBOVUxMKTsKIApAQCAtMjc0MCw4ICsyNzM5LDcg QEAgc3RhdGljIGludCBjcnlwdG9jb3BfaW9jdGxfcHJvY2VzcyhzdHJ1Y3QgaW5vZGUgKmlub2Rl LCBzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWcKIAkJCQkgICAgIGN1cnJlbnQtPm1tLAogCQkJCSAg ICAgKHVuc2lnbmVkIGxvbmcgaW50KW9wZXIuY2lwaGVyX291dGRhdGEsCiAJCQkJICAgICBub291 dHBhZ2VzLAotCQkJCSAgICAgMSwgLyogd3JpdGUgYWNjZXNzIGZvciBvdXQgZGF0YSAqLwotCQkJ CSAgICAgMCwgLyogbm8gZm9yY2UgKi8KKwkJCQkgICAgIEZPTExfV1JJVEUsIC8qIHdyaXRlIGFj Y2VzcyBmb3Igb3V0IGRhdGEgKi8KIAkJCQkgICAgIG91dHBhZ2VzLAogCQkJCSAgICAgTlVMTCk7 CiAJCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CmRpZmYgLS1naXQgYS9hcmNoL2lh NjQva2VybmVsL2Vycl9pbmplY3QuYyBiL2FyY2gvaWE2NC9rZXJuZWwvZXJyX2luamVjdC5jCmlu ZGV4IDBjMTYxZWQ2ZDE4ZS4uODIwNWI0NTZkZTdhIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2Vy bmVsL2Vycl9pbmplY3QuYworKysgYi9hcmNoL2lhNjQva2VybmVsL2Vycl9pbmplY3QuYwpAQCAt MTQzLDcgKzE0Myw3IEBAIHN0b3JlX3ZpcnR1YWxfdG9fcGh5cyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCWludCByZXQ7CiAKICAgICAgICAgcmV0 ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sIHZpcnRfYWRkciwKLSAgICAg ICAgICAgICAgICAgICAgICAgIDEsIFZNX1JFQUQsIDAsIE5VTEwsIE5VTEwpOworCQkJICAgICAx LCBGT0xMX1dSSVRFLCBOVUxMLCBOVUxMKTsKIAlpZiAocmV0PD0wKSB7CiAjaWZkZWYgRVJSX0lO Sl9ERUJVRwogCQlwcmludGsoIlZpcnR1YWwgYWRkcmVzcyAlbHggaXMgbm90IGV4aXN0aW5nLlxu Iix2aXJ0X2FkZHIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbXB4LmMgYi9hcmNoL3g4Ni9t bS9tcHguYwppbmRleCA3ZWQ0N2IxZTZmNDIuLjdlOTRmYzZmNjA4YSAxMDA2NDQKLS0tIGEvYXJj aC94ODYvbW0vbXB4LmMKKysrIGIvYXJjaC94ODYvbW0vbXB4LmMKQEAgLTUzNiwxMCArNTM2LDkg QEAgc3RhdGljIGludCBtcHhfcmVzb2x2ZV9mYXVsdChsb25nIF9fdXNlciAqYWRkciwgaW50IHdy aXRlKQogewogCWxvbmcgZ3VwX3JldDsKIAlpbnQgbnJfcGFnZXMgPSAxOwotCWludCBmb3JjZSA9 IDA7CiAKIAlndXBfcmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sICh1 bnNpZ25lZCBsb25nKWFkZHIsCi0JCQkJIG5yX3BhZ2VzLCB3cml0ZSwgZm9yY2UsIE5VTEwsIE5V TEwpOworCQkJCSBucl9wYWdlcywgd3JpdGUgPyBGT0xMX1dSSVRFIDogMCwgTlVMTCwgTlVMTCk7 CiAJLyoKIAkgKiBnZXRfdXNlcl9wYWdlcygpIHJldHVybnMgbnVtYmVyIG9mIHBhZ2VzIGdvdHRl bi4KIAkgKiAwIG1lYW5zIHdlIGZhaWxlZCB0byBmYXVsdCBpbiBhbmQgZ2V0IGFueXRoaW5nLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCmluZGV4IGU0MGE2ZDhiMGI5Mi4u MDYyYzIzMTI1YjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdHRtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCkBA IC00OTYsOSArNDk2LDEzIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3R0bV90dF9waW5fdXNlcnB0cihz dHJ1Y3QgdHRtX3R0ICp0dG0pCiAJaW50IHI7CiAKIAlpbnQgd3JpdGUgPSAhKGd0dC0+dXNlcmZs YWdzICYgQU1ER1BVX0dFTV9VU0VSUFRSX1JFQURPTkxZKTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3Mg PSAwOwogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbiA9IHdyaXRlID8KIAkJRE1B X0JJRElSRUNUSU9OQUwgOiBETUFfVE9fREVWSUNFOwogCisJaWYgKHdyaXRlKQorCQlmbGFncyB8 PSBGT0xMX1dSSVRFOworCiAJaWYgKGN1cnJlbnQtPm1tICE9IGd0dC0+dXNlcm1tKQogCQlyZXR1 cm4gLUVQRVJNOwogCkBAIC01MTksNyArNTIzLDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX3R0 X3Bpbl91c2VycHRyKHN0cnVjdCB0dG1fdHQgKnR0bSkKIAkJc3RydWN0IHBhZ2UgKipwYWdlcyA9 IHR0bS0+cGFnZXMgKyBwaW5uZWQ7CiAKIAkJciA9IGdldF91c2VyX3BhZ2VzKGN1cnJlbnQsIGN1 cnJlbnQtPm1tLCB1c2VycHRyLCBudW1fcGFnZXMsCi0JCQkJICAgd3JpdGUsIDAsIHBhZ2VzLCBO VUxMKTsKKwkJCQkgICBmbGFncywgcGFnZXMsIE5VTEwpOwogCQlpZiAociA8IDApCiAJCQlnb3Rv IHJlbGVhc2VfcGFnZXM7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3VzZXJwdHIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3VzZXJwdHIuYwpp bmRleCAzNTlmZTJiOGJiOGEuLmIwMjExM2I1N2Q1MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fdXNlcnB0ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3VzZXJwdHIuYwpAQCAtNTgxLDEzICs1ODEsMTcgQEAgX19pOTE1X2dlbV91c2VycHRy X2dldF9wYWdlc193b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICpfd29yaykKIAkJcHZlYyA9IGRy bV9tYWxsb2NfYWIobnBhZ2VzLCBzaXplb2Yoc3RydWN0IHBhZ2UgKikpOwogCWlmIChwdmVjICE9 IE5VTEwpIHsKIAkJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBvYmotPnVzZXJwdHIubW0tPm1tOwor CQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSAwOworCisJCWlmICghb2JqLT51c2VycHRyLnJlYWRfb25s eSkKKwkJCWZsYWdzIHw9IEZPTExfV1JJVEU7CiAKIAkJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0p OwogCQl3aGlsZSAocGlubmVkIDwgbnBhZ2VzKSB7CiAJCQlyZXQgPSBnZXRfdXNlcl9wYWdlcyh3 b3JrLT50YXNrLCBtbSwKIAkJCQkJICAgICBvYmotPnVzZXJwdHIucHRyICsgcGlubmVkICogUEFH RV9TSVpFLAogCQkJCQkgICAgIG5wYWdlcyAtIHBpbm5lZCwKLQkJCQkJICAgICAhb2JqLT51c2Vy cHRyLnJlYWRfb25seSwgMCwKKwkJCQkJICAgICBmbGFncywKIAkJCQkJICAgICBwdmVjICsgcGlu bmVkLCBOVUxMKTsKIAkJCWlmIChyZXQgPCAwKQogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl90dG0uYwppbmRleCBkNjg0ZTJiNzlkMmIuLjBjMzgwZmU3NzM4MiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKQEAgLTU1Nyw3ICs1NTcsNyBAQCBzdGF0aWMgaW50IHJh ZGVvbl90dG1fdHRfcGluX3VzZXJwdHIoc3RydWN0IHR0bV90dCAqdHRtKQogCQlzdHJ1Y3QgcGFn ZSAqKnBhZ2VzID0gdHRtLT5wYWdlcyArIHBpbm5lZDsKIAogCQlyID0gZ2V0X3VzZXJfcGFnZXMo Y3VycmVudCwgY3VycmVudC0+bW0sIHVzZXJwdHIsIG51bV9wYWdlcywKLQkJCQkgICB3cml0ZSwg MCwgcGFnZXMsIE5VTEwpOworCQkJCSAgIHdyaXRlID8gRk9MTF9XUklURSA6IDAsIHBhZ2VzLCBO VUxMKTsKIAkJaWYgKHIgPCAwKQogCQkJZ290byByZWxlYXNlX3BhZ2VzOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlh L3ZpYV9kbWFibGl0LmMKaW5kZXggZDBjYmQ1ZWNkN2YwLi40NDU5Y2IzMmQxZmUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYWJsaXQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdmlhL3ZpYV9kbWFibGl0LmMKQEAgLTI0Miw4ICsyNDIsOCBAQCB2aWFfbG9ja19hbGxfZG1h X3BhZ2VzKGRybV92aWFfc2dfaW5mb190ICp2c2csICBkcm1fdmlhX2RtYWJsaXRfdCAqeGZlcikK IAlyZXQgPSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwKIAkJCSAgICAgKHVu c2lnbmVkIGxvbmcpeGZlci0+bWVtX2FkZHIsCiAJCQkgICAgIHZzZy0+bnVtX3BhZ2VzLAotCQkJ ICAgICAodnNnLT5kaXJlY3Rpb24gPT0gRE1BX0ZST01fREVWSUNFKSwKLQkJCSAgICAgMCwgdnNn LT5wYWdlcywgTlVMTCk7CisJCQkgICAgICh2c2ctPmRpcmVjdGlvbiA9PSBETUFfRlJPTV9ERVZJ Q0UpID8gRk9MTF9XUklURSA6IDAsCisJCQkgICAgIHZzZy0+cGFnZXMsIE5VTEwpOwogCiAJdXBf cmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAlpZiAocmV0ICE9IHZzZy0+bnVtX3BhZ2Vz KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMgYi9kcml2ZXJz L2luZmluaWJhbmQvY29yZS91bWVtLmMKaW5kZXggOThmZDlhNTk0ODQxLi44NzYyZWFjNDc1NzAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYworKysgYi9kcml2ZXJz L2luZmluaWJhbmQvY29yZS91bWVtLmMKQEAgLTk1LDYgKzk1LDcgQEAgc3RydWN0IGliX3VtZW0g KmliX3VtZW1fZ2V0KHN0cnVjdCBpYl91Y29udGV4dCAqY29udGV4dCwgdW5zaWduZWQgbG9uZyBh ZGRyLAogCURFRklORV9ETUFfQVRUUlMoYXR0cnMpOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2cs ICpzZ19saXN0X3N0YXJ0OwogCWludCBuZWVkX3JlbGVhc2UgPSAwOworCXVuc2lnbmVkIGludCBn dXBfZmxhZ3MgPSBGT0xMX1dSSVRFOwogCiAJaWYgKGRtYXN5bmMpCiAJCWRtYV9zZXRfYXR0cihE TUFfQVRUUl9XUklURV9CQVJSSUVSLCAmYXR0cnMpOwpAQCAtMTc3LDYgKzE3OCw5IEBAIHN0cnVj dCBpYl91bWVtICppYl91bWVtX2dldChzdHJ1Y3QgaWJfdWNvbnRleHQgKmNvbnRleHQsIHVuc2ln bmVkIGxvbmcgYWRkciwKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIAorCWlmICghdW1lbS0+d3Jp dGFibGUpCisJCWd1cF9mbGFncyB8PSBGT0xMX0ZPUkNFOworCiAJbmVlZF9yZWxlYXNlID0gMTsK IAlzZ19saXN0X3N0YXJ0ID0gdW1lbS0+c2dfaGVhZC5zZ2w7CiAKQEAgLTE4NCw3ICsxODgsNyBA QCBzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9nZXQoc3RydWN0IGliX3Vjb250ZXh0ICpjb250ZXh0 LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAJCXJldCA9IGdldF91c2VyX3BhZ2VzKGN1cnJlbnQsIGN1 cnJlbnQtPm1tLCBjdXJfYmFzZSwKIAkJCQkgICAgIG1pbl90KHVuc2lnbmVkIGxvbmcsIG5wYWdl cywKIAkJCQkJICAgUEFHRV9TSVpFIC8gc2l6ZW9mIChzdHJ1Y3QgcGFnZSAqKSksCi0JCQkJICAg ICAxLCAhdW1lbS0+d3JpdGFibGUsIHBhZ2VfbGlzdCwgdm1hX2xpc3QpOworCQkJCSAgICAgZ3Vw X2ZsYWdzLCBwYWdlX2xpc3QsIHZtYV9saXN0KTsKIAogCQlpZiAocmV0IDwgMCkKIAkJCWdvdG8g b3V0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9vZHAuYyBiL2Ry aXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMKaW5kZXggNDBiZWNkYjMxOTZlLi43Mzhj Y2ZlZTdjYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMK KysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9vZHAuYwpAQCAtNTI3LDYgKzUyNyw3 IEBAIGludCBpYl91bWVtX29kcF9tYXBfZG1hX3BhZ2VzKHN0cnVjdCBpYl91bWVtICp1bWVtLCB1 NjQgdXNlcl92aXJ0LCB1NjQgYmNudCwKIAl1NjQgb2ZmOwogCWludCBqLCBrLCByZXQgPSAwLCBz dGFydF9pZHgsIG5wYWdlcyA9IDA7CiAJdTY0IGJhc2VfdmlydF9hZGRyOworCXVuc2lnbmVkIGlu dCBmbGFncyA9IDA7CiAKIAlpZiAoYWNjZXNzX21hc2sgPT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7 CkBAIC01NTYsNiArNTU3LDkgQEAgaW50IGliX3VtZW1fb2RwX21hcF9kbWFfcGFnZXMoc3RydWN0 IGliX3VtZW0gKnVtZW0sIHU2NCB1c2VyX3ZpcnQsIHU2NCBiY250LAogCQlnb3RvIG91dF9wdXRf dGFzazsKIAl9CiAKKwlpZiAoYWNjZXNzX21hc2sgJiBPRFBfV1JJVEVfQUxMT1dFRF9CSVQpCisJ CWZsYWdzIHw9IEZPTExfV1JJVEU7CisKIAlzdGFydF9pZHggPSAodXNlcl92aXJ0IC0gaWJfdW1l bV9zdGFydCh1bWVtKSkgPj4gUEFHRV9TSElGVDsKIAlrID0gc3RhcnRfaWR4OwogCkBAIC01NzQs OCArNTc4LDcgQEAgaW50IGliX3VtZW1fb2RwX21hcF9kbWFfcGFnZXMoc3RydWN0IGliX3VtZW0g KnVtZW0sIHU2NCB1c2VyX3ZpcnQsIHU2NCBiY250LAogCQkgKi8KIAkJbnBhZ2VzID0gZ2V0X3Vz ZXJfcGFnZXMob3duaW5nX3Byb2Nlc3MsIG93bmluZ19tbSwgdXNlcl92aXJ0LAogCQkJCQlndXBf bnVtX3BhZ2VzLAotCQkJCQlhY2Nlc3NfbWFzayAmIE9EUF9XUklURV9BTExPV0VEX0JJVCwgMCwK LQkJCQkJbG9jYWxfcGFnZV9saXN0LCBOVUxMKTsKKwkJCQkJZmxhZ3MsIGxvY2FsX3BhZ2VfbGlz dCwgTlVMTCk7CiAJCXVwX3JlYWQoJm93bmluZ19tbS0+bW1hcF9zZW0pOwogCiAJCWlmIChucGFn ZXMgPCAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21l bWZyZWUuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKaW5k ZXggN2QyZTQyZGQ2OTI2Li44Njc2Njg1ZGJmM2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5p YmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3 L210aGNhL210aGNhX21lbWZyZWUuYwpAQCAtNDcyLDggKzQ3Miw4IEBAIGludCBtdGhjYV9tYXBf dXNlcl9kYihzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYsIHN0cnVjdCBtdGhjYV91YXIgKnVhciwKIAkJ Z290byBvdXQ7CiAJfQogCi0JcmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+ bW0sIHVhZGRyICYgUEFHRV9NQVNLLCAxLCAxLCAwLAotCQkJICAgICBwYWdlcywgTlVMTCk7CisJ cmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sIHVhZGRyICYgUEFHRV9N QVNLLCAxLAorCQkJICAgICBGT0xMX1dSSVRFLCBwYWdlcywgTlVMTCk7CiAJaWYgKHJldCA8IDAp CiAJCWdvdG8gb3V0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3Fp Yl91c2VyX3BhZ2VzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91c2VyX3BhZ2Vz LmMKaW5kZXggYWIxNTg4YWUxYzg1Li43NWMzZjBkZmZlNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv aW5maW5pYmFuZC9ody9xaWIvcWliX3VzZXJfcGFnZXMuYworKysgYi9kcml2ZXJzL2luZmluaWJh bmQvaHcvcWliL3FpYl91c2VyX3BhZ2VzLmMKQEAgLTY4LDcgKzY4LDggQEAgc3RhdGljIGludCBf X3FpYl9nZXRfdXNlcl9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BhZ2UsIHNpemVfdCBudW1f cGFnZXMsCiAJZm9yIChnb3QgPSAwOyBnb3QgPCBudW1fcGFnZXM7IGdvdCArPSByZXQpIHsKIAkJ cmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sCiAJCQkJICAgICBzdGFy dF9wYWdlICsgZ290ICogUEFHRV9TSVpFLAotCQkJCSAgICAgbnVtX3BhZ2VzIC0gZ290LCAxLCAx LAorCQkJCSAgICAgbnVtX3BhZ2VzIC0gZ290LAorCQkJCSAgICAgRk9MTF9XUklURSB8IEZPTExf Rk9SQ0UsCiAJCQkJICAgICBwICsgZ290LCBOVUxMKTsKIAkJaWYgKHJldCA8IDApCiAJCQlnb3Rv IGJhaWxfcmVsZWFzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody91c25pYy91 c25pY191aW9tLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvdXNuaWMvdXNuaWNfdWlvbS5jCmlu ZGV4IDY0NWE1ZjZlNmM4OC4uN2YwZDc1ZTI5NDQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmlu aWJhbmQvaHcvdXNuaWMvdXNuaWNfdWlvbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody91 c25pYy91c25pY191aW9tLmMKQEAgLTExMyw2ICsxMTMsNyBAQCBzdGF0aWMgaW50IHVzbmljX3Vp b21fZ2V0X3BhZ2VzKHVuc2lnbmVkIGxvbmcgYWRkciwgc2l6ZV90IHNpemUsIGludCB3cml0YWJs ZSwKIAlpbnQgZmxhZ3M7CiAJZG1hX2FkZHJfdCBwYTsKIAlERUZJTkVfRE1BX0FUVFJTKGF0dHJz KTsKKwl1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzOwogCiAJaWYgKGRtYXN5bmMpCiAJCWRtYV9zZXRf YXR0cihETUFfQVRUUl9XUklURV9CQVJSSUVSLCAmYXR0cnMpOwpAQCAtMTQwLDYgKzE0MSw4IEBA IHN0YXRpYyBpbnQgdXNuaWNfdWlvbV9nZXRfcGFnZXModW5zaWduZWQgbG9uZyBhZGRyLCBzaXpl X3Qgc2l6ZSwgaW50IHdyaXRhYmxlLAogCiAJZmxhZ3MgPSBJT01NVV9SRUFEIHwgSU9NTVVfQ0FD SEU7CiAJZmxhZ3MgfD0gKHdyaXRhYmxlKSA/IElPTU1VX1dSSVRFIDogMDsKKwlndXBfZmxhZ3Mg PSBGT0xMX1dSSVRFOworCWd1cF9mbGFncyB8PSAod3JpdGFibGUpID8gMCA6IEZPTExfRk9SQ0U7 CiAJY3VyX2Jhc2UgPSBhZGRyICYgUEFHRV9NQVNLOwogCXJldCA9IDA7CiAKQEAgLTE0Nyw3ICsx NTAsNyBAQCBzdGF0aWMgaW50IHVzbmljX3Vpb21fZ2V0X3BhZ2VzKHVuc2lnbmVkIGxvbmcgYWRk ciwgc2l6ZV90IHNpemUsIGludCB3cml0YWJsZSwKIAkJcmV0ID0gZ2V0X3VzZXJfcGFnZXMoY3Vy cmVudCwgY3VycmVudC0+bW0sIGN1cl9iYXNlLAogCQkJCQltaW5fdCh1bnNpZ25lZCBsb25nLCBu cGFnZXMsCiAJCQkJCVBBR0VfU0laRSAvIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSksCi0JCQkJCTEs ICF3cml0YWJsZSwgcGFnZV9saXN0LCBOVUxMKTsKKwkJCQkJZ3VwX2ZsYWdzLCBwYWdlX2xpc3Qs IE5VTEwpOwogCiAJCWlmIChyZXQgPCAwKQogCQkJZ290byBvdXQ7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtc2cuYyBiL2RyaXZlcnMvbWVkaWEvdjRs Mi1jb3JlL3ZpZGVvYnVmLWRtYS1zZy5jCmluZGV4IGY2NjljZWRjYThiZC4uZjc0YTc0ZDkxYjll IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtc2cuYwor KysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1Zi1kbWEtc2cuYwpAQCAtMTU2LDYg KzE1Niw3IEBAIHN0YXRpYyBpbnQgdmlkZW9idWZfZG1hX2luaXRfdXNlcl9sb2NrZWQoc3RydWN0 IHZpZGVvYnVmX2RtYWJ1ZiAqZG1hLAogewogCXVuc2lnbmVkIGxvbmcgZmlyc3QsIGxhc3Q7CiAJ aW50IGVyciwgcncgPSAwOworCXVuc2lnbmVkIGludCBmbGFncyA9IEZPTExfRk9SQ0U7CiAKIAlk bWEtPmRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKIAlzd2l0Y2ggKGRtYS0+ZGlyZWN0aW9uKSB7CkBA IC0xNzgsMTMgKzE3OSwxNSBAQCBzdGF0aWMgaW50IHZpZGVvYnVmX2RtYV9pbml0X3VzZXJfbG9j a2VkKHN0cnVjdCB2aWRlb2J1Zl9kbWFidWYgKmRtYSwKIAlpZiAoTlVMTCA9PSBkbWEtPnBhZ2Vz KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWlmIChydyA9PSBSRUFEKQorCQlmbGFncyB8PSBGT0xM X1dSSVRFOworCiAJZHByaW50aygxLCAiaW5pdCB1c2VyIFsweCVseCsweCVseCA9PiAlZCBwYWdl c11cbiIsCiAJCWRhdGEsIHNpemUsIGRtYS0+bnJfcGFnZXMpOwogCiAJZXJyID0gZ2V0X3VzZXJf cGFnZXMoY3VycmVudCwgY3VycmVudC0+bW0sCiAJCQkgICAgIGRhdGEgJiBQQUdFX01BU0ssIGRt YS0+bnJfcGFnZXMsCi0JCQkgICAgIHJ3ID09IFJFQUQsIDEsIC8qIGZvcmNlICovCi0JCQkgICAg IGRtYS0+cGFnZXMsIE5VTEwpOworCQkJICAgICBmbGFncywgZG1hLT5wYWdlcywgTlVMTCk7CiAK IAlpZiAoZXJyICE9IGRtYS0+bnJfcGFnZXMpIHsKIAkJZG1hLT5ucl9wYWdlcyA9IChlcnIgPj0g MCkgPyBlcnIgOiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL21pYy9zY2lmL3NjaWZfcm1h LmMgYi9kcml2ZXJzL21pc2MvbWljL3NjaWYvc2NpZl9ybWEuYwppbmRleCA2YTQ1MWJkNjViZjMu LmM0MGZkM2FhNDZmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL21pYy9zY2lmL3NjaWZfcm1h LmMKKysrIGIvZHJpdmVycy9taXNjL21pYy9zY2lmL3NjaWZfcm1hLmMKQEAgLTEzOTgsOCArMTM5 OCw3IEBAIHJldHJ5OgogCQkJCW1tLAogCQkJCSh1NjQpYWRkciwKIAkJCQlucl9wYWdlcywKLQkJ CQkhIShwcm90ICYgU0NJRl9QUk9UX1dSSVRFKSwKLQkJCQkwLAorCQkJCShwcm90ICYgU0NJRl9Q Uk9UX1dSSVRFKSA/IEZPTExfV1JJVEUgOiAwLAogCQkJCXBpbm5lZF9wYWdlcy0+cGFnZXMsCiAJ CQkJTlVMTCk7CiAJCXVwX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9taXNjL3NnaS1ncnUvZ3J1ZmF1bHQuYyBiL2RyaXZlcnMvbWlzYy9zZ2ktZ3J1L2dydWZhdWx0 LmMKaW5kZXggZjc0ZmMwY2EyZWY5Li5lNmI3MjNjNmEyYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWlzYy9zZ2ktZ3J1L2dydWZhdWx0LmMKKysrIGIvZHJpdmVycy9taXNjL3NnaS1ncnUvZ3J1ZmF1 bHQuYwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyBpbnQgbm9uX2F0b21pY19wdGVfbG9va3Vw KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCSpwYWdlc2hpZnQgPSBQQUdFX1NISUZUOwog I2VuZGlmCiAJaWYgKGdldF91c2VyX3BhZ2VzCi0JICAgIChjdXJyZW50LCBjdXJyZW50LT5tbSwg dmFkZHIsIDEsIHdyaXRlLCAwLCAmcGFnZSwgTlVMTCkgPD0gMCkKKwkgICAgKGN1cnJlbnQsIGN1 cnJlbnQtPm1tLCB2YWRkciwgMSwgd3JpdGUgPyBGT0xMX1dSSVRFIDogMCwgJnBhZ2UsIE5VTEwp IDw9IDApCiAJCXJldHVybiAtRUZBVUxUOwogCSpwYWRkciA9IHBhZ2VfdG9fcGh5cyhwYWdlKTsK IAlwdXRfcGFnZShwYWdlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9yZG1hL2hmaTEv dXNlcl9wYWdlcy5jIGIvZHJpdmVycy9zdGFnaW5nL3JkbWEvaGZpMS91c2VyX3BhZ2VzLmMKaW5k ZXggOTA3MWFmYmQ3YmY0Li5iNzc2Yjc0ZDNkMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2lu Zy9yZG1hL2hmaTEvdXNlcl9wYWdlcy5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9yZG1hL2hmaTEv dXNlcl9wYWdlcy5jCkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbnQgX19oZmkxX2dldF91c2Vy X3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGFnZSwgc2l6ZV90IG51bV9wYWdlcywKIAlmb3Ig KGdvdCA9IDA7IGdvdCA8IG51bV9wYWdlczsgZ290ICs9IHJldCkgewogCQlyZXQgPSBnZXRfdXNl cl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwKIAkJCQkgICAgIHN0YXJ0X3BhZ2UgKyBnb3Qg KiBQQUdFX1NJWkUsCi0JCQkJICAgICBudW1fcGFnZXMgLSBnb3QsIDEsIDEsCisJCQkJICAgICBu dW1fcGFnZXMgLSBnb3QsIEZPTExfV1JJVEUgfCBGT0xMX0ZPUkNFLAogCQkJCSAgICAgcCArIGdv dCwgTlVMTCk7CiAJCWlmIChyZXQgPCAwKQogCQkJZ290byBiYWlsX3JlbGVhc2U7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvcmRtYS9pcGF0aC9pcGF0aF91c2VyX3BhZ2VzLmMgYi9kcml2 ZXJzL3N0YWdpbmcvcmRtYS9pcGF0aC9pcGF0aF91c2VyX3BhZ2VzLmMKaW5kZXggZDI5YjRkYWY2 MWY4Li5mNjllYzcyOGUwZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9yZG1hL2lwYXRo L2lwYXRoX3VzZXJfcGFnZXMuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvcmRtYS9pcGF0aC9pcGF0 aF91c2VyX3BhZ2VzLmMKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIGludCBfX2lwYXRoX2dldF91 c2VyX3BhZ2VzKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGFnZSwgc2l6ZV90IG51bV9wYWdlcywKIAlm b3IgKGdvdCA9IDA7IGdvdCA8IG51bV9wYWdlczsgZ290ICs9IHJldCkgewogCQlyZXQgPSBnZXRf dXNlcl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwKIAkJCQkgICAgIHN0YXJ0X3BhZ2UgKyBn b3QgKiBQQUdFX1NJWkUsCi0JCQkJICAgICBudW1fcGFnZXMgLSBnb3QsIDEsIDEsCisJCQkJICAg ICBudW1fcGFnZXMgLSBnb3QsIEZPTExfV1JJVEUgfCBGT0xMX0ZPUkNFLAogCQkJCSAgICAgcCAr IGdvdCwgTlVMTCk7CiAJCWlmIChyZXQgPCAwKQogCQkJZ290byBiYWlsX3JlbGVhc2U7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3ZpcnQvZnNsX2h5cGVydmlzb3IuYyBiL2RyaXZlcnMvdmlydC9mc2xf aHlwZXJ2aXNvci5jCmluZGV4IDMyYzhmYzVmN2E1Yy4uNTkwYTBmNTFhMjQ5IDEwMDY0NAotLS0g YS9kcml2ZXJzL3ZpcnQvZnNsX2h5cGVydmlzb3IuYworKysgYi9kcml2ZXJzL3ZpcnQvZnNsX2h5 cGVydmlzb3IuYwpAQCAtMjQ2LDggKzI0Niw4IEBAIHN0YXRpYyBsb25nIGlvY3RsX21lbWNweShz dHJ1Y3QgZnNsX2h2X2lvY3RsX21lbWNweSBfX3VzZXIgKnApCiAJZG93bl9yZWFkKCZjdXJyZW50 LT5tbS0+bW1hcF9zZW0pOwogCW51bV9waW5uZWQgPSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBj dXJyZW50LT5tbSwKIAkJcGFyYW0ubG9jYWxfdmFkZHIgLSBsYl9vZmZzZXQsIG51bV9wYWdlcywK LQkJKHBhcmFtLnNvdXJjZSA9PSAtMSkgPyBSRUFEIDogV1JJVEUsCi0JCTAsIHBhZ2VzLCBOVUxM KTsKKwkJKHBhcmFtLnNvdXJjZSA9PSAtMSkgPyAwIDogRk9MTF9XUklURSwKKwkJcGFnZXMsIE5V TEwpOwogCXVwX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CiAKIAlpZiAobnVtX3Bpbm5l ZCAhPSBudW1fcGFnZXMpIHsKZGlmZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuYwppbmRl eCA5YzVlZTJhODgwYWEuLjIzZDBjODg1NDIyNyAxMDA2NDQKLS0tIGEvZnMvZXhlYy5jCisrKyBi L2ZzL2V4ZWMuYwpAQCAtMTkxLDYgKzE5MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZ2V0X2Fy Z19wYWdlKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0sIHVuc2lnbmVkIGxvbmcgcG9zLAogewog CXN0cnVjdCBwYWdlICpwYWdlOwogCWludCByZXQ7CisJdW5zaWduZWQgaW50IGd1cF9mbGFncyA9 IEZPTExfRk9SQ0U7CiAKICNpZmRlZiBDT05GSUdfU1RBQ0tfR1JPV1NVUAogCWlmICh3cml0ZSkg ewpAQCAtMTk5LDggKzIwMCwxMiBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKmdldF9hcmdfcGFnZShz dHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCB1bnNpZ25lZCBsb25nIHBvcywKIAkJCXJldHVybiBO VUxMOwogCX0KICNlbmRpZgotCXJldCA9IGdldF91c2VyX3BhZ2VzKGN1cnJlbnQsIGJwcm0tPm1t LCBwb3MsCi0JCQkxLCB3cml0ZSwgMSwgJnBhZ2UsIE5VTEwpOworCisJaWYgKHdyaXRlKQorCQln dXBfZmxhZ3MgfD0gRk9MTF9XUklURTsKKworCXJldCA9IGdldF91c2VyX3BhZ2VzKGN1cnJlbnQs IGJwcm0tPm1tLCBwb3MsIDEsIGd1cF9mbGFncywKKwkJCSZwYWdlLCBOVUxMKTsKIAlpZiAocmV0 IDw9IDApCiAJCXJldHVybiBOVUxMOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmgg Yi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXggNWMxOGNkOWM3MmQyLi5kMWNmZDM2NTdjY2UgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAg LTExOTksNyArMTE5OSw3IEBAIGxvbmcgX19nZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCSAgICAgIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqKnZtYXMsIGludCAqbm9uYmxvY2tpbmcpOwogbG9uZyBnZXRfdXNlcl9wYWdlcyhzdHJ1 Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCSAgICB1bnNpZ25l ZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLAotCQkgICAgaW50IHdyaXRlLCBp bnQgZm9yY2UsIHN0cnVjdCBwYWdlICoqcGFnZXMsCisJCSAgICB1bnNpZ25lZCBpbnQgZ3VwX2Zs YWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLAogCQkgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoq dm1hcyk7CiBsb25nIGdldF91c2VyX3BhZ2VzX2xvY2tlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz aywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCSAgICB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNp Z25lZCBsb25nIG5yX3BhZ2VzLApkaWZmIC0tZ2l0IGEva2VybmVsL2V2ZW50cy91cHJvYmVzLmMg Yi9rZXJuZWwvZXZlbnRzL3Vwcm9iZXMuYwppbmRleCBkYTBjMDlmZjYxMTIuLmQ1OWRlMjc0YTA1 YiAxMDA2NDQKLS0tIGEva2VybmVsL2V2ZW50cy91cHJvYmVzLmMKKysrIGIva2VybmVsL2V2ZW50 cy91cHJvYmVzLmMKQEAgLTI5OSw3ICsyOTksNyBAQCBpbnQgdXByb2JlX3dyaXRlX29wY29kZShz dHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyB2YWRkciwKIAogcmV0cnk6CiAJLyog UmVhZCB0aGUgcGFnZSB3aXRoIHZhZGRyIGludG8gbWVtb3J5ICovCi0JcmV0ID0gZ2V0X3VzZXJf cGFnZXMoTlVMTCwgbW0sIHZhZGRyLCAxLCAwLCAxLCAmb2xkX3BhZ2UsICZ2bWEpOworCXJldCA9 IGdldF91c2VyX3BhZ2VzKE5VTEwsIG1tLCB2YWRkciwgMSwgRk9MTF9GT1JDRSwgJm9sZF9wYWdl LCAmdm1hKTsKIAlpZiAocmV0IDw9IDApCiAJCXJldHVybiByZXQ7CiAKQEAgLTE3MDAsNyArMTcw MCw3IEBAIHN0YXRpYyBpbnQgaXNfdHJhcF9hdF9hZGRyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1 bnNpZ25lZCBsb25nIHZhZGRyKQogCWlmIChsaWtlbHkocmVzdWx0ID09IDApKQogCQlnb3RvIG91 dDsKIAotCXJlc3VsdCA9IGdldF91c2VyX3BhZ2VzKE5VTEwsIG1tLCB2YWRkciwgMSwgMCwgMSwg JnBhZ2UsIE5VTEwpOworCXJlc3VsdCA9IGdldF91c2VyX3BhZ2VzKE5VTEwsIG1tLCB2YWRkciwg MSwgRk9MTF9GT1JDRSwgJnBhZ2UsIE5VTEwpOwogCWlmIChyZXN1bHQgPCAwKQogCQlyZXR1cm4g cmVzdWx0OwogCmRpZmYgLS1naXQgYS9tbS9ndXAuYyBiL21tL2d1cC5jCmluZGV4IGJjZGVmYjk3 NzI2OS4uMjM3MGUyNDE3ZDYxIDEwMDY0NAotLS0gYS9tbS9ndXAuYworKysgYi9tbS9ndXAuYwpA QCAtODU0LDE4ICs4NTQsMTMgQEAgRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlc191bmxvY2tl ZCk7CiAgKiBGQVVMVF9GTEFHX0FMTE9XX1JFVFJZIHRvIGhhbmRsZV9tbV9mYXVsdC4KICAqLwog bG9uZyBnZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0 cnVjdCAqbW0sCi0JCXVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMs IGludCB3cml0ZSwKLQkJaW50IGZvcmNlLCBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKip2bWFzKQorCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25n IG5yX3BhZ2VzLAorCQl1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzLCBzdHJ1Y3QgcGFnZSAqKnBhZ2Vz LAorCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKip2bWFzKQogewotCXVuc2lnbmVkIGludCBmbGFn cyA9IEZPTExfVE9VQ0g7Ci0KLQlpZiAod3JpdGUpCi0JCWZsYWdzIHw9IEZPTExfV1JJVEU7Ci0J aWYgKGZvcmNlKQotCQlmbGFncyB8PSBGT0xMX0ZPUkNFOwotCiAJcmV0dXJuIF9fZ2V0X3VzZXJf cGFnZXNfbG9ja2VkKHRzaywgbW0sIHN0YXJ0LCBucl9wYWdlcywKLQkJCQkgICAgICAgcGFnZXMs IHZtYXMsIE5VTEwsIGZhbHNlLCBmbGFncyk7CisJCQkJICAgICAgIHBhZ2VzLCB2bWFzLCBOVUxM LCBmYWxzZSwKKwkJCQkgICAgICAgZ3VwX2ZsYWdzIHwgRk9MTF9UT1VDSCk7CiB9CiBFWFBPUlRf U1lNQk9MKGdldF91c2VyX3BhZ2VzKTsKIApkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9t ZW1vcnkuYwppbmRleCA1YWVlOWVjOGI4YzYuLjEzMTQyYWNjZGE0ZiAxMDA2NDQKLS0tIGEvbW0v bWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTM3MTUsNiArMzcxNSwxMCBAQCBzdGF0aWMg aW50IF9fYWNjZXNzX3JlbW90ZV92bShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1t X3N0cnVjdCAqbW0sCiB7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7CiAJdm9pZCAqb2xk X2J1ZiA9IGJ1ZjsKKwl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOworCisJaWYgKHdy aXRlKQorCQlmbGFncyB8PSBGT0xMX1dSSVRFOwogCiAJZG93bl9yZWFkKCZtbS0+bW1hcF9zZW0p OwogCS8qIGlnbm9yZSBlcnJvcnMsIGp1c3QgY2hlY2sgaG93IG11Y2ggd2FzIHN1Y2Nlc3NmdWxs eSB0cmFuc2ZlcnJlZCAqLwpAQCAtMzcyNCw3ICszNzI4LDcgQEAgc3RhdGljIGludCBfX2FjY2Vz c19yZW1vdGVfdm0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1t LAogCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7CiAKIAkJcmV0ID0gZ2V0X3VzZXJfcGFnZXMo dHNrLCBtbSwgYWRkciwgMSwKLQkJCQl3cml0ZSwgMSwgJnBhZ2UsICZ2bWEpOworCQkJCWZsYWdz LCAmcGFnZSwgJnZtYSk7CiAJCWlmIChyZXQgPD0gMCkgewogI2lmbmRlZiBDT05GSUdfSEFWRV9J T1JFTUFQX1BST1QKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9t ZW1wb2xpY3kuYwppbmRleCBiZTk4NDBiZjExZDEuLjQ0MTM0YmE2ZmI1MyAxMDA2NDQKLS0tIGEv bW0vbWVtcG9saWN5LmMKKysrIGIvbW0vbWVtcG9saWN5LmMKQEAgLTgxOCw3ICs4MTgsNyBAQCBz dGF0aWMgaW50IGxvb2t1cF9ub2RlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25n IGFkZHIpCiAJc3RydWN0IHBhZ2UgKnA7CiAJaW50IGVycjsKIAotCWVyciA9IGdldF91c2VyX3Bh Z2VzKGN1cnJlbnQsIG1tLCBhZGRyICYgUEFHRV9NQVNLLCAxLCAwLCAwLCAmcCwgTlVMTCk7CisJ ZXJyID0gZ2V0X3VzZXJfcGFnZXMoY3VycmVudCwgbW0sIGFkZHIgJiBQQUdFX01BU0ssIDEsIDAs ICZwLCBOVUxMKTsKIAlpZiAoZXJyID49IDApIHsKIAkJZXJyID0gcGFnZV90b19uaWQocCk7CiAJ CXB1dF9wYWdlKHApOwpkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMKaW5kZXgg MDQ0ZWZlMGE1MmVhLi5lYzA1NjE5MGQ5NTEgMTAwNjQ0Ci0tLSBhL21tL25vbW11LmMKKysrIGIv bW0vbm9tbXUuYwpAQCAtMTg0LDE4ICsxODQsMTEgQEAgZmluaXNoX29yX2ZhdWx0OgogICovCiBs b25nIGdldF91c2VyX3BhZ2VzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwKIAkJICAgIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgbnJfcGFn ZXMsCi0JCSAgICBpbnQgd3JpdGUsIGludCBmb3JjZSwgc3RydWN0IHBhZ2UgKipwYWdlcywKKwkJ ICAgIHVuc2lnbmVkIGludCBndXBfZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJCSAgICBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKip2bWFzKQogewotCWludCBmbGFncyA9IDA7Ci0KLQlpZiAo d3JpdGUpCi0JCWZsYWdzIHw9IEZPTExfV1JJVEU7Ci0JaWYgKGZvcmNlKQotCQlmbGFncyB8PSBG T0xMX0ZPUkNFOwotCi0JcmV0dXJuIF9fZ2V0X3VzZXJfcGFnZXModHNrLCBtbSwgc3RhcnQsIG5y X3BhZ2VzLCBmbGFncywgcGFnZXMsIHZtYXMsCi0JCQkJTlVMTCk7CisJcmV0dXJuIF9fZ2V0X3Vz ZXJfcGFnZXModHNrLCBtbSwgc3RhcnQsIG5yX3BhZ2VzLAorCQkJCWd1cF9mbGFncywgcGFnZXMs IHZtYXMsIE5VTEwpOwogfQogRVhQT1JUX1NZTUJPTChnZXRfdXNlcl9wYWdlcyk7CiAKQEAgLTIw NCwxMCArMTk3LDcgQEAgbG9uZyBnZXRfdXNlcl9wYWdlc19sb2NrZWQoc3RydWN0IHRhc2tfc3Ry dWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgdW5zaWduZWQgaW50IGd1cF9m bGFncywgc3RydWN0IHBhZ2UgKipwYWdlcywKIAkJCSAgIGludCAqbG9ja2VkKQogewotCWludCB3 cml0ZSA9IGd1cF9mbGFncyAmIEZPTExfV1JJVEU7Ci0JaW50IGZvcmNlID0gZ3VwX2ZsYWdzICYg Rk9MTF9GT1JDRTsKLQotCXJldHVybiBnZXRfdXNlcl9wYWdlcyh0c2ssIG1tLCBzdGFydCwgbnJf cGFnZXMsIHdyaXRlLCBmb3JjZSwKKwlyZXR1cm4gZ2V0X3VzZXJfcGFnZXModHNrLCBtbSwgc3Rh cnQsIG5yX3BhZ2VzLCBndXBfZmxhZ3MsCiAJCQkgICAgICBwYWdlcywgTlVMTCk7CiB9CiBFWFBP UlRfU1lNQk9MKGdldF91c2VyX3BhZ2VzX2xvY2tlZCk7CmRpZmYgLS1naXQgYS9zZWN1cml0eS90 b21veW8vZG9tYWluLmMgYi9zZWN1cml0eS90b21veW8vZG9tYWluLmMKaW5kZXggMzg2NTE0NTRl ZDA4Li42ZjM4OGU3Nzk5OWMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3RvbW95by9kb21haW4uYwor KysgYi9zZWN1cml0eS90b21veW8vZG9tYWluLmMKQEAgLTg3NCw3ICs4NzQsOCBAQCBib29sIHRv bW95b19kdW1wX3BhZ2Uoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgdW5zaWduZWQgbG9uZyBw b3MsCiAJfQogCS8qIFNhbWUgd2l0aCBnZXRfYXJnX3BhZ2UoYnBybSwgcG9zLCAwKSBpbiBmcy9l eGVjLmMgKi8KICNpZmRlZiBDT05GSUdfTU1VCi0JaWYgKGdldF91c2VyX3BhZ2VzKGN1cnJlbnQs IGJwcm0tPm1tLCBwb3MsIDEsIDAsIDEsICZwYWdlLCBOVUxMKSA8PSAwKQorCWlmIChnZXRfdXNl cl9wYWdlcyhjdXJyZW50LCBicHJtLT5tbSwgcG9zLCAxLAorCQkJICAgRk9MTF9GT1JDRSwgJnBh Z2UsIE5VTEwpIDw9IDApCiAJCXJldHVybiBmYWxzZTsKICNlbHNlCiAJcGFnZSA9IGJwcm0tPnBh Z2VbcG9zIC8gUEFHRV9TSVpFXTsKCkZyb20gMzA3N2RjMjJiZWY4MTI1NjFkOWJkOGNkM2NlMmJk ODYyNTU1ZTczMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTG9yZW56byBTdG9ha2Vz IDxsc3RvYWtlc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMTMgT2N0IDIwMTYgMDE6MjA6MTggKzAx MDAKU3ViamVjdDogW1BBVENIIDA3LzEwXSBtbTogcmVwbGFjZSBfX2FjY2Vzc19yZW1vdGVfdm0o KSB3cml0ZSBwYXJhbWV0ZXIgd2l0aAogZ3VwX2ZsYWdzCgpjb21taXQgNDQyNDg2ZWMxMDk2Nzgx YzUwMjI3YjczZjcyMWE2Mzk3NGIwZmRkYSB1cHN0cmVhbS4KClRoaXMgcmVtb3ZlcyB0aGUgJ3dy aXRlJyBhcmd1bWVudCBmcm9tIF9fYWNjZXNzX3JlbW90ZV92bSgpIGFuZCByZXBsYWNlcwppdCB3 aXRoICdndXBfZmxhZ3MnIGFzIHVzZSBvZiB0aGlzIGZ1bmN0aW9uIHByZXZpb3VzbHkgc2lsZW50 bHkgaW1wbGllZApGT0xMX0ZPUkNFLCB3aGVyZWFzIGFmdGVyIHRoaXMgcGF0Y2ggY2FsbGVycyBl eHBsaWNpdGx5IHBhc3MgdGhpcyBmbGFnLgoKV2UgbWFrZSB0aGlzIGV4cGxpY2l0IGFzIHVzZSBv ZiBGT0xMX0ZPUkNFIGNhbiByZXN1bHQgaW4gc3VycHJpc2luZwpiZWhhdmlvdXIgKGFuZCBoZW5j ZSBidWdzKSB3aXRoaW4gdGhlIG1tIHN1YnN5c3RlbS4KClNpZ25lZC1vZmYtYnk6IExvcmVuem8g U3RvYWtlcyA8bHN0b2FrZXNAZ21haWwuY29tPgpBY2tlZC1ieTogTWljaGFsIEhvY2tvIDxtaG9j a29Ac3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51 eC1mb3VuZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IGFkanVzdCBjb250ZXh0 XQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5j by51az4KLS0tCiBtbS9tZW1vcnkuYyB8IDIzICsrKysrKysrKysrKysrKy0tLS0tLS0tCiBtbS9u b21tdS5jICB8ICA5ICsrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCsp LCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21lbW9yeS5j CmluZGV4IDEzMTQyYWNjZGE0Zi4uMWEwZDcyNzY4N2QwIDEwMDY0NAotLS0gYS9tbS9tZW1vcnku YworKysgYi9tbS9tZW1vcnkuYwpAQCAtMzcxMSwxNCArMzcxMSwxMSBAQCBFWFBPUlRfU1lNQk9M X0dQTChnZW5lcmljX2FjY2Vzc19waHlzKTsKICAqIGdpdmVuIHRhc2sgZm9yIHBhZ2UgZmF1bHQg YWNjb3VudGluZy4KICAqLwogc3RhdGljIGludCBfX2FjY2Vzc19yZW1vdGVfdm0oc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAotCQl1bnNpZ25lZCBsb25nIGFk ZHIsIHZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRlKQorCQl1bnNpZ25lZCBsb25nIGFkZHIs IHZvaWQgKmJ1ZiwgaW50IGxlbiwgdW5zaWduZWQgaW50IGd1cF9mbGFncykKIHsKIAlzdHJ1Y3Qg dm1fYXJlYV9zdHJ1Y3QgKnZtYTsKIAl2b2lkICpvbGRfYnVmID0gYnVmOwotCXVuc2lnbmVkIGlu dCBmbGFncyA9IEZPTExfRk9SQ0U7Ci0KLQlpZiAod3JpdGUpCi0JCWZsYWdzIHw9IEZPTExfV1JJ VEU7CisJaW50IHdyaXRlID0gZ3VwX2ZsYWdzICYgRk9MTF9XUklURTsKIAogCWRvd25fcmVhZCgm bW0tPm1tYXBfc2VtKTsKIAkvKiBpZ25vcmUgZXJyb3JzLCBqdXN0IGNoZWNrIGhvdyBtdWNoIHdh cyBzdWNjZXNzZnVsbHkgdHJhbnNmZXJyZWQgKi8KQEAgLTM3MjgsNyArMzcyNSw3IEBAIHN0YXRp YyBpbnQgX19hY2Nlc3NfcmVtb3RlX3ZtKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3Qg bW1fc3RydWN0ICptbSwKIAkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOwogCiAJCXJldCA9IGdl dF91c2VyX3BhZ2VzKHRzaywgbW0sIGFkZHIsIDEsCi0JCQkJZmxhZ3MsICZwYWdlLCAmdm1hKTsK KwkJCQlndXBfZmxhZ3MsICZwYWdlLCAmdm1hKTsKIAkJaWYgKHJldCA8PSAwKSB7CiAjaWZuZGVm IENPTkZJR19IQVZFX0lPUkVNQVBfUFJPVAogCQkJYnJlYWs7CkBAIC0zNzg3LDcgKzM3ODQsMTIg QEAgc3RhdGljIGludCBfX2FjY2Vzc19yZW1vdGVfdm0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0 cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQg d3JpdGUpCiB7Ci0JcmV0dXJuIF9fYWNjZXNzX3JlbW90ZV92bShOVUxMLCBtbSwgYWRkciwgYnVm LCBsZW4sIHdyaXRlKTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOworCisJaWYg KHdyaXRlKQorCQlmbGFncyB8PSBGT0xMX1dSSVRFOworCisJcmV0dXJuIF9fYWNjZXNzX3JlbW90 ZV92bShOVUxMLCBtbSwgYWRkciwgYnVmLCBsZW4sIGZsYWdzKTsKIH0KIAogLyoKQEAgLTM4MDAs MTIgKzM4MDIsMTcgQEAgaW50IGFjY2Vzc19wcm9jZXNzX3ZtKHN0cnVjdCB0YXNrX3N0cnVjdCAq dHNrLCB1bnNpZ25lZCBsb25nIGFkZHIsCiB7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW07CiAJaW50 IHJldDsKKwl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOwogCiAJbW0gPSBnZXRfdGFz a19tbSh0c2spOwogCWlmICghbW0pCiAJCXJldHVybiAwOwogCi0JcmV0ID0gX19hY2Nlc3NfcmVt b3RlX3ZtKHRzaywgbW0sIGFkZHIsIGJ1ZiwgbGVuLCB3cml0ZSk7CisJaWYgKHdyaXRlKQorCQlm bGFncyB8PSBGT0xMX1dSSVRFOworCisJcmV0ID0gX19hY2Nlc3NfcmVtb3RlX3ZtKHRzaywgbW0s IGFkZHIsIGJ1ZiwgbGVuLCBmbGFncyk7CisKIAltbXB1dChtbSk7CiAKIAlyZXR1cm4gcmV0Owpk aWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMKaW5kZXggZWMwNTYxOTBkOTUxLi40 NmFhMmZmODEyM2EgMTAwNjQ0Ci0tLSBhL21tL25vbW11LmMKKysrIGIvbW0vbm9tbXUuYwpAQCAt MTkyOSw5ICsxOTI5LDEwIEBAIHZvaWQgZmlsZW1hcF9tYXBfcGFnZXMoc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsIHN0cnVjdCB2bV9mYXVsdCAqdm1mKQogRVhQT1JUX1NZTUJPTChmaWxlbWFw X21hcF9wYWdlcyk7CiAKIHN0YXRpYyBpbnQgX19hY2Nlc3NfcmVtb3RlX3ZtKHN0cnVjdCB0YXNr X3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJdW5zaWduZWQgbG9uZyBhZGRy LCB2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSkKKwkJdW5zaWduZWQgbG9uZyBhZGRyLCB2 b2lkICpidWYsIGludCBsZW4sIHVuc2lnbmVkIGludCBndXBfZmxhZ3MpCiB7CiAJc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWE7CisJaW50IHdyaXRlID0gZ3VwX2ZsYWdzICYgRk9MTF9XUklURTsK IAogCWRvd25fcmVhZCgmbW0tPm1tYXBfc2VtKTsKIApAQCAtMTk3Myw3ICsxOTc0LDggQEAgc3Rh dGljIGludCBfX2FjY2Vzc19yZW1vdGVfdm0oc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVj dCBtbV9zdHJ1Y3QgKm1tLAogaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0cnVjdCAq bW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQgd3JpdGUp CiB7Ci0JcmV0dXJuIF9fYWNjZXNzX3JlbW90ZV92bShOVUxMLCBtbSwgYWRkciwgYnVmLCBsZW4s IHdyaXRlKTsKKwlyZXR1cm4gX19hY2Nlc3NfcmVtb3RlX3ZtKE5VTEwsIG1tLCBhZGRyLCBidWYs IGxlbiwKKwkJCXdyaXRlID8gRk9MTF9XUklURSA6IDApOwogfQogCiAvKgpAQCAtMTk5MSw3ICsx OTkzLDggQEAgaW50IGFjY2Vzc19wcm9jZXNzX3ZtKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1 bnNpZ25lZCBsb25nIGFkZHIsIHZvaWQgKmJ1ZiwgaW4KIAlpZiAoIW1tKQogCQlyZXR1cm4gMDsK IAotCWxlbiA9IF9fYWNjZXNzX3JlbW90ZV92bSh0c2ssIG1tLCBhZGRyLCBidWYsIGxlbiwgd3Jp dGUpOworCWxlbiA9IF9fYWNjZXNzX3JlbW90ZV92bSh0c2ssIG1tLCBhZGRyLCBidWYsIGxlbiwK KwkJCXdyaXRlID8gRk9MTF9XUklURSA6IDApOwogCiAJbW1wdXQobW0pOwogCXJldHVybiBsZW47 CgpGcm9tIGNlMGNiYjNmZjkzMDA3Nzk4ZTNkZTUxNzU0M2NkNTVlYWQ5ZWIxZGYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IExvcmVuem8gU3RvYWtlcyA8bHN0b2FrZXNAZ21haWwuY29t PgpEYXRlOiBUaHUsIDEzIE9jdCAyMDE2IDAxOjIwOjE5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAw OC8xMF0gbW06IHJlcGxhY2UgYWNjZXNzX3JlbW90ZV92bSgpIHdyaXRlIHBhcmFtZXRlciB3aXRo CiBndXBfZmxhZ3MKCmNvbW1pdCA2MzQ3ZThkNWJjY2UzM2ZjMzZlNjUxOTAxZWZlZmJlMmM5M2E0 M2VmIHVwc3RyZWFtLgoKVGhpcyByZW1vdmVzIHRoZSAnd3JpdGUnIGFyZ3VtZW50IGZyb20gYWNj ZXNzX3JlbW90ZV92bSgpIGFuZCByZXBsYWNlcwppdCB3aXRoICdndXBfZmxhZ3MnIGFzIHVzZSBv ZiB0aGlzIGZ1bmN0aW9uIHByZXZpb3VzbHkgc2lsZW50bHkgaW1wbGllZApGT0xMX0ZPUkNFLCB3 aGVyZWFzIGFmdGVyIHRoaXMgcGF0Y2ggY2FsbGVycyBleHBsaWNpdGx5IHBhc3MgdGhpcyBmbGFn LgoKV2UgbWFrZSB0aGlzIGV4cGxpY2l0IGFzIHVzZSBvZiBGT0xMX0ZPUkNFIGNhbiByZXN1bHQg aW4gc3VycHJpc2luZwpiZWhhdmlvdXIgKGFuZCBoZW5jZSBidWdzKSB3aXRoaW4gdGhlIG1tIHN1 YnN5c3RlbS4KClNpZ25lZC1vZmYtYnk6IExvcmVuem8gU3RvYWtlcyA8bHN0b2FrZXNAZ21haWwu Y29tPgpBY2tlZC1ieTogTWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5jb20+ClNpZ25lZC1vZmYt Ynk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVk LW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0t LQogZnMvcHJvYy9iYXNlLmMgICAgIHwgMTkgKysrKysrKysrKysrKy0tLS0tLQogaW5jbHVkZS9s aW51eC9tbS5oIHwgIDIgKy0KIG1tL21lbW9yeS5jICAgICAgICB8IDExICsrKy0tLS0tLS0tCiBt bS9ub21tdS5jICAgICAgICAgfCAgNyArKystLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDIwIGluc2Vy dGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvYmFzZS5jIGIv ZnMvcHJvYy9iYXNlLmMKaW5kZXggNGJlZWQzMDFlMjI0Li40NDVjNDJiMmVjNjEgMTAwNjQ0Ci0t LSBhL2ZzL3Byb2MvYmFzZS5jCisrKyBiL2ZzL3Byb2MvYmFzZS5jCkBAIC0yNTQsNyArMjU0LDcg QEAgc3RhdGljIHNzaXplX3QgcHJvY19waWRfY21kbGluZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxl LCBjaGFyIF9fdXNlciAqYnVmLAogCSAqIEluaGVyZW50bHkgcmFjeSAtLSBjb21tYW5kIGxpbmUg c2hhcmVzIGFkZHJlc3Mgc3BhY2UKIAkgKiB3aXRoIGNvZGUgYW5kIGRhdGEuCiAJICovCi0JcnYg PSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCBhcmdfZW5kIC0gMSwgJmMsIDEsIDApOworCXJ2ID0gYWNj ZXNzX3JlbW90ZV92bShtbSwgYXJnX2VuZCAtIDEsICZjLCAxLCBGT0xMX0ZPUkNFKTsKIAlpZiAo cnYgPD0gMCkKIAkJZ290byBvdXRfZnJlZV9wYWdlOwogCkBAIC0yNzIsNyArMjcyLDggQEAgc3Rh dGljIHNzaXplX3QgcHJvY19waWRfY21kbGluZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFy IF9fdXNlciAqYnVmLAogCQkJaW50IG5yX3JlYWQ7CiAKIAkJCV9jb3VudCA9IG1pbjMoY291bnQs IGxlbiwgUEFHRV9TSVpFKTsKLQkJCW5yX3JlYWQgPSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCBwLCBw YWdlLCBfY291bnQsIDApOworCQkJbnJfcmVhZCA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIHAsIHBh Z2UsIF9jb3VudCwKKwkJCQkJRk9MTF9GT1JDRSk7CiAJCQlpZiAobnJfcmVhZCA8IDApCiAJCQkJ cnYgPSBucl9yZWFkOwogCQkJaWYgKG5yX3JlYWQgPD0gMCkKQEAgLTMwNyw3ICszMDgsOCBAQCBz dGF0aWMgc3NpemVfdCBwcm9jX3BpZF9jbWRsaW5lX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNo YXIgX191c2VyICpidWYsCiAJCQlib29sIGZpbmFsOwogCiAJCQlfY291bnQgPSBtaW4zKGNvdW50 LCBsZW4sIFBBR0VfU0laRSk7Ci0JCQlucl9yZWFkID0gYWNjZXNzX3JlbW90ZV92bShtbSwgcCwg cGFnZSwgX2NvdW50LCAwKTsKKwkJCW5yX3JlYWQgPSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCBwLCBw YWdlLCBfY291bnQsCisJCQkJCUZPTExfRk9SQ0UpOwogCQkJaWYgKG5yX3JlYWQgPCAwKQogCQkJ CXJ2ID0gbnJfcmVhZDsKIAkJCWlmIChucl9yZWFkIDw9IDApCkBAIC0zNTYsNyArMzU4LDggQEAg c2tpcF9hcmd2OgogCQkJYm9vbCBmaW5hbDsKIAogCQkJX2NvdW50ID0gbWluMyhjb3VudCwgbGVu LCBQQUdFX1NJWkUpOwotCQkJbnJfcmVhZCA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIHAsIHBhZ2Us IF9jb3VudCwgMCk7CisJCQlucl9yZWFkID0gYWNjZXNzX3JlbW90ZV92bShtbSwgcCwgcGFnZSwg X2NvdW50LAorCQkJCQlGT0xMX0ZPUkNFKTsKIAkJCWlmIChucl9yZWFkIDwgMCkKIAkJCQlydiA9 IG5yX3JlYWQ7CiAJCQlpZiAobnJfcmVhZCA8PSAwKQpAQCAtODY4LDYgKzg3MSw3IEBAIHN0YXRp YyBzc2l6ZV90IG1lbV9ydyhzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAl1 bnNpZ25lZCBsb25nIGFkZHIgPSAqcHBvczsKIAlzc2l6ZV90IGNvcGllZDsKIAljaGFyICpwYWdl OworCXVuc2lnbmVkIGludCBmbGFncyA9IEZPTExfRk9SQ0U7CiAKIAlpZiAoIW1tKQogCQlyZXR1 cm4gMDsKQEAgLTg4MCw2ICs4ODQsOSBAQCBzdGF0aWMgc3NpemVfdCBtZW1fcncoc3RydWN0IGZp bGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsCiAJaWYgKCFhdG9taWNfaW5jX25vdF96ZXJvKCZt bS0+bW1fdXNlcnMpKQogCQlnb3RvIGZyZWU7CiAKKwlpZiAod3JpdGUpCisJCWZsYWdzIHw9IEZP TExfV1JJVEU7CisKIAl3aGlsZSAoY291bnQgPiAwKSB7CiAJCWludCB0aGlzX2xlbiA9IG1pbl90 KGludCwgY291bnQsIFBBR0VfU0laRSk7CiAKQEAgLTg4OCw3ICs4OTUsNyBAQCBzdGF0aWMgc3Np emVfdCBtZW1fcncoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsCiAJCQlicmVh azsKIAkJfQogCi0JCXRoaXNfbGVuID0gYWNjZXNzX3JlbW90ZV92bShtbSwgYWRkciwgcGFnZSwg dGhpc19sZW4sIHdyaXRlKTsKKwkJdGhpc19sZW4gPSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCBhZGRy LCBwYWdlLCB0aGlzX2xlbiwgZmxhZ3MpOwogCQlpZiAoIXRoaXNfbGVuKSB7CiAJCQlpZiAoIWNv cGllZCkKIAkJCQljb3BpZWQgPSAtRUlPOwpAQCAtMTAwMSw3ICsxMDA4LDcgQEAgc3RhdGljIHNz aXplX3QgZW52aXJvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAog CQl0aGlzX2xlbiA9IG1pbihtYXhfbGVuLCB0aGlzX2xlbik7CiAKIAkJcmV0dmFsID0gYWNjZXNz X3JlbW90ZV92bShtbSwgKGVudl9zdGFydCArIHNyYyksCi0JCQlwYWdlLCB0aGlzX2xlbiwgMCk7 CisJCQlwYWdlLCB0aGlzX2xlbiwgRk9MTF9GT1JDRSk7CiAKIAkJaWYgKHJldHZhbCA8PSAwKSB7 CiAJCQlyZXQgPSByZXR2YWw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tLmggYi9pbmNs dWRlL2xpbnV4L21tLmgKaW5kZXggZDFjZmQzNjU3Y2NlLi45YTA3MTZlOTAwYjUgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTExOTEs NyArMTE5MSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGZpeHVwX3VzZXJfZmF1bHQoc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssCiAKIGV4dGVybiBpbnQgYWNjZXNzX3Byb2Nlc3Nfdm0oc3RydWN0IHRh c2tfc3RydWN0ICp0c2ssIHVuc2lnbmVkIGxvbmcgYWRkciwgdm9pZCAqYnVmLCBpbnQgbGVuLCBp bnQgd3JpdGUpOwogZXh0ZXJuIGludCBhY2Nlc3NfcmVtb3RlX3ZtKHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCXZvaWQgKmJ1ZiwgaW50IGxlbiwgaW50IHdyaXRl KTsKKwkJdm9pZCAqYnVmLCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzKTsKIAogbG9u ZyBfX2dldF91c2VyX3BhZ2VzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwKIAkJICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBucl9w YWdlcywKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggMWEwZDcy NzY4N2QwLi5mYTc1MmRmNmRjODUgMTAwNjQ0Ci0tLSBhL21tL21lbW9yeS5jCisrKyBiL21tL21l bW9yeS5jCkBAIC0zNzc3LDE5ICszNzc3LDE0IEBAIHN0YXRpYyBpbnQgX19hY2Nlc3NfcmVtb3Rl X3ZtKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKICAqIEBh ZGRyOglzdGFydCBhZGRyZXNzIHRvIGFjY2VzcwogICogQGJ1ZjoJc291cmNlIG9yIGRlc3RpbmF0 aW9uIGJ1ZmZlcgogICogQGxlbjoJbnVtYmVyIG9mIGJ5dGVzIHRvIHRyYW5zZmVyCi0gKiBAd3Jp dGU6CXdoZXRoZXIgdGhlIGFjY2VzcyBpcyBhIHdyaXRlCisgKiBAZ3VwX2ZsYWdzOglmbGFncyBt b2RpZnlpbmcgbG9va3VwIGJlaGF2aW91cgogICoKICAqIFRoZSBjYWxsZXIgbXVzdCBob2xkIGEg cmVmZXJlbmNlIG9uIEBtbS4KICAqLwogaW50IGFjY2Vzc19yZW1vdGVfdm0oc3RydWN0IG1tX3N0 cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKLQkJdm9pZCAqYnVmLCBpbnQgbGVuLCBpbnQg d3JpdGUpCisJCXZvaWQgKmJ1ZiwgaW50IGxlbiwgdW5zaWduZWQgaW50IGd1cF9mbGFncykKIHsK LQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOwotCi0JaWYgKHdyaXRlKQotCQlmbGFn cyB8PSBGT0xMX1dSSVRFOwotCi0JcmV0dXJuIF9fYWNjZXNzX3JlbW90ZV92bShOVUxMLCBtbSwg YWRkciwgYnVmLCBsZW4sIGZsYWdzKTsKKwlyZXR1cm4gX19hY2Nlc3NfcmVtb3RlX3ZtKE5VTEws IG1tLCBhZGRyLCBidWYsIGxlbiwgZ3VwX2ZsYWdzKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL21t L25vbW11LmMgYi9tbS9ub21tdS5jCmluZGV4IDQ2YWEyZmY4MTIzYS4uZmExNTYwYzIxOGQ1IDEw MDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTE5NjcsMTUgKzE5Njcs MTQgQEAgc3RhdGljIGludCBfX2FjY2Vzc19yZW1vdGVfdm0oc3RydWN0IHRhc2tfc3RydWN0ICp0 c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogICogQGFkZHI6CXN0YXJ0IGFkZHJlc3MgdG8gYWNj ZXNzCiAgKiBAYnVmOglzb3VyY2Ugb3IgZGVzdGluYXRpb24gYnVmZmVyCiAgKiBAbGVuOgludW1i ZXIgb2YgYnl0ZXMgdG8gdHJhbnNmZXIKLSAqIEB3cml0ZToJd2hldGhlciB0aGUgYWNjZXNzIGlz IGEgd3JpdGUKKyAqIEBndXBfZmxhZ3M6CWZsYWdzIG1vZGlmeWluZyBsb29rdXAgYmVoYXZpb3Vy CiAgKgogICogVGhlIGNhbGxlciBtdXN0IGhvbGQgYSByZWZlcmVuY2Ugb24gQG1tLgogICovCiBp bnQgYWNjZXNzX3JlbW90ZV92bShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBh ZGRyLAotCQl2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSkKKwkJdm9pZCAqYnVmLCBpbnQg bGVuLCB1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzKQogewotCXJldHVybiBfX2FjY2Vzc19yZW1vdGVf dm0oTlVMTCwgbW0sIGFkZHIsIGJ1ZiwgbGVuLAotCQkJd3JpdGUgPyBGT0xMX1dSSVRFIDogMCk7 CisJcmV0dXJuIF9fYWNjZXNzX3JlbW90ZV92bShOVUxMLCBtbSwgYWRkciwgYnVmLCBsZW4sIGd1 cF9mbGFncyk7CiB9CiAKIC8qCgpGcm9tIDMzMzEwMmNmOGQzNDcxN2QwODIzMjlhMzc0NTlkMDc3 MDZhOGEyZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IExpbnVzIFRvcnZhbGRzIDx0 b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KRGF0ZTogTW9uLCAyNCBPY3QgMjAxNiAxOTow MDo0NCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTBdIHByb2M6IGRvbid0IHVzZSBGT0xMX0ZP UkNFIGZvciByZWFkaW5nIGNtZGxpbmUgYW5kCiBlbnZpcm9ubWVudAoKY29tbWl0IDI3MmRkYzhi MzczNTRjM2ZlMTExYWIyNmQyNWU3OTI2MjkxNDhlZWUgdXBzdHJlYW0uCgpOb3cgdGhhdCBMb3Jl bnpvIGNsZWFuZWQgdGhpbmdzIHVwIGFuZCBtYWRlIHRoZSBGT0xMX0ZPUkNFIHVzZXJzCmV4cGxp Y2l0LCBpdCBiZWNvbWVzIG9idmlvdXMgaG93IHNvbWUgb2YgdGhlbSBkb24ndCByZWFsbHkgbmVl ZApGT0xMX0ZPUkNFIGF0IGFsbC4KClNvIHJlbW92ZSBGT0xMX0ZPUkNFIGZyb20gdGhlIHByb2Mg Y29kZSB0aGF0IHJlYWRzIHRoZSBjb21tYW5kIGxpbmUgYW5kCmFyZ3VtZW50cyBmcm9tIHVzZXIg c3BhY2UuCgpUaGUgbWVtX3J3KCkgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyB3YW50IEZPTExfRk9S Q0UsIGJlY2F1c2UgZ2RkIChhbmQKcG9zc2libHkgbWFueSBvdGhlciBkZWJ1Z2dlcnMpIHVzZSBp dCBhcyBhIG11Y2ggbW9yZSBjb252ZW5pZW50IHZlcnNpb24Kb2YgUFRSQUNFX1BFRUtEQVRBLCBi dXQgd2Ugc2hvdWxkIGNvbnNpZGVyIG1ha2luZyB0aGUgRk9MTF9GT1JDRSBwYXJ0CmNvbmRpdGlv bmFsIG9uIGFjdHVhbGx5IGJlaW5nIGEgcHRyYWNlci4gIFRoaXMgZG9lcyBub3QgYWN0dWFsbHkg ZG8KdGhhdCwganVzdCBtb3ZlcyBhZGRzIGEgY29tbWVudCB0byB0aGF0IGVmZmVjdCBhbmQgbW92 ZXMgdGhlIGd1cF9mbGFncwpzZXR0aW5ncyBuZXh0IHRvIGVhY2ggb3RoZXIuCgpTaWduZWQtb2Zm LWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25l ZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgot LS0KIGZzL3Byb2MvYmFzZS5jIHwgMTggKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9wcm9j L2Jhc2UuYyBiL2ZzL3Byb2MvYmFzZS5jCmluZGV4IDQ0NWM0MmIyZWM2MS4uNWI4ZDg0MGNmMmI0 IDEwMDY0NAotLS0gYS9mcy9wcm9jL2Jhc2UuYworKysgYi9mcy9wcm9jL2Jhc2UuYwpAQCAtMjU0 LDcgKzI1NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHByb2NfcGlkX2NtZGxpbmVfcmVhZChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkgKiBJbmhlcmVudGx5IHJhY3kgLS0gY29t bWFuZCBsaW5lIHNoYXJlcyBhZGRyZXNzIHNwYWNlCiAJICogd2l0aCBjb2RlIGFuZCBkYXRhLgog CSAqLwotCXJ2ID0gYWNjZXNzX3JlbW90ZV92bShtbSwgYXJnX2VuZCAtIDEsICZjLCAxLCBGT0xM X0ZPUkNFKTsKKwlydiA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIGFyZ19lbmQgLSAxLCAmYywgMSwg MCk7CiAJaWYgKHJ2IDw9IDApCiAJCWdvdG8gb3V0X2ZyZWVfcGFnZTsKIApAQCAtMjcyLDggKzI3 Miw3IEBAIHN0YXRpYyBzc2l6ZV90IHByb2NfcGlkX2NtZGxpbmVfcmVhZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCWludCBucl9yZWFkOwogCiAJCQlfY291bnQgPSBt aW4zKGNvdW50LCBsZW4sIFBBR0VfU0laRSk7Ci0JCQlucl9yZWFkID0gYWNjZXNzX3JlbW90ZV92 bShtbSwgcCwgcGFnZSwgX2NvdW50LAotCQkJCQlGT0xMX0ZPUkNFKTsKKwkJCW5yX3JlYWQgPSBh Y2Nlc3NfcmVtb3RlX3ZtKG1tLCBwLCBwYWdlLCBfY291bnQsIDApOwogCQkJaWYgKG5yX3JlYWQg PCAwKQogCQkJCXJ2ID0gbnJfcmVhZDsKIAkJCWlmIChucl9yZWFkIDw9IDApCkBAIC0zMDgsOCAr MzA3LDcgQEAgc3RhdGljIHNzaXplX3QgcHJvY19waWRfY21kbGluZV9yZWFkKHN0cnVjdCBmaWxl ICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogCQkJYm9vbCBmaW5hbDsKIAogCQkJX2NvdW50ID0g bWluMyhjb3VudCwgbGVuLCBQQUdFX1NJWkUpOwotCQkJbnJfcmVhZCA9IGFjY2Vzc19yZW1vdGVf dm0obW0sIHAsIHBhZ2UsIF9jb3VudCwKLQkJCQkJRk9MTF9GT1JDRSk7CisJCQlucl9yZWFkID0g YWNjZXNzX3JlbW90ZV92bShtbSwgcCwgcGFnZSwgX2NvdW50LCAwKTsKIAkJCWlmIChucl9yZWFk IDwgMCkKIAkJCQlydiA9IG5yX3JlYWQ7CiAJCQlpZiAobnJfcmVhZCA8PSAwKQpAQCAtMzU4LDgg KzM1Niw3IEBAIHNraXBfYXJndjoKIAkJCWJvb2wgZmluYWw7CiAKIAkJCV9jb3VudCA9IG1pbjMo Y291bnQsIGxlbiwgUEFHRV9TSVpFKTsKLQkJCW5yX3JlYWQgPSBhY2Nlc3NfcmVtb3RlX3ZtKG1t LCBwLCBwYWdlLCBfY291bnQsCi0JCQkJCUZPTExfRk9SQ0UpOworCQkJbnJfcmVhZCA9IGFjY2Vz c19yZW1vdGVfdm0obW0sIHAsIHBhZ2UsIF9jb3VudCwgMCk7CiAJCQlpZiAobnJfcmVhZCA8IDAp CiAJCQkJcnYgPSBucl9yZWFkOwogCQkJaWYgKG5yX3JlYWQgPD0gMCkKQEAgLTg3MSw3ICs4Njgs NyBAQCBzdGF0aWMgc3NpemVfdCBtZW1fcncoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2Vy ICpidWYsCiAJdW5zaWduZWQgbG9uZyBhZGRyID0gKnBwb3M7CiAJc3NpemVfdCBjb3BpZWQ7CiAJ Y2hhciAqcGFnZTsKLQl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBGT0xMX0ZPUkNFOworCXVuc2lnbmVk IGludCBmbGFnczsKIAogCWlmICghbW0pCiAJCXJldHVybiAwOwpAQCAtODg0LDYgKzg4MSw4IEBA IHN0YXRpYyBzc2l6ZV90IG1lbV9ydyhzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1 ZiwKIAlpZiAoIWF0b21pY19pbmNfbm90X3plcm8oJm1tLT5tbV91c2VycykpCiAJCWdvdG8gZnJl ZTsKIAorCS8qIE1heWJlIHdlIHNob3VsZCBsaW1pdCBGT0xMX0ZPUkNFIHRvIGFjdHVhbCBwdHJh Y2UgdXNlcnM/ICovCisJZmxhZ3MgPSBGT0xMX0ZPUkNFOwogCWlmICh3cml0ZSkKIAkJZmxhZ3Mg fD0gRk9MTF9XUklURTsKIApAQCAtMTAwNyw4ICsxMDA2LDcgQEAgc3RhdGljIHNzaXplX3QgZW52 aXJvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogCQltYXhfbGVu ID0gbWluX3Qoc2l6ZV90LCBQQUdFX1NJWkUsIGNvdW50KTsKIAkJdGhpc19sZW4gPSBtaW4obWF4 X2xlbiwgdGhpc19sZW4pOwogCi0JCXJldHZhbCA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIChlbnZf c3RhcnQgKyBzcmMpLAotCQkJcGFnZSwgdGhpc19sZW4sIEZPTExfRk9SQ0UpOworCQlyZXR2YWwg PSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCAoZW52X3N0YXJ0ICsgc3JjKSwgcGFnZSwgdGhpc19sZW4s IDApOwogCiAJCWlmIChyZXR2YWwgPD0gMCkgewogCQkJcmV0ID0gcmV0dmFsOwoKRnJvbSBjZDZl YzA0OGNhMTQ4NWEzYjkzYjRjOTdmMDYzYmI2MmQ5NTQwNWQwIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBXaWxseSBUYXJyZWF1IDx3QDF3dC5ldT4KRGF0ZTogRnJpLCAxMSBNYXkgMjAx OCAwODoxMTo0NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMTBdIHByb2M6IGRvIG5vdCBhY2Nl c3MgY21kbGluZSBub3IgZW52aXJvbiBmcm9tCiBmaWxlLWJhY2tlZCBhcmVhcwoKY29tbWl0IDdm N2NjYzJjY2MyZTcwYzYwNTQ2ODVmNWUzNTIyZWZhODE1NTY4MzAgdXBzdHJlYW0uCgpwcm9jX3Bp ZF9jbWRsaW5lX3JlYWQoKSBhbmQgZW52aXJvbl9yZWFkKCkgZGlyZWN0bHkgYWNjZXNzIHRoZSB0 YXJnZXQKcHJvY2VzcycgVk0gdG8gcmV0cmlldmUgdGhlIGNvbW1hbmQgbGluZSBhbmQgZW52aXJv bm1lbnQuIElmIHRoaXMKcHJvY2VzcyByZW1hcHMgdGhlc2UgYXJlYXMgb250byBhIGZpbGUgdmlh IG1tYXAoKSwgdGhlIHJlcXVlc3RpbmcKcHJvY2VzcyBtYXkgZXhwZXJpZW5jZSB2YXJpb3VzIGlz c3VlcyBzdWNoIGFzIGV4dHJhIGRlbGF5cyBpZiB0aGUKdW5kZXJseWluZyBkZXZpY2UgaXMgc2xv dyB0byByZXNwb25kLgoKTGV0J3Mgc2ltcGx5IHJlZnVzZSB0byBhY2Nlc3MgZmlsZS1iYWNrZWQg YXJlYXMgaW4gdGhlc2UgZnVuY3Rpb25zLgpGb3IgdGhpcyB3ZSBhZGQgYSBuZXcgRk9MTF9BTk9O IGd1cCBmbGFnIHRoYXQgaXMgcGFzc2VkIHRvIGFsbCBjYWxscwp0byBhY2Nlc3NfcmVtb3RlX3Zt KCkuIFRoZSBjb2RlIGFscmVhZHkgdGFrZXMgY2FyZSBvZiBzdWNoIGZhaWx1cmVzCihpbmNsdWRp bmcgdW5tYXBwZWQgYXJlYXMpLiBBY2Nlc3NlcyB2aWEgL3Byb2MvcGlkL21lbSB3ZXJlIG5vdApj aGFuZ2VkIHRob3VnaC4KClRoaXMgd2FzIGFzc2lnbmVkIENWRS0yMDE4LTExMjAuCgpOb3RlIGZv ciBzdGFibGUgYmFja3BvcnRzOiB0aGUgcGF0Y2ggbWF5IGFwcGx5IHRvIGtlcm5lbHMgcHJpb3Ig dG8gNC4xMQpidXQgc2lsZW50bHkgbWlzcyBvbmUgbG9jYXRpb247IGl0IG11c3QgYmUgY2hlY2tl ZCB0aGF0IG5vIGNhbGwgdG8KYWNjZXNzX3JlbW90ZV92bSgpIGtlZXBzIHplcm8gYXMgdGhlIGxh c3QgYXJndW1lbnQuCgpSZXBvcnRlZC1ieTogUXVhbHlzIFNlY3VyaXR5IEFkdmlzb3J5IDxxc2FA cXVhbHlzLmNvbT4KQ2M6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9u Lm9yZz4KQ2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0BhbWFjYXBpdGFsLm5ldD4KQ2M6IE9sZWcg TmVzdGVyb3YgPG9sZWdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogV2lsbHkgVGFycmVhdSA8 d0Axd3QuZXU+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1m b3VuZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6CiAtIFVwZGF0ZSB0aGUgZXh0 cmEgY2FsbCB0byBhY2Nlc3NfcmVtb3RlX3ZtKCkgZnJvbSBwcm9jX3BpZF9jbWRsaW5lX3JlYWQo KQogLSBBZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1 dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvcHJvYy9iYXNlLmMgICAgIHwgMTAgKysr KystLS0tLQogaW5jbHVkZS9saW51eC9tbS5oIHwgIDEgKwogbW0vZ3VwLmMgICAgICAgICAgIHwg IDMgKysrCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9mcy9wcm9jL2Jhc2UuYyBiL2ZzL3Byb2MvYmFzZS5jCmluZGV4IDViOGQ4 NDBjZjJiNC4uYmQ4YzI2YTQwOWE3IDEwMDY0NAotLS0gYS9mcy9wcm9jL2Jhc2UuYworKysgYi9m cy9wcm9jL2Jhc2UuYwpAQCAtMjU0LDcgKzI1NCw3IEBAIHN0YXRpYyBzc2l6ZV90IHByb2NfcGlk X2NtZGxpbmVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkgKiBJ bmhlcmVudGx5IHJhY3kgLS0gY29tbWFuZCBsaW5lIHNoYXJlcyBhZGRyZXNzIHNwYWNlCiAJICog d2l0aCBjb2RlIGFuZCBkYXRhLgogCSAqLwotCXJ2ID0gYWNjZXNzX3JlbW90ZV92bShtbSwgYXJn X2VuZCAtIDEsICZjLCAxLCAwKTsKKwlydiA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIGFyZ19lbmQg LSAxLCAmYywgMSwgRk9MTF9BTk9OKTsKIAlpZiAocnYgPD0gMCkKIAkJZ290byBvdXRfZnJlZV9w YWdlOwogCkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIHNzaXplX3QgcHJvY19waWRfY21kbGlu ZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLAogCQkJaW50IG5yX3Jl YWQ7CiAKIAkJCV9jb3VudCA9IG1pbjMoY291bnQsIGxlbiwgUEFHRV9TSVpFKTsKLQkJCW5yX3Jl YWQgPSBhY2Nlc3NfcmVtb3RlX3ZtKG1tLCBwLCBwYWdlLCBfY291bnQsIDApOworCQkJbnJfcmVh ZCA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIHAsIHBhZ2UsIF9jb3VudCwgRk9MTF9BTk9OKTsKIAkJ CWlmIChucl9yZWFkIDwgMCkKIAkJCQlydiA9IG5yX3JlYWQ7CiAJCQlpZiAobnJfcmVhZCA8PSAw KQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBzc2l6ZV90IHByb2NfcGlkX2NtZGxpbmVfcmVh ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCWJvb2wgZmluYWw7CiAK IAkJCV9jb3VudCA9IG1pbjMoY291bnQsIGxlbiwgUEFHRV9TSVpFKTsKLQkJCW5yX3JlYWQgPSBh Y2Nlc3NfcmVtb3RlX3ZtKG1tLCBwLCBwYWdlLCBfY291bnQsIDApOworCQkJbnJfcmVhZCA9IGFj Y2Vzc19yZW1vdGVfdm0obW0sIHAsIHBhZ2UsIF9jb3VudCwgRk9MTF9BTk9OKTsKIAkJCWlmIChu cl9yZWFkIDwgMCkKIAkJCQlydiA9IG5yX3JlYWQ7CiAJCQlpZiAobnJfcmVhZCA8PSAwKQpAQCAt MzU2LDcgKzM1Niw3IEBAIHNraXBfYXJndjoKIAkJCWJvb2wgZmluYWw7CiAKIAkJCV9jb3VudCA9 IG1pbjMoY291bnQsIGxlbiwgUEFHRV9TSVpFKTsKLQkJCW5yX3JlYWQgPSBhY2Nlc3NfcmVtb3Rl X3ZtKG1tLCBwLCBwYWdlLCBfY291bnQsIDApOworCQkJbnJfcmVhZCA9IGFjY2Vzc19yZW1vdGVf dm0obW0sIHAsIHBhZ2UsIF9jb3VudCwgRk9MTF9BTk9OKTsKIAkJCWlmIChucl9yZWFkIDwgMCkK IAkJCQlydiA9IG5yX3JlYWQ7CiAJCQlpZiAobnJfcmVhZCA8PSAwKQpAQCAtMTAwNiw3ICsxMDA2 LDcgQEAgc3RhdGljIHNzaXplX3QgZW52aXJvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFy IF9fdXNlciAqYnVmLAogCQltYXhfbGVuID0gbWluX3Qoc2l6ZV90LCBQQUdFX1NJWkUsIGNvdW50 KTsKIAkJdGhpc19sZW4gPSBtaW4obWF4X2xlbiwgdGhpc19sZW4pOwogCi0JCXJldHZhbCA9IGFj Y2Vzc19yZW1vdGVfdm0obW0sIChlbnZfc3RhcnQgKyBzcmMpLCBwYWdlLCB0aGlzX2xlbiwgMCk7 CisJCXJldHZhbCA9IGFjY2Vzc19yZW1vdGVfdm0obW0sIChlbnZfc3RhcnQgKyBzcmMpLCBwYWdl LCB0aGlzX2xlbiwgRk9MTF9BTk9OKTsKIAogCQlpZiAocmV0dmFsIDw9IDApIHsKIAkJCXJldCA9 IHJldHZhbDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1ZGUvbGludXgv bW0uaAppbmRleCA5YTA3MTZlOTAwYjUuLjI1MWFkZjRkOGE3MSAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9tbS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW0uaApAQCAtMjEyMCw2ICsyMTIwLDcg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZSAqZm9sbG93X3BhZ2Uoc3RydWN0IHZtX2FyZWFf c3RydWN0ICp2bWEsCiAjZGVmaW5lIEZPTExfVFJJRUQJMHg4MDAJLyogYSByZXRyeSwgcHJldmlv dXMgcGFzcyBzdGFydGVkIGFuIElPICovCiAjZGVmaW5lIEZPTExfTUxPQ0sJMHgxMDAwCS8qIGxv Y2sgcHJlc2VudCBwYWdlcyAqLwogI2RlZmluZSBGT0xMX0NPVwkweDQwMDAJLyogaW50ZXJuYWwg R1VQIGZsYWcgKi8KKyNkZWZpbmUgRk9MTF9BTk9OCTB4ODAwMAkvKiBkb24ndCBkbyBmaWxlIG1h cHBpbmdzICovCiAKIHR5cGVkZWYgaW50ICgqcHRlX2ZuX3QpKHB0ZV90ICpwdGUsIHBndGFibGVf dCB0b2tlbiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkJdm9pZCAqZGF0YSk7CmRpZmYgLS1naXQg YS9tbS9ndXAuYyBiL21tL2d1cC5jCmluZGV4IDIzNzBlMjQxN2Q2MS4uMmNkM2IzMWUzNjY2IDEw MDY0NAotLS0gYS9tbS9ndXAuYworKysgYi9tbS9ndXAuYwpAQCAtMzY4LDYgKzM2OCw5IEBAIHN0 YXRpYyBpbnQgY2hlY2tfdm1hX2ZsYWdzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNp Z25lZCBsb25nIGd1cF9mbGFncykKIAlpZiAodm1fZmxhZ3MgJiAoVk1fSU8gfCBWTV9QRk5NQVAp KQogCQlyZXR1cm4gLUVGQVVMVDsKIAorCWlmIChndXBfZmxhZ3MgJiBGT0xMX0FOT04gJiYgIXZt YV9pc19hbm9ueW1vdXModm1hKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKIAlpZiAoZ3VwX2ZsYWdz ICYgRk9MTF9XUklURSkgewogCQlpZiAoISh2bV9mbGFncyAmIFZNX1dSSVRFKSkgewogCQkJaWYg KCEoZ3VwX2ZsYWdzICYgRk9MTF9GT1JDRSkpCi== --=-vW55sKj3yhpxhgppJye8--