From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 2/8] dm_op: convert HVMOP_*ioreq_server* Date: Mon, 23 Jan 2017 13:59:43 +0000 Message-ID: <1485179989-1763-3-git-send-email-paul.durrant@citrix.com> References: <1485179989-1763-1-git-send-email-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVfA4-0006ue-73 for xen-devel@lists.xenproject.org; Mon, 23 Jan 2017 13:59:56 +0000 In-Reply-To: <1485179989-1763-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Paul Durrant , Ian Jackson List-Id: xen-devel@lists.xenproject.org VGhlIGRlZmluaXRpb25zIG9mIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV8qIGhhdmUgdG8gcGVyc2lz dCBhcyB0aGV5IGFyZQphbHJlYWR5IGluIHVzZSBieSBjYWxsZXJzIG9mIHRoZSBsaWJ4YyBpbnRl cmZhY2UuCgpTdWdnZXN0ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KU2ln bmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KUmV2aWV3 ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUg PHdlaS5saXUyQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFA dHljaG8ubnNhLmdvdj4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+Ci0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNv bT4KCnY2OgotIE1vZGlmeSBjb25zdF9vcCBhcyBhcHByb3ByaWF0ZS4KCnY0OgotICNkZWZpbmUg dWludDY0X2FsaWduZWRfdCBpZiBuZWNlc3NhcnkgdG8gaGFuZGxlIGNvbXBhdCBjb2RlIGdlbmVy YXRpb24uCgp2MzoKLSBGaXggcGFkIGNoZWNrLgoKdjI6Ci0gQWRkcmVzc2VkIHNldmVyYWwgY29t bWVudHMgZnJvbSBKYW4uCi0tLQogdG9vbHMvbGlieGMveGNfZG9tYWluLmMgICAgICAgICAgfCAy MTIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2 bS9kbS5jICAgICAgICAgICAgfCAgOTMgKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni9o dm0vaHZtLmMgICAgICAgICAgIHwgMjE5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICAgICAgICAgfCAgMzYgKysrLS0tLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmggfCAgIDMgKy0KIHhlbi9pbmNsdWRlL3B1 YmxpYy9odm0vZG1fb3AuaCAgIHwgMTU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhl bi9pbmNsdWRlL3B1YmxpYy9odm0vaHZtX29wLmggIHwgMTMyICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiB4ZW4vaW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICB8ICAgNiAtLQogeGVuL2luY2x1 ZGUveHNtL3hzbS5oICAgICAgICAgICAgfCAgIDYgLS0KIHhlbi94c20vZHVtbXkuYyAgICAgICAg ICAgICAgICAgIHwgICAxIC0KIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgIHwgICA2 IC0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAzNjUgaW5zZXJ0aW9ucygrKSwgNTA3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2RvbWFpbi5jIGIvdG9vbHMvbGlieGMveGNf ZG9tYWluLmMKaW5kZXggMjk2Yjg1Mi4uNDE5YTg5NyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMv eGNfZG9tYWluLmMKKysrIGIvdG9vbHMvbGlieGMveGNfZG9tYWluLmMKQEAgLTE0MTcsMjQgKzE0 MTcsMjQgQEAgaW50IHhjX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGNo LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYW5kbGVfYnVmaW9yZXEsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9zZXJ2aWRfdCAqaWQpCiB7Ci0gICAgREVD TEFSRV9IWVBFUkNBTExfQlVGRkVSKHhlbl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90LCBhcmcp OworICAgIHN0cnVjdCB4ZW5fZG1fb3Agb3A7CisgICAgc3RydWN0IHhlbl9kbV9vcF9jcmVhdGVf aW9yZXFfc2VydmVyICpkYXRhOwogICAgIGludCByYzsKIAotICAgIGFyZyA9IHhjX2h5cGVyY2Fs bF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0g TlVMTCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3Ap KTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAgICBhcmctPmhhbmRsZV9idWZpb3JlcSA9 IGhhbmRsZV9idWZpb3JlcTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2 ZXI7CisgICAgZGF0YSA9ICZvcC51LmNyZWF0ZV9pb3JlcV9zZXJ2ZXI7CiAKLSAgICByYyA9IHhl bmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQRVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAg ICBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyLAotICAgICAgICAgICAgICAgICAgSFlQRVJDQUxM X0JVRkZFUl9BU19BUkcoYXJnKSk7CisgICAgZGF0YS0+aGFuZGxlX2J1ZmlvcmVxID0gaGFuZGxl X2J1ZmlvcmVxOworCisgICAgcmMgPSBkb19kbV9vcCh4Y2gsIGRvbWlkLCAxLCAmb3AsIHNpemVv ZihvcCkpOworICAgIGlmICggcmMgKQorICAgICAgICByZXR1cm4gcmM7CiAKLSAgICAqaWQgPSBh cmctPmlkOworICAgICppZCA9IGRhdGEtPmlkOwogCi0gICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9m cmVlKHhjaCwgYXJnKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIDA7CiB9CiAKIGludCB4 Y19odm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKHhjX2ludGVyZmFjZSAqeGNoLApAQCAtMTQ0NCw4 NCArMTQ0NCw3MSBAQCBpbnQgeGNfaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyh4Y19pbnRlcmZh Y2UgKnhjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhlbl9wZm5fdCAqYnVm aW9yZXFfcGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0Y2huX3BvcnRf dCAqYnVmaW9yZXFfcG9ydCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2 bV9nZXRfaW9yZXFfc2VydmVyX2luZm9fdCwgYXJnKTsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9w OworICAgIHN0cnVjdCB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvICpkYXRhOwogICAg IGludCByYzsKIAotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcs IHNpemVvZigqYXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgICAgIHJldHVybiAt MTsKKyAgICBtZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIGFyZy0+ZG9taWQgPSBk b21pZDsKLSAgICBhcmctPmlkID0gaWQ7CisgICAgb3Aub3AgPSBYRU5fRE1PUF9nZXRfaW9yZXFf c2VydmVyX2luZm87CisgICAgZGF0YSA9ICZvcC51LmdldF9pb3JlcV9zZXJ2ZXJfaW5mbzsKIAot ICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAg ICAgICAgICAgICAgIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbywKLSAgICAgICAgICAgICAg ICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOwotICAgIGlmICggcmMgIT0gMCApCi0g ICAgICAgIGdvdG8gZG9uZTsKKyAgICBkYXRhLT5pZCA9IGlkOworCisgICAgcmMgPSBkb19kbV9v cCh4Y2gsIGRvbWlkLCAxLCAmb3AsIHNpemVvZihvcCkpOworICAgIGlmICggcmMgKQorICAgICAg ICByZXR1cm4gcmM7CiAKICAgICBpZiAoIGlvcmVxX3BmbiApCi0gICAgICAgICppb3JlcV9wZm4g PSBhcmctPmlvcmVxX3BmbjsKKyAgICAgICAgKmlvcmVxX3BmbiA9IGRhdGEtPmlvcmVxX3BmbjsK IAogICAgIGlmICggYnVmaW9yZXFfcGZuICkKLSAgICAgICAgKmJ1ZmlvcmVxX3BmbiA9IGFyZy0+ YnVmaW9yZXFfcGZuOworICAgICAgICAqYnVmaW9yZXFfcGZuID0gZGF0YS0+YnVmaW9yZXFfcGZu OwogCiAgICAgaWYgKCBidWZpb3JlcV9wb3J0ICkKLSAgICAgICAgKmJ1ZmlvcmVxX3BvcnQgPSBh cmctPmJ1ZmlvcmVxX3BvcnQ7CisgICAgICAgICpidWZpb3JlcV9wb3J0ID0gZGF0YS0+YnVmaW9y ZXFfcG9ydDsKIAotZG9uZToKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcp OwotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gMDsKIH0KIAogaW50IHhjX2h2bV9tYXBfaW9f cmFuZ2VfdG9faW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2VydmlkX3QgaWQsIGlu dCBpc19tbWlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2 NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQpCiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVS KHhlbl9odm1faW9fcmFuZ2VfdCwgYXJnKTsKLSAgICBpbnQgcmM7CisgICAgc3RydWN0IHhlbl9k bV9vcCBvcDsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSAqZGF0YTsK IAotICAgIGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigq YXJnKSk7Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBt ZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAg ICBhcmctPmlkID0gaWQ7Ci0gICAgYXJnLT50eXBlID0gaXNfbW1pbyA/IEhWTU9QX0lPX1JBTkdF X01FTU9SWSA6IEhWTU9QX0lPX1JBTkdFX1BPUlQ7Ci0gICAgYXJnLT5zdGFydCA9IHN0YXJ0Owot ICAgIGFyZy0+ZW5kID0gZW5kOworICAgIG9wLm9wID0gWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3Rv X2lvcmVxX3NlcnZlcjsKKyAgICBkYXRhID0gJm9wLnUubWFwX2lvX3JhbmdlX3RvX2lvcmVxX3Nl cnZlcjsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9v cCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIs Ci0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBk YXRhLT5pZCA9IGlkOworICAgIGRhdGEtPnR5cGUgPSBpc19tbWlvID8gWEVOX0RNT1BfSU9fUkFO R0VfTUVNT1JZIDogWEVOX0RNT1BfSU9fUkFOR0VfUE9SVDsKKyAgICBkYXRhLT5zdGFydCA9IHN0 YXJ0OworICAgIGRhdGEtPmVuZCA9IGVuZDsKIAotICAgIHhjX2h5cGVyY2FsbF9idWZmZXJfZnJl ZSh4Y2gsIGFyZyk7Ci0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBkb19kbV9vcCh4Y2gsIGRv bWlkLCAxLCAmb3AsIHNpemVvZihvcCkpOwogfQogCiBpbnQgeGNfaHZtX3VubWFwX2lvX3Jhbmdl X2Zyb21faW9yZXFfc2VydmVyKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb3NlcnZpZF90IGlkLCBp bnQgaXNfbW1pbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGVuZCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9C VUZGRVIoeGVuX2h2bV9pb19yYW5nZV90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBzdHJ1Y3Qg eGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlICpk YXRhOwogCi0gICAgYXJnID0geGNfaHlwZXJjYWxsX2J1ZmZlcl9hbGxvYyh4Y2gsIGFyZywgc2l6 ZW9mKCphcmcpKTsKLSAgICBpZiAoIGFyZyA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIC0xOwor ICAgIG1lbXNldCgmb3AsIDAsIHNpemVvZihvcCkpOwogCi0gICAgYXJnLT5kb21pZCA9IGRvbWlk OwotICAgIGFyZy0+aWQgPSBpZDsKLSAgICBhcmctPnR5cGUgPSBpc19tbWlvID8gSFZNT1BfSU9f UkFOR0VfTUVNT1JZIDogSFZNT1BfSU9fUkFOR0VfUE9SVDsKLSAgICBhcmctPnN0YXJ0ID0gc3Rh cnQ7Ci0gICAgYXJnLT5lbmQgPSBlbmQ7CisgICAgb3Aub3AgPSBYRU5fRE1PUF91bm1hcF9pb19y YW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsKKyAgICBkYXRhID0gJm9wLnUudW5tYXBfaW9fcmFuZ2Vf ZnJvbV9pb3JlcV9zZXJ2ZXI7CiAKLSAgICByYyA9IHhlbmNhbGwyKHhjaC0+eGNhbGwsIF9fSFlQ RVJWSVNPUl9odm1fb3AsCi0gICAgICAgICAgICAgICAgICBIVk1PUF91bm1hcF9pb19yYW5nZV9m cm9tX2lvcmVxX3NlcnZlciwKLSAgICAgICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNf QVJHKGFyZykpOworICAgIGRhdGEtPmlkID0gaWQ7CisgICAgZGF0YS0+dHlwZSA9IGlzX21taW8g PyBYRU5fRE1PUF9JT19SQU5HRV9NRU1PUlkgOiBYRU5fRE1PUF9JT19SQU5HRV9QT1JUOworICAg IGRhdGEtPnN0YXJ0ID0gc3RhcnQ7CisgICAgZGF0YS0+ZW5kID0gZW5kOwogCi0gICAgeGNfaHlw ZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJu IGRvX2RtX29wKHhjaCwgZG9taWQsIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAKIGludCB4Y19o dm1fbWFwX3BjaWRldl90b19pb3JlcV9zZXJ2ZXIoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3Qg ZG9taWQsCkBAIC0xNTI5LDM3ICsxNTE2LDMyIEBAIGludCB4Y19odm1fbWFwX3BjaWRldl90b19p b3JlcV9zZXJ2ZXIoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmljZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBmdW5jdGlvbikK IHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9pb19yYW5nZV90LCBhcmcp OwotICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5f ZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlICpkYXRhOwogCiAgICAgaWYgKGRldmljZSA+IDB4MWYg fHwgZnVuY3Rpb24gPiAweDcpIHsKICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAgICAgICAgIHJl dHVybiAtMTsKICAgICB9CiAKLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhj aCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgICAgICBy ZXR1cm4gLTE7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRv bWlkID0gZG9taWQ7Ci0gICAgYXJnLT5pZCA9IGlkOwotICAgIGFyZy0+dHlwZSA9IEhWTU9QX0lP X1JBTkdFX1BDSTsKKyAgICBvcC5vcCA9IFhFTl9ETU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9z ZXJ2ZXI7CisgICAgZGF0YSA9ICZvcC51Lm1hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI7CisK KyAgICBkYXRhLT5pZCA9IGlkOworICAgIGRhdGEtPnR5cGUgPSBYRU5fRE1PUF9JT19SQU5HRV9Q Q0k7CiAKICAgICAvKgogICAgICAqIFRoZSB1bmRlcmx5aW5nIGh5cGVyY2FsbCB3aWxsIGRlYWwg d2l0aCByYW5nZXMgb2YgUENJIFNCREYKICAgICAgKiBidXQsIGZvciBzaW1wbGljaXR5LCB0aGUg QVBJIG9ubHkgdXNlcyBzaW5nbGV0b25zLgogICAgICAqLwotICAgIGFyZy0+c3RhcnQgPSBhcmct PmVuZCA9IEhWTU9QX1BDSV9TQkRGKCh1aW50NjRfdClzZWdtZW50LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdClidXMsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KWRldmljZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpZnVuY3Rpb24pOwot Ci0gICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAg ICAgICAgICAgICAgICAgSFZNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlciwKLSAgICAg ICAgICAgICAgICAgIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGFyZykpOworICAgIGRhdGEtPnN0 YXJ0ID0gZGF0YS0+ZW5kID0gWEVOX0RNT1BfUENJX1NCREYoKHVpbnQ2NF90KXNlZ21lbnQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3Qp YnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVp bnQ2NF90KWRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh1aW50NjRfdClmdW5jdGlvbik7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2Zy ZWUoeGNoLCBhcmcpOwotICAgIHJldHVybiByYzsKKyAgICByZXR1cm4gZG9fZG1fb3AoeGNoLCBk b21pZCwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV91bm1hcF9wY2lkZXZf ZnJvbV9pb3JlcV9zZXJ2ZXIoeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlkX3QgZG9taWQsCkBAIC0x NTY3LDU0ICsxNTQ5LDQ5IEBAIGludCB4Y19odm1fdW5tYXBfcGNpZGV2X2Zyb21faW9yZXFfc2Vy dmVyKHhjX2ludGVyZmFjZSAqeGNoLCBkb21pZF90IGRvbWlkLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2aWNlLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBmdW5jdGlvbikK IHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVuX2h2bV9pb19yYW5nZV90LCBhcmcp OwotICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5f ZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlICpkYXRhOwogCiAgICAgaWYgKGRldmljZSA+IDB4MWYg fHwgZnVuY3Rpb24gPiAweDcpIHsKICAgICAgICAgZXJybm8gPSBFSU5WQUw7CiAgICAgICAgIHJl dHVybiAtMTsKICAgICB9CiAKLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhj aCwgYXJnLCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgICAgICBy ZXR1cm4gLTE7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRv bWlkID0gZG9taWQ7Ci0gICAgYXJnLT5pZCA9IGlkOwotICAgIGFyZy0+dHlwZSA9IEhWTU9QX0lP X1JBTkdFX1BDSTsKLSAgICBhcmctPnN0YXJ0ID0gYXJnLT5lbmQgPSBIVk1PUF9QQ0lfU0JERigo dWludDY0X3Qpc2VnbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAodWludDY0X3QpYnVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICh1aW50NjRfdClkZXZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHVpbnQ2NF90KWZ1bmN0aW9uKTsKLQotICAgIHJjID0geGVuY2FsbDIoeGNo LT54Y2FsbCwgX19IWVBFUlZJU09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3Vu bWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyLAotICAgICAgICAgICAgICAgICAgSFlQRVJD QUxMX0JVRkZFUl9BU19BUkcoYXJnKSk7CisgICAgb3Aub3AgPSBYRU5fRE1PUF91bm1hcF9pb19y YW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsKKyAgICBkYXRhID0gJm9wLnUudW5tYXBfaW9fcmFuZ2Vf ZnJvbV9pb3JlcV9zZXJ2ZXI7CiAKLSAgICB4Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBh cmcpOwotICAgIHJldHVybiByYzsKKyAgICBkYXRhLT5pZCA9IGlkOworICAgIGRhdGEtPnR5cGUg PSBYRU5fRE1PUF9JT19SQU5HRV9QQ0k7CisKKyAgICAvKgorICAgICAqIFRoZSB1bmRlcmx5aW5n IGh5cGVyY2FsbCB3aWxsIGRlYWwgd2l0aCByYW5nZXMgb2YgUENJIFNCREYKKyAgICAgKiBidXQs IGZvciBzaW1wbGljaXR5LCB0aGUgQVBJIG9ubHkgdXNlcyBzaW5nbGV0b25zLgorICAgICAqLwor ICAgIGRhdGEtPnN0YXJ0ID0gZGF0YS0+ZW5kID0gWEVOX0RNT1BfUENJX1NCREYoKHVpbnQ2NF90 KXNlZ21lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAodWludDY0X3QpYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHVpbnQ2NF90KWRldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh1aW50NjRfdClmdW5jdGlvbik7CisKKyAgICByZXR1cm4gZG9f ZG1fb3AoeGNoLCBkb21pZCwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50IHhjX2h2bV9k ZXN0cm95X2lvcmVxX3NlcnZlcih4Y19pbnRlcmZhY2UgKnhjaCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW9zZXJ2aWRfdCBpZCkKIHsKLSAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIoeGVu X2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcl90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBzdHJ1 Y3QgeGVuX2RtX29wIG9wOworICAgIHN0cnVjdCB4ZW5fZG1fb3BfZGVzdHJveV9pb3JlcV9zZXJ2 ZXIgKmRhdGE7CiAKLSAgICBhcmcgPSB4Y19oeXBlcmNhbGxfYnVmZmVyX2FsbG9jKHhjaCwgYXJn LCBzaXplb2YoKmFyZykpOwotICAgIGlmICggYXJnID09IE5VTEwgKQotICAgICAgICByZXR1cm4g LTE7CisgICAgbWVtc2V0KCZvcCwgMCwgc2l6ZW9mKG9wKSk7CiAKLSAgICBhcmctPmRvbWlkID0g ZG9taWQ7Ci0gICAgYXJnLT5pZCA9IGlkOworICAgIG9wLm9wID0gWEVOX0RNT1BfZGVzdHJveV9p b3JlcV9zZXJ2ZXI7CisgICAgZGF0YSA9ICZvcC51LmRlc3Ryb3lfaW9yZXFfc2VydmVyOwogCi0g ICAgcmMgPSB4ZW5jYWxsMih4Y2gtPnhjYWxsLCBfX0hZUEVSVklTT1JfaHZtX29wLAotICAgICAg ICAgICAgICAgICAgSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIsCi0gICAgICAgICAgICAgICAg ICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAgICBkYXRhLT5pZCA9IGlkOwogCi0g ICAgeGNfaHlwZXJjYWxsX2J1ZmZlcl9mcmVlKHhjaCwgYXJnKTsKLSAgICByZXR1cm4gcmM7Cisg ICAgcmV0dXJuIGRvX2RtX29wKHhjaCwgZG9taWQsIDEsICZvcCwgc2l6ZW9mKG9wKSk7CiB9CiAK IGludCB4Y19odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSh4Y19pbnRlcmZhY2UgKnhjaCwKQEAg LTE2MjIsMjMgKzE1OTksMTggQEAgaW50IHhjX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKHhj X2ludGVyZmFjZSAqeGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2Vy dmlkX3QgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuYWJsZWQp CiB7Ci0gICAgREVDTEFSRV9IWVBFUkNBTExfQlVGRkVSKHhlbl9odm1fc2V0X2lvcmVxX3NlcnZl cl9zdGF0ZV90LCBhcmcpOwotICAgIGludCByYzsKKyAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOwor ICAgIHN0cnVjdCB4ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSAqZGF0YTsKIAotICAg IGFyZyA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBhcmcsIHNpemVvZigqYXJnKSk7 Ci0gICAgaWYgKCBhcmcgPT0gTlVMTCApCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBtZW1zZXQo Jm9wLCAwLCBzaXplb2Yob3ApKTsKIAotICAgIGFyZy0+ZG9taWQgPSBkb21pZDsKLSAgICBhcmct PmlkID0gaWQ7Ci0gICAgYXJnLT5lbmFibGVkID0gISFlbmFibGVkOworICAgIG9wLm9wID0gWEVO X0RNT1Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTsKKyAgICBkYXRhID0gJm9wLnUuc2V0X2lvcmVx X3NlcnZlcl9zdGF0ZTsKIAotICAgIHJjID0geGVuY2FsbDIoeGNoLT54Y2FsbCwgX19IWVBFUlZJ U09SX2h2bV9vcCwKLSAgICAgICAgICAgICAgICAgIEhWTU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3Rh dGUsCi0gICAgICAgICAgICAgICAgICBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhhcmcpKTsKKyAg ICBkYXRhLT5pZCA9IGlkOworICAgIGRhdGEtPmVuYWJsZWQgPSAhIWVuYWJsZWQ7CiAKLSAgICB4 Y19oeXBlcmNhbGxfYnVmZmVyX2ZyZWUoeGNoLCBhcmcpOwotICAgIHJldHVybiByYzsKKyAgICBy ZXR1cm4gZG9fZG1fb3AoeGNoLCBkb21pZCwgMSwgJm9wLCBzaXplb2Yob3ApKTsKIH0KIAogaW50 IHhjX2RvbWFpbl9zZXRkZWJ1Z2dpbmcoeGNfaW50ZXJmYWNlICp4Y2gsCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggNzM4Zjhk MS4uNzJjYjMzYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9odm0vZG0uYwpAQCAtNjgsOCArNjgsMTAxIEBAIHN0YXRpYyBpbnQgZG1fb3AoZG9t aWRfdCBkb21pZCwKICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgcmMgPSAtRUlOVkFM OworICAgIGlmICggb3AucGFkICkKKyAgICAgICAgZ290byBvdXQ7CisKICAgICBzd2l0Y2ggKCBv cC5vcCApCiAgICAgeworICAgIGNhc2UgWEVOX0RNT1BfY3JlYXRlX2lvcmVxX3NlcnZlcjoKKyAg ICB7CisgICAgICAgIHN0cnVjdCBkb21haW4gKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAg ICAgICAgc3RydWN0IHhlbl9kbV9vcF9jcmVhdGVfaW9yZXFfc2VydmVyICpkYXRhID0KKyAgICAg ICAgICAgICZvcC51LmNyZWF0ZV9pb3JlcV9zZXJ2ZXI7CisKKyAgICAgICAgY29uc3Rfb3AgPSBm YWxzZTsKKworICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkWzBd IHx8IGRhdGEtPnBhZFsxXSB8fCBkYXRhLT5wYWRbMl0gKQorICAgICAgICAgICAgYnJlYWs7CisK KyAgICAgICAgcmMgPSBodm1fY3JlYXRlX2lvcmVxX3NlcnZlcihkLCBjdXJyX2QtPmRvbWFpbl9p ZCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5oYW5kbGVf YnVmaW9yZXEsICZkYXRhLT5pZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNhc2Ug WEVOX0RNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvOgorICAgIHsKKyAgICAgICAgc3RydWN0IHhl bl9kbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8gKmRhdGEgPQorICAgICAgICAgICAgJm9wLnUu Z2V0X2lvcmVxX3NlcnZlcl9pbmZvOworCisgICAgICAgIGNvbnN0X29wID0gZmFsc2U7CisKKyAg ICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAgICAgICAg ICBicmVhazsKKworICAgICAgICByYyA9IGh2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8oZCwgZGF0 YS0+aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YS0+aW9y ZXFfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGEtPmJ1 ZmlvcmVxX3BmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRh LT5idWZpb3JlcV9wb3J0KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY2FzZSBYRU5f RE1PUF9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAgICAgY29uc3Qg c3RydWN0IHhlbl9kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UgKmRhdGEgPQorICAgICAgICAgICAg Jm9wLnUubWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FSU5W QUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgIHJjID0gaHZtX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIoZCwgZGF0YS0+aWQsIGRh dGEtPnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YS0+c3RhcnQsIGRhdGEtPmVuZCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNh c2UgWEVOX0RNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6CisgICAgeworICAg ICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSAqZGF0YSA9Cisg ICAgICAgICAgICAmb3AudS51bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjsKKworICAg ICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgIHJjID0gaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2Vy dmVyKGQsIGRhdGEtPmlkLCBkYXRhLT50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5zdGFydCwgZGF0YS0+ZW5kKTsKKyAgICAgICAg YnJlYWs7CisgICAgfQorCisgICAgY2FzZSBYRU5fRE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRl OgorICAgIHsKKyAgICAgICAgY29uc3Qgc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVy X3N0YXRlICpkYXRhID0KKyAgICAgICAgICAgICZvcC51LnNldF9pb3JlcV9zZXJ2ZXJfc3RhdGU7 CisKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBpZiAoIGRhdGEtPnBhZCApCisgICAg ICAgICAgICBicmVhazsKKworICAgICAgICByYyA9IGh2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRl KGQsIGRhdGEtPmlkLCAhIWRhdGEtPmVuYWJsZWQpOworICAgICAgICBicmVhazsKKyAgICB9CisK KyAgICBjYXNlIFhFTl9ETU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVyOgorICAgIHsKKyAgICAgICAg Y29uc3Qgc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciAqZGF0YSA9CisgICAg ICAgICAgICAmb3AudS5kZXN0cm95X2lvcmVxX3NlcnZlcjsKKworICAgICAgICByYyA9IC1FSU5W QUw7CisgICAgICAgIGlmICggZGF0YS0+cGFkICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgIHJjID0gaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKGQsIGRhdGEtPmlkKTsKKyAgICAgICAg YnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsK ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA5MTZjODY3Li4zYmNhYWI4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTQz NzksMTk1ICs0Mzc5LDYgQEAgc3RhdGljIGludCBodm1vcF9mbHVzaF90bGJfYWxsKHZvaWQpCiAg ICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgaHZtb3BfY3JlYXRlX2lvcmVxX3NlcnZlcigK LSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90 KSB1b3ApCi17Ci0gICAgc3RydWN0IGRvbWFpbiAqY3Vycl9kID0gY3VycmVudC0+ZG9tYWluOwot ICAgIHhlbl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90IG9wOwotICAgIHN0cnVjdCBkb21haW4g KmQ7Ci0gICAgaW50IHJjOwotCi0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEp ICkKLSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9k b21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBy ZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihk KSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX2lvcmVxX3NlcnZlcihY U01fRE1fUFJJViwgZCwgSFZNT1BfY3JlYXRlX2lvcmVxX3NlcnZlcik7Ci0gICAgaWYgKCByYyAh PSAwICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IGh2bV9jcmVhdGVfaW9yZXFfc2Vy dmVyKGQsIGN1cnJfZC0+ZG9tYWluX2lkLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3AuaGFuZGxlX2J1ZmlvcmVxLCAmb3AuaWQpOwotICAgIGlmICggcmMgIT0gMCApCi0g ICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBjb3B5X3RvX2d1ZXN0KHVvcCwgJm9wLCAxKSA/ IC1FRkFVTFQgOiAwOwotICAgIAotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAg ICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBpbnQgaHZtb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZv KAotICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2lu Zm9fdCkgdW9wKQotewotICAgIHhlbl9odm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvX3Qgb3A7Ci0g ICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQotICAgIHJjID0g cmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAgIGlmICggcmMg IT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsKLSAgICBpZiAo ICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICByYyA9IHhzbV9o dm1faW9yZXFfc2VydmVyKFhTTV9ETV9QUklWLCBkLCBIVk1PUF9nZXRfaW9yZXFfc2VydmVyX2lu Zm8pOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBo dm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKGQsIG9wLmlkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmb3AuaW9yZXFfcGZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmb3AuYnVmaW9yZXFfcGZuLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJm9wLmJ1ZmlvcmVxX3BvcnQpOwotICAgIGlmICggcmMgIT0gMCApCi0gICAgICAgIGdv dG8gb3V0OwotCi0gICAgcmMgPSBjb3B5X3RvX2d1ZXN0KHVvcCwgJm9wLCAxKSA/IC1FRkFVTFQg OiAwOwotICAgIAotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKLSAgICByZXR1cm4g cmM7Ci19Ci0KLXN0YXRpYyBpbnQgaHZtb3BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcigK LSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1faW9fcmFuZ2VfdCkgdW9wKQotewot ICAgIHhlbl9odm1faW9fcmFuZ2VfdCBvcDsKLSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGlu dCByYzsKLQotICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAg IHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMgPSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lk KG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCByYyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwot Ci0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAg ICBnb3RvIG91dDsKLQotICAgIHJjID0geHNtX2h2bV9pb3JlcV9zZXJ2ZXIoWFNNX0RNX1BSSVYs IGQsIEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIpOwotICAgIGlmICggcmMgIT0g MCApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBodm1fbWFwX2lvX3JhbmdlX3RvX2lv cmVxX3NlcnZlcihkLCBvcC5pZCwgb3AudHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9wLnN0YXJ0LCBvcC5lbmQpOwotCi0gb3V0OgotICAgIHJjdV91bmxv Y2tfZG9tYWluKGQpOwotICAgIHJldHVybiByYzsKLX0KLQotc3RhdGljIGludCBodm1vcF91bm1h cF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcigKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFN KHhlbl9odm1faW9fcmFuZ2VfdCkgdW9wKQotewotICAgIHhlbl9odm1faW9fcmFuZ2VfdCBvcDsK LSAgICBzdHJ1Y3QgZG9tYWluICpkOwotICAgIGludCByYzsKLQotICAgIGlmICggY29weV9mcm9t X2d1ZXN0KCZvcCwgdW9wLCAxKSApCi0gICAgICAgIHJldHVybiAtRUZBVUxUOwotCi0gICAgcmMg PSByY3VfbG9ja19yZW1vdGVfZG9tYWluX2J5X2lkKG9wLmRvbWlkLCAmZCk7Ci0gICAgaWYgKCBy YyAhPSAwICkKLSAgICAgICAgcmV0dXJuIHJjOwotCi0gICAgcmMgPSAtRUlOVkFMOwotICAgIGlm ICggIWlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBnb3RvIG91dDsKLQotICAgIHJjID0geHNt X2h2bV9pb3JlcV9zZXJ2ZXIoWFNNX0RNX1BSSVYsIGQsIEhWTU9QX3VubWFwX2lvX3JhbmdlX2Zy b21faW9yZXFfc2VydmVyKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBnb3RvIG91dDsK LQotICAgIHJjID0gaHZtX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyKGQsIG9wLmlk LCBvcC50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9wLnN0YXJ0LCBvcC5lbmQpOwotICAgIAotIG91dDoKLSAgICByY3VfdW5sb2NrX2RvbWFpbihk KTsKLSAgICByZXR1cm4gcmM7Ci19Ci0KLXN0YXRpYyBpbnQgaHZtb3Bfc2V0X2lvcmVxX3NlcnZl cl9zdGF0ZSgKLSAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9odm1fc2V0X2lvcmVxX3Nl cnZlcl9zdGF0ZV90KSB1b3ApCi17Ci0gICAgeGVuX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0YXRl X3Qgb3A7Ci0gICAgc3RydWN0IGRvbWFpbiAqZDsKLSAgICBpbnQgcmM7Ci0KLSAgICBpZiAoIGNv cHlfZnJvbV9ndWVzdCgmb3AsIHVvcCwgMSkgKQotICAgICAgICByZXR1cm4gLUVGQVVMVDsKLQot ICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFpbl9ieV9pZChvcC5kb21pZCwgJmQpOwotICAg IGlmICggcmMgIT0gMCApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0gLUVJTlZBTDsK LSAgICBpZiAoICFpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICBy YyA9IHhzbV9odm1faW9yZXFfc2VydmVyKFhTTV9ETV9QUklWLCBkLCBIVk1PUF9zZXRfaW9yZXFf c2VydmVyX3N0YXRlKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBnb3RvIG91dDsKLQot ICAgIHJjID0gaHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoZCwgb3AuaWQsICEhb3AuZW5hYmxl ZCk7Ci0KLSBvdXQ6Ci0gICAgcmN1X3VubG9ja19kb21haW4oZCk7Ci0gICAgcmV0dXJuIHJjOwot fQotCi1zdGF0aWMgaW50IGh2bW9wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKAotICAgIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeGVuX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcl90KSB1b3ApCi17Ci0g ICAgeGVuX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZlcl90IG9wOwotICAgIHN0cnVjdCBkb21haW4g KmQ7Ci0gICAgaW50IHJjOwotCi0gICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3QoJm9wLCB1b3AsIDEp ICkKLSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Ci0KLSAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9k b21haW5fYnlfaWQob3AuZG9taWQsICZkKTsKLSAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICBy ZXR1cm4gcmM7Ci0KLSAgICByYyA9IC1FSU5WQUw7Ci0gICAgaWYgKCAhaXNfaHZtX2RvbWFpbihk KSApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSB4c21faHZtX2lvcmVxX3NlcnZlcihY U01fRE1fUFJJViwgZCwgSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIpOwotICAgIGlmICggcmMg IT0gMCApCi0gICAgICAgIGdvdG8gb3V0OwotCi0gICAgcmMgPSBodm1fZGVzdHJveV9pb3JlcV9z ZXJ2ZXIoZCwgb3AuaWQpOwotCi0gb3V0OgotICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwotICAg IHJldHVybiByYzsKLX0KLQogc3RhdGljIGludCBodm1vcF9zZXRfZXZ0Y2huX3VwY2FsbF92ZWN0 b3IoCiAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVj dG9yX3QpIHVvcCkKIHsKQEAgLTUyODQsMzYgKzUwOTUsNiBAQCBsb25nIGRvX2h2bV9vcCh1bnNp Z25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICBzdGFy dF9pdGVyID0gb3AgJiB+bWFzazsKICAgICBzd2l0Y2ggKCBvcCAmPSBtYXNrICkKICAgICB7Ci0g ICAgY2FzZSBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyOgotICAgICAgICByYyA9IGh2bW9wX2Ny ZWF0ZV9pb3JlcV9zZXJ2ZXIoCi0gICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhl bl9odm1fY3JlYXRlX2lvcmVxX3NlcnZlcl90KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIAotICAg IGNhc2UgSFZNT1BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvOgotICAgICAgICByYyA9IGh2bW9wX2dl dF9pb3JlcV9zZXJ2ZXJfaW5mbygKLSAgICAgICAgICAgIGd1ZXN0X2hhbmRsZV9jYXN0KGFyZywg eGVuX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm9fdCkpOwotICAgICAgICBicmVhazsKLSAgICAK LSAgICBjYXNlIEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXI6Ci0gICAgICAgIHJj ID0gaHZtb3BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcigKLSAgICAgICAgICAgIGd1ZXN0 X2hhbmRsZV9jYXN0KGFyZywgeGVuX2h2bV9pb19yYW5nZV90KSk7Ci0gICAgICAgIGJyZWFrOwot ICAgIAotICAgIGNhc2UgSFZNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6Ci0g ICAgICAgIHJjID0gaHZtb3BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoCi0gICAg ICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9odm1faW9fcmFuZ2VfdCkpOwotICAg ICAgICBicmVhazsKLQotICAgIGNhc2UgSFZNT1Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZToKLSAg ICAgICAgcmMgPSBodm1vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKAotICAgICAgICAgICAgZ3Vl c3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGVfdCkpOwot ICAgICAgICBicmVhazsKLSAgICAKLSAgICBjYXNlIEhWTU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVy OgotICAgICAgICByYyA9IGh2bW9wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKAotICAgICAgICAgICAg Z3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3QpKTsK LSAgICAgICAgYnJlYWs7Ci0gICAgCiAgICAgY2FzZSBIVk1PUF9zZXRfZXZ0Y2huX3VwY2FsbF92 ZWN0b3I6CiAgICAgICAgIHJjID0gaHZtb3Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yKAogICAg ICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoYXJnLCB4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVj dG9yX3QpKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNo L3g4Ni9odm0vaW9yZXEuYwppbmRleCAyNmEwY2I4Li44OTliYTY0IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC01 MTQsOSArNTE0LDkgQEAgc3RhdGljIGludCBodm1faW9yZXFfc2VydmVyX2FsbG9jX3Jhbmdlc2V0 cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKICAgICAgICAgY2hhciAqbmFtZTsKIAogICAg ICAgICByYyA9IGFzcHJpbnRmKCZuYW1lLCAiaW9yZXFfc2VydmVyICVkICVzIiwgcy0+aWQsCi0g ICAgICAgICAgICAgICAgICAgICAgKGkgPT0gSFZNT1BfSU9fUkFOR0VfUE9SVCkgPyAicG9ydCIg OgotICAgICAgICAgICAgICAgICAgICAgIChpID09IEhWTU9QX0lPX1JBTkdFX01FTU9SWSkgPyAi bWVtb3J5IiA6Ci0gICAgICAgICAgICAgICAgICAgICAgKGkgPT0gSFZNT1BfSU9fUkFOR0VfUENJ KSA/ICJwY2kiIDoKKyAgICAgICAgICAgICAgICAgICAgICAoaSA9PSBYRU5fRE1PUF9JT19SQU5H RV9QT1JUKSA/ICJwb3J0IiA6CisgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gWEVOX0RNT1Bf SU9fUkFOR0VfTUVNT1JZKSA/ICJtZW1vcnkiIDoKKyAgICAgICAgICAgICAgICAgICAgICAoaSA9 PSBYRU5fRE1PUF9JT19SQU5HRV9QQ0kpID8gInBjaSIgOgogICAgICAgICAgICAgICAgICAgICAg ICIiKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBnb3RvIGZhaWw7CkBAIC04MzQs OSArODM0LDkgQEAgaW50IGh2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBk b21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAKICAgICAgICAgICAgIHN3aXRjaCAoIHR5cGUgKQog ICAgICAgICAgICAgewotICAgICAgICAgICAgY2FzZSBIVk1PUF9JT19SQU5HRV9QT1JUOgotICAg ICAgICAgICAgY2FzZSBIVk1PUF9JT19SQU5HRV9NRU1PUlk6Ci0gICAgICAgICAgICBjYXNlIEhW TU9QX0lPX1JBTkdFX1BDSToKKyAgICAgICAgICAgIGNhc2UgWEVOX0RNT1BfSU9fUkFOR0VfUE9S VDoKKyAgICAgICAgICAgIGNhc2UgWEVOX0RNT1BfSU9fUkFOR0VfTUVNT1JZOgorICAgICAgICAg ICAgY2FzZSBYRU5fRE1PUF9JT19SQU5HRV9QQ0k6CiAgICAgICAgICAgICAgICAgciA9IHMtPnJh bmdlW3R5cGVdOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC04ODYsOSArODg2LDkgQEAg aW50IGh2bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpk LCBpb3NlcnZpZF90IGlkLAogCiAgICAgICAgICAgICBzd2l0Y2ggKCB0eXBlICkKICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgIGNhc2UgSFZNT1BfSU9fUkFOR0VfUE9SVDoKLSAgICAgICAgICAg IGNhc2UgSFZNT1BfSU9fUkFOR0VfTUVNT1JZOgotICAgICAgICAgICAgY2FzZSBIVk1PUF9JT19S QU5HRV9QQ0k6CisgICAgICAgICAgICBjYXNlIFhFTl9ETU9QX0lPX1JBTkdFX1BPUlQ6CisgICAg ICAgICAgICBjYXNlIFhFTl9ETU9QX0lPX1JBTkdFX01FTU9SWToKKyAgICAgICAgICAgIGNhc2Ug WEVOX0RNT1BfSU9fUkFOR0VfUENJOgogICAgICAgICAgICAgICAgIHIgPSBzLT5yYW5nZVt0eXBl XTsKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMTEyOSwxMiArMTEyOSwxMiBAQCBzdHJ1 Y3QgaHZtX2lvcmVxX3NlcnZlciAqaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFp biAqZCwKIAogICAgICAgICAvKiBQQ0kgY29uZmlnIGRhdGEgY3ljbGUgKi8KIAotICAgICAgICBz YmRmID0gSFZNT1BfUENJX1NCREYoMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBD SV9CVVMoQ0Y4X0JERihjZjgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9T TE9UKENGOF9CREYoY2Y4KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVO QyhDRjhfQkRGKGNmOCkpKTsKKyAgICAgICAgc2JkZiA9IFhFTl9ETU9QX1BDSV9TQkRGKDAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQlVTKENGOF9CREYoY2Y4KSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChDRjhfQkRGKGNmOCkpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMoQ0Y4X0JERihjZjgpKSk7 CiAKLSAgICAgICAgdHlwZSA9IEhWTU9QX0lPX1JBTkdFX1BDSTsKKyAgICAgICAgdHlwZSA9IFhF Tl9ETU9QX0lPX1JBTkdFX1BDSTsKICAgICAgICAgYWRkciA9ICgodWludDY0X3Qpc2JkZiA8PCAz MikgfAogICAgICAgICAgICAgICAgQ0Y4X0FERFJfTE8oY2Y4KSB8CiAgICAgICAgICAgICAgICAo cC0+YWRkciAmIDMpOwpAQCAtMTE1NSw3ICsxMTU1LDcgQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKmh2bV9zZWxlY3RfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCiAgICAgZWxzZQog ICAgIHsKICAgICAgICAgdHlwZSA9IChwLT50eXBlID09IElPUkVRX1RZUEVfUElPKSA/Ci0gICAg ICAgICAgICAgICAgSFZNT1BfSU9fUkFOR0VfUE9SVCA6IEhWTU9QX0lPX1JBTkdFX01FTU9SWTsK KyAgICAgICAgICAgICAgICBYRU5fRE1PUF9JT19SQU5HRV9QT1JUIDogWEVOX0RNT1BfSU9fUkFO R0VfTUVNT1JZOwogICAgICAgICBhZGRyID0gcC0+YWRkcjsKICAgICB9CiAKQEAgLTExNzcsMTkg KzExNzcsMTkgQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmh2bV9zZWxlY3RfaW9yZXFfc2Vy dmVyKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgZW5kOwogCi0gICAgICAgIGNhc2UgSFZNT1BfSU9fUkFOR0VfUE9SVDoKKyAgICAgICAgY2Fz ZSBYRU5fRE1PUF9JT19SQU5HRV9QT1JUOgogICAgICAgICAgICAgZW5kID0gYWRkciArIHAtPnNp emUgLSAxOwogICAgICAgICAgICAgaWYgKCByYW5nZXNldF9jb250YWluc19yYW5nZShyLCBhZGRy LCBlbmQpICkKICAgICAgICAgICAgICAgICByZXR1cm4gczsKIAogICAgICAgICAgICAgYnJlYWs7 Ci0gICAgICAgIGNhc2UgSFZNT1BfSU9fUkFOR0VfTUVNT1JZOgorICAgICAgICBjYXNlIFhFTl9E TU9QX0lPX1JBTkdFX01FTU9SWToKICAgICAgICAgICAgIGVuZCA9IGFkZHIgKyAocC0+c2l6ZSAq IHAtPmNvdW50KSAtIDE7CiAgICAgICAgICAgICBpZiAoIHJhbmdlc2V0X2NvbnRhaW5zX3Jhbmdl KHIsIGFkZHIsIGVuZCkgKQogICAgICAgICAgICAgICAgIHJldHVybiBzOwogCiAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgY2FzZSBIVk1PUF9JT19SQU5HRV9QQ0k6CisgICAgICAgIGNhc2Ug WEVOX0RNT1BfSU9fUkFOR0VfUENJOgogICAgICAgICAgICAgaWYgKCByYW5nZXNldF9jb250YWlu c19zaW5nbGV0b24ociwgYWRkciA+PiAzMikgKQogICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgIHAtPnR5cGUgPSBJT1JFUV9UWVBFX1BDSV9DT05GSUc7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFp bi5oCmluZGV4IGQ1NWQxODAuLjM1MGYwMTMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCkBA IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8cHVibGljL2h2bS9wYXJhbXMuaD4KICNpbmNsdWRl IDxwdWJsaWMvaHZtL3NhdmUuaD4KICNpbmNsdWRlIDxwdWJsaWMvaHZtL2h2bV9vcC5oPgorI2lu Y2x1ZGUgPHB1YmxpYy9odm0vZG1fb3AuaD4KIAogc3RydWN0IGh2bV9pb3JlcV9wYWdlIHsKICAg ICB1bnNpZ25lZCBsb25nIGdtZm47CkBAIC00Nyw3ICs0OCw3IEBAIHN0cnVjdCBodm1faW9yZXFf dmNwdSB7CiAgICAgYm9vbF90ICAgICAgICAgICBwZW5kaW5nOwogfTsKIAotI2RlZmluZSBOUl9J T19SQU5HRV9UWVBFUyAoSFZNT1BfSU9fUkFOR0VfUENJICsgMSkKKyNkZWZpbmUgTlJfSU9fUkFO R0VfVFlQRVMgKFhFTl9ETU9QX0lPX1JBTkdFX1BDSSArIDEpCiAjZGVmaW5lIE1BWF9OUl9JT19S QU5HRVMgIDI1NgogCiBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciB7CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9wdWJsaWMvaHZtL2RtX29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2RtX29w LmgKaW5kZXggODYyN2E2NC4uZGNkNDA3YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGlj L2h2bS9kbV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vZG1fb3AuaApAQCAtMjgs OCArMjgsMTY2IEBACiAKICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9P TFNfXykKIAorI2luY2x1ZGUgIi4uL2V2ZW50X2NoYW5uZWwuaCIKKworI2lmbmRlZiB1aW50NjRf YWxpZ25lZF90CisjZGVmaW5lIHVpbnQ2NF9hbGlnbmVkX3QgdWludDY0X3QKKyNlbmRpZgorCisv KgorICogSU9SRVEgU2VydmVycworICoKKyAqIFRoZSBpbnRlcmZhY2UgYmV0d2VlbiBhbiBJL08g ZW11bGF0b3IgYW4gWGVuIGlzIGNhbGxlZCBhbiBJT1JFUSBTZXJ2ZXIuCisgKiBBIGRvbWFpbiBz dXBwb3J0cyBhIHNpbmdsZSAnbGVnYWN5JyBJT1JFUSBTZXJ2ZXIgd2hpY2ggaXMgaW5zdGFudGlh dGVkIGlmCisgKiBwYXJhbWV0ZXIuLi4KKyAqCisgKiBIVk1fUEFSQU1fSU9SRVFfUEZOIGlzIHJl YWQgKHRvIGdldCB0aGUgZ21mbiBjb250YWluaW5nIHRoZSBzeW5jaHJvbm91cworICogaW9yZXEg c3RydWN0dXJlcyksIG9yLi4uCisgKiBIVk1fUEFSQU1fQlVGSU9SRVFfUEZOIGlzIHJlYWQgKHRv IGdldCB0aGUgZ21mbiBjb250YWluaW5nIHRoZSBidWZmZXJlZAorICogaW9yZXEgcmluZyksIG9y Li4uCisgKiBIVk1fUEFSQU1fQlVGSU9SRVFfRVZUQ0hOIGlzIHJlYWQgKHRvIGdldCB0aGUgZXZl bnQgY2hhbm5lbCB0aGF0IFhlbiB1c2VzCisgKiB0byByZXF1ZXN0IGJ1ZmZlcmVkIEkvTyBlbXVs YXRpb24pLgorICoKKyAqIFRoZSBmb2xsb3dpbmcgaHlwZXJjYWxscyBmYWNpbGl0YXRlIHRoZSBj cmVhdGlvbiBvZiBJT1JFUSBTZXJ2ZXJzIGZvcgorICogJ3NlY29uZGFyeScgZW11bGF0b3JzIHdo aWNoIGFyZSBpbnZva2VkIHRvIGltcGxlbWVudCBwb3J0IEkvTywgbWVtb3J5LCBvcgorICogUENJ IGNvbmZpZyBzcGFjZSByYW5nZXMgd2hpY2ggdGhleSBleHBsaWNpdGx5IHJlZ2lzdGVyLgorICov CisKK3R5cGVkZWYgdWludDE2X3QgaW9zZXJ2aWRfdDsKKworLyoKKyAqIFhFTl9ETU9QX2NyZWF0 ZV9pb3JlcV9zZXJ2ZXI6IEluc3RhbnRpYXRlIGEgbmV3IElPUkVRIFNlcnZlciBmb3IgYQorICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5IGVtdWxhdG9yLgorICoKKyAq IFRoZSA8aWQ+IGhhbmRlZCBiYWNrIGlzIHVuaXF1ZSBmb3IgdGFyZ2V0IGRvbWFpbi4gVGhlIHZh bHVyIG9mCisgKiA8aGFuZGxlX2J1ZmlvcmVxPiBzaG91bGQgYmUgb25lIG9mIEhWTV9JT1JFUVNS Vl9CVUZJT1JFUV8qIGRlZmluZWQgaW4KKyAqIGh2bV9vcC5oLiBJZiB0aGUgdmFsdWUgaXMgSFZN X0lPUkVRU1JWX0JVRklPUkVRX09GRiB0aGVuICB0aGUgYnVmZmVyZWQKKyAqIGlvcmVxIHJpbmcg d2lsbCBub3QgYmUgYWxsb2NhdGVkIGFuZCBoZW5jZSBhbGwgZW11bGF0aW9uIHJlcXVlc3RzIHRv CisgKiB0aGlzIHNlcnZlciB3aWxsIGJlIHN5bmNocm9ub3VzLgorICovCisjZGVmaW5lIFhFTl9E TU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIgMQorCitzdHJ1Y3QgeGVuX2RtX29wX2NyZWF0ZV9pb3Jl cV9zZXJ2ZXIgeworICAgIC8qIElOIC0gc2hvdWxkIHNlcnZlciBoYW5kbGUgYnVmZmVyZWQgaW9y ZXFzICovCisgICAgdWludDhfdCBoYW5kbGVfYnVmaW9yZXE7CisgICAgdWludDhfdCBwYWRbM107 CisgICAgLyogT1VUIC0gc2VydmVyIGlkICovCisgICAgaW9zZXJ2aWRfdCBpZDsKK307CisKKy8q CisgKiBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm86IEdldCBhbGwgdGhlIGluZm9ybWF0 aW9uIG5lY2Vzc2FyeSB0bworICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nl c3MgSU9SRVEgU2VydmVyIDxpZD4uCisgKgorICogVGhlIGVtdWxhdG9yIG5lZWRzIHRvIG1hcCB0 aGUgc3luY2hyb25vdXMgaW9yZXEgc3RydWN0dXJlcyBhbmQgYnVmZmVyZWQKKyAqIGlvcmVxIHJp bmcgKGlmIGl0IGV4aXN0cykgdGhhdCBYZW4gdXNlcyB0byByZXF1ZXN0IGVtdWxhdGlvbi4gVGhl c2UgYXJlCisgKiBob3N0ZWQgaW4gdGhlIHRhcmdldCBkb21haW4ncyBnbWZucyA8aW9yZXFfcGZu PiBhbmQgPGJ1ZmlvcmVxX3Bmbj4KKyAqIHJlc3BlY3RpdmVseS4gSW4gYWRkaXRpb24sIGlmIHRo ZSBJT1JFUSBTZXJ2ZXIgaXMgaGFuZGxpbmcgYnVmZmVyZWQKKyAqIGVtdWxhdGlvbiByZXF1ZXN0 cywgdGhlIGVtdWxhdG9yIG5lZWRzIHRvIGJpbmQgdG8gZXZlbnQgY2hhbm5lbAorICogPGJ1Zmlv cmVxX3BvcnQ+IHRvIGxpc3RlbiBmb3IgdGhlbS4gKFRoZSBldmVudCBjaGFubmVscyB1c2VkIGZv cgorICogc3luY2hyb25vdXMgZW11bGF0aW9uIHJlcXVlc3RzIGFyZSBzcGVjaWZpZWQgaW4gdGhl IHBlci1DUFUgaW9yZXEKKyAqIHN0cnVjdHVyZXMgaW4gPGlvcmVxX3Bmbj4pLgorICogSWYgdGhl IElPUkVRIFNlcnZlciBpcyBub3QgaGFuZGxpbmcgYnVmZmVyZWQgZW11bGF0aW9uIHJlcXVlc3Rz IHRoZW4gdGhlCisgKiB2YWx1ZXMgaGFuZGVkIGJhY2sgaW4gPGJ1ZmlvcmVxX3Bmbj4gYW5kIDxi dWZpb3JlcV9wb3J0PiB3aWxsIGJvdGggYmUgMC4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9nZXRf aW9yZXFfc2VydmVyX2luZm8gMgorCitzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJf aW5mbyB7CisgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90IGlkOworICAg IHVpbnQxNl90IHBhZDsKKyAgICAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBwb3J0ICovCisgICAg ZXZ0Y2huX3BvcnRfdCBidWZpb3JlcV9wb3J0OworICAgIC8qIE9VVCAtIHN5bmMgaW9yZXEgcGZu ICovCisgICAgdWludDY0X2FsaWduZWRfdCBpb3JlcV9wZm47CisgICAgLyogT1VUIC0gYnVmZmVy ZWQgaW9yZXEgcGZuICovCisgICAgdWludDY0X2FsaWduZWRfdCBidWZpb3JlcV9wZm47Cit9Owor CisvKgorICogWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcjogUmVnaXN0ZXIg YW4gSS9PIHJhbmdlIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YKKyAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPUkVRIFNlcnZlciA8aWQ+LgorICogWEVOX0RNT1BfdW5tYXBfaW9f cmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXI6IERlcmVnaXN0ZXIgYW4gSS9PIHJhbmdlCisgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNseSByZWdpc3Rl cmVkIGZvcgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVt dWxhdGlvbiBieSB0aGUgY2xpZW50IG9mCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSU9SRVEgU2VydmVyIDxpZD4uCisgKgorICogVGhlcmUgYXJlIHRocmVl IHR5cGVzIG9mIEkvTyB0aGF0IGNhbiBiZSBlbXVsYXRlZDogcG9ydCBJL08sIG1lbW9yeQorICog YWNjZXNzZXMgYW5kIFBDSSBjb25maWcgc3BhY2UgYWNjZXNzZXMuIFRoZSA8dHlwZT4gZmllbGQg ZGVub3RlcyB3aGljaAorICogdHlwZSBvZiByYW5nZSogdGhlIDxzdGFydD4gYW5kIDxlbmQ+IChp bmNsdXNpdmUpIGZpZWxkcyBhcmUgc3BlY2lmeWluZy4KKyAqIFBDSSBjb25maWcgc3BhY2UgcmFu Z2VzIGFyZSBzcGVjaWZpZWQgYnkgc2VnbWVudC9idXMvZGV2aWNlL2Z1bmN0aW9uCisgKiB2YWx1 ZXMgd2hpY2ggc2hvdWxkIGJlIGVuY29kZWQgdXNpbmcgdGhlIERNT1BfUENJX1NCREYgaGVscGVy IG1hY3JvCisgKiBiZWxvdy4KKyAqCisgKiBOT1RFOiB1bmxlc3MgYW4gZW11bGF0aW9uIHJlcXVl c3QgZmFsbHMgZW50aXJlbHkgd2l0aGluIGEgcmFuZ2UgbWFwcGVkCisgKiBieSBhIHNlY29uZGFy eSBlbXVsYXRvciwgaXQgd2lsbCBub3QgYmUgcGFzc2VkIHRvIHRoYXQgZW11bGF0b3IuCisgKi8K KyNkZWZpbmUgWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlciAzCisjZGVmaW5l IFhFTl9ETU9QX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyIDQKKworc3RydWN0IHhl bl9kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UgeworICAgIC8qIElOIC0gc2VydmVyIGlkICovCisg ICAgaW9zZXJ2aWRfdCBpZDsKKyAgICB1aW50MTZfdCBwYWQ7CisgICAgLyogSU4gLSB0eXBlIG9m IHJhbmdlICovCisgICAgdWludDMyX3QgdHlwZTsKKyMgZGVmaW5lIFhFTl9ETU9QX0lPX1JBTkdF X1BPUlQgICAwIC8qIEkvTyBwb3J0IHJhbmdlICovCisjIGRlZmluZSBYRU5fRE1PUF9JT19SQU5H RV9NRU1PUlkgMSAvKiBNTUlPIHJhbmdlICovCisjIGRlZmluZSBYRU5fRE1PUF9JT19SQU5HRV9Q Q0kgICAgMiAvKiBQQ0kgc2VnbWVudC9idXMvZGV2L2Z1bmMgcmFuZ2UgKi8KKyAgICAvKiBJTiAt IGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIG9mIHJhbmdlICovCisgICAgdWludDY0X2FsaWduZWRf dCBzdGFydCwgZW5kOworfTsKKworI2RlZmluZSBYRU5fRE1PUF9QQ0lfU0JERihzLGIsZCxmKSBc CisJKCgoKHMpICYgMHhmZmZmKSA8PCAxNikgfCAgXAorCSAoKChiKSAmIDB4ZmYpIDw8IDgpIHwg ICAgIFwKKwkgKCgoZCkgJiAweDFmKSA8PCAzKSB8ICAgICBcCisJICgoZikgJiAweDA3KSkKKwor LyoKKyAqIFhFTl9ETU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGU6IEVuYWJsZSBvciBkaXNhYmxl IHRoZSBJT1JFUSBTZXJ2ZXIgPGlkPgorICoKKyAqIFRoZSBJT1JFUSBTZXJ2ZXIgd2lsbCBub3Qg YmUgcGFzc2VkIGFueSBlbXVsYXRpb24gcmVxdWVzdHMgdW50aWwgaXQgaXMKKyAqIGluIHRoZSBl bmFibGVkIHN0YXRlLgorICogTm90ZSB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUgaW9yZXFfcGZu IGFuZCBidWZpb3JlcV9mbiAoc2VlCisgKiBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm8p IGFyZSBub3QgbWVhbmluZ2Z1bCB1bnRpbCB0aGUgSU9SRVEgU2VydmVyCisgKiBpcyBpbiB0aGUg ZW5hYmxlZCBzdGF0ZS4KKyAqLworI2RlZmluZSBYRU5fRE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0 YXRlIDUKKworc3RydWN0IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlIHsKKyAgICAv KiBJTiAtIHNlcnZlciBpZCAqLworICAgIGlvc2VydmlkX3QgaWQ7CisgICAgLyogSU4gLSBlbmFi bGVkPyAqLworICAgIHVpbnQ4X3QgZW5hYmxlZDsKKyAgICB1aW50OF90IHBhZDsKK307CisKKy8q CisgKiBYRU5fRE1PUF9kZXN0cm95X2lvcmVxX3NlcnZlcjogRGVzdHJveSB0aGUgSU9SRVEgU2Vy dmVyIDxpZD4uCisgKgorICogQW55IHJlZ2lzdGVyZWQgSS9PIHJhbmdlcyB3aWxsIGJlIGF1dG9t YXRpY2FsbHkgZGVyZWdpc3RlcmVkLgorICovCisjZGVmaW5lIFhFTl9ETU9QX2Rlc3Ryb3lfaW9y ZXFfc2VydmVyIDYKKworc3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciB7Cisg ICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KKyAgICBpb3NlcnZpZF90IGlkOworICAgIHVpbnQxNl90 IHBhZDsKK307CisKIHN0cnVjdCB4ZW5fZG1fb3AgewogICAgIHVpbnQzMl90IG9wOworICAgIHVp bnQzMl90IHBhZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfY3JlYXRl X2lvcmVxX3NlcnZlciBjcmVhdGVfaW9yZXFfc2VydmVyOworICAgICAgICBzdHJ1Y3QgeGVuX2Rt X29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyBnZXRfaW9yZXFfc2VydmVyX2luZm87CisgICAgICAg IHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIG1hcF9pb19yYW5nZV90b19pb3Jl cV9zZXJ2ZXI7CisgICAgICAgIHN0cnVjdCB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3JhbmdlIHVu bWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2VydmVyOworICAgICAgICBzdHJ1Y3QgeGVuX2RtX29w X3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZTsKKyAgICAgICAg c3RydWN0IHhlbl9kbV9vcF9kZXN0cm95X2lvcmVxX3NlcnZlciBkZXN0cm95X2lvcmVxX3NlcnZl cjsKKyAgICB9IHU7CiB9OwogCiAjZW5kaWYgLyogX19YRU5fXyB8fCBfX1hFTl9UT09MU19fICov CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oIGIveGVuL2luY2x1 ZGUvcHVibGljL2h2bS9odm1fb3AuaAppbmRleCBiM2U0NWNmLi42ZmNkODZkIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL2h2bV9vcC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vaHZtX29wLmgKQEAgLTI0MywzNyArMjQzLDEwIEBAIHR5cGVkZWYgc3RydWN0IHhlbl9o dm1faW5qZWN0X21zaSB4ZW5faHZtX2luamVjdF9tc2lfdDsKIERFRklORV9YRU5fR1VFU1RfSEFO RExFKHhlbl9odm1faW5qZWN0X21zaV90KTsKIAogLyoKLSAqIElPUkVRIFNlcnZlcnMKLSAqCi0g KiBUaGUgaW50ZXJmYWNlIGJldHdlZW4gYW4gSS9PIGVtdWxhdG9yIGFuIFhlbiBpcyBjYWxsZWQg YW4gSU9SRVEgU2VydmVyLgotICogQSBkb21haW4gc3VwcG9ydHMgYSBzaW5nbGUgJ2xlZ2FjeScg SU9SRVEgU2VydmVyIHdoaWNoIGlzIGluc3RhbnRpYXRlZCBpZgotICogcGFyYW1ldGVyLi4uCi0g KgotICogSFZNX1BBUkFNX0lPUkVRX1BGTiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFp bmluZyB0aGUgc3luY2hyb25vdXMKLSAqIGlvcmVxIHN0cnVjdHVyZXMpLCBvci4uLgotICogSFZN X1BBUkFNX0JVRklPUkVRX1BGTiBpcyByZWFkICh0byBnZXQgdGhlIGdtZm4gY29udGFpbmluZyB0 aGUgYnVmZmVyZWQKLSAqIGlvcmVxIHJpbmcpLCBvci4uLgotICogSFZNX1BBUkFNX0JVRklPUkVR X0VWVENITiBpcyByZWFkICh0byBnZXQgdGhlIGV2ZW50IGNoYW5uZWwgdGhhdCBYZW4gdXNlcwot ICogdG8gcmVxdWVzdCBidWZmZXJlZCBJL08gZW11bGF0aW9uKS4KLSAqIAotICogVGhlIGZvbGxv d2luZyBoeXBlcmNhbGxzIGZhY2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIElPUkVRIFNlcnZlcnMg Zm9yCi0gKiAnc2Vjb25kYXJ5JyBlbXVsYXRvcnMgd2hpY2ggYXJlIGludm9rZWQgdG8gaW1wbGVt ZW50IHBvcnQgSS9PLCBtZW1vcnksIG9yCi0gKiBQQ0kgY29uZmlnIHNwYWNlIHJhbmdlcyB3aGlj aCB0aGV5IGV4cGxpY2l0bHkgcmVnaXN0ZXIuCisgKiBEZWZpbml0aW9ucyByZWxhdGluZyB0byBE TU9QX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIuIChEZWZpbmVkIGhlcmUgZm9yCisgKiBiYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSkuCiAgKi8KIAotdHlwZWRlZiB1aW50MTZfdCBpb3NlcnZpZF90OwotCi0v KgotICogSFZNT1BfY3JlYXRlX2lvcmVxX3NlcnZlcjogSW5zdGFudGlhdGUgYSBuZXcgSU9SRVEg U2VydmVyIGZvciBhIHNlY29uZGFyeQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW11 bGF0b3Igc2VydmljaW5nIGRvbWFpbiA8ZG9taWQ+LgotICoKLSAqIFRoZSA8aWQ+IGhhbmRlZCBi YWNrIGlzIHVuaXF1ZSBmb3IgPGRvbWlkPi4gSWYgPGhhbmRsZV9idWZpb3JlcT4gaXMgemVybwot ICogdGhlIGJ1ZmZlcmVkIGlvcmVxIHJpbmcgd2lsbCBub3QgYmUgYWxsb2NhdGVkIGFuZCBoZW5j ZSBhbGwgZW11bGF0aW9uCi0gKiByZXF1ZXN0ZXMgdG8gdGhpcyBzZXJ2ZXIgd2lsbCBiZSBzeW5j aHJvbm91cy4KLSAqLwotI2RlZmluZSBIVk1PUF9jcmVhdGVfaW9yZXFfc2VydmVyIDE3Ci1zdHJ1 Y3QgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyIHsKLSAgICBkb21pZF90IGRvbWlkOyAgICAg ICAgICAgLyogSU4gLSBkb21haW4gdG8gYmUgc2VydmljZWQgKi8KICNkZWZpbmUgSFZNX0lPUkVR U1JWX0JVRklPUkVRX09GRiAgICAwCiAjZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9MRUdB Q1kgMQogLyoKQEAgLTI4MSwxMDcgKzI1NCw2IEBAIHN0cnVjdCB4ZW5faHZtX2NyZWF0ZV9pb3Jl cV9zZXJ2ZXIgewogICogdGhlIHBvaW50ZXIgcGFpciBnZXRzIHJlYWQgYXRvbWljYWxseToKICAq LwogI2RlZmluZSBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDIDIKLSAgICB1aW50OF90IGhh bmRsZV9idWZpb3JlcTsgLyogSU4gLSBzaG91bGQgc2VydmVyIGhhbmRsZSBidWZmZXJlZCBpb3Jl cXMgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgICAgICAgICAgLyogT1VUIC0gc2VydmVyIGlkICov Ci19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9jcmVhdGVfaW9yZXFfc2VydmVyIHhlbl9odm1f Y3JlYXRlX2lvcmVxX3NlcnZlcl90OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2bV9j cmVhdGVfaW9yZXFfc2VydmVyX3QpOwotCi0vKgotICogSFZNT1BfZ2V0X2lvcmVxX3NlcnZlcl9p bmZvOiBHZXQgYWxsIHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgdG8gYWNjZXNzCi0gKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPUkVRIFNlcnZlciA8aWQ+LiAKLSAqCi0gKiBUaGUg ZW11bGF0b3IgbmVlZHMgdG8gbWFwIHRoZSBzeW5jaHJvbm91cyBpb3JlcSBzdHJ1Y3R1cmVzIGFu ZCBidWZmZXJlZAotICogaW9yZXEgcmluZyAoaWYgaXQgZXhpc3RzKSB0aGF0IFhlbiB1c2VzIHRv IHJlcXVlc3QgZW11bGF0aW9uLiBUaGVzZSBhcmUKLSAqIGhvc3RlZCBpbiBkb21haW4gPGRvbWlk PidzIGdtZm5zIDxpb3JlcV9wZm4+IGFuZCA8YnVmaW9yZXFfcGZuPgotICogcmVzcGVjdGl2ZWx5 LiBJbiBhZGRpdGlvbiwgaWYgdGhlIElPUkVRIFNlcnZlciBpcyBoYW5kbGluZyBidWZmZXJlZAot ICogZW11bGF0aW9uIHJlcXVlc3RzLCB0aGUgZW11bGF0b3IgbmVlZHMgdG8gYmluZCB0byBldmVu dCBjaGFubmVsCi0gKiA8YnVmaW9yZXFfcG9ydD4gdG8gbGlzdGVuIGZvciB0aGVtLiAoVGhlIGV2 ZW50IGNoYW5uZWxzIHVzZWQgZm9yCi0gKiBzeW5jaHJvbm91cyBlbXVsYXRpb24gcmVxdWVzdHMg YXJlIHNwZWNpZmllZCBpbiB0aGUgcGVyLUNQVSBpb3JlcQotICogc3RydWN0dXJlcyBpbiA8aW9y ZXFfcGZuPikuCi0gKiBJZiB0aGUgSU9SRVEgU2VydmVyIGlzIG5vdCBoYW5kbGluZyBidWZmZXJl ZCBlbXVsYXRpb24gcmVxdWVzdHMgdGhlbiB0aGUKLSAqIHZhbHVlcyBoYW5kZWQgYmFjayBpbiA8 YnVmaW9yZXFfcGZuPiBhbmQgPGJ1ZmlvcmVxX3BvcnQ+IHdpbGwgYm90aCBiZSAwLgotICovCi0j ZGVmaW5lIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAxOAotc3RydWN0IHhlbl9odm1fZ2V0 X2lvcmVxX3NlcnZlcl9pbmZvIHsKLSAgICBkb21pZF90IGRvbWlkOyAgICAgICAgICAgICAgICAg LyogSU4gLSBkb21haW4gdG8gYmUgc2VydmljZWQgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgICAg ICAgICAgICAgICAgLyogSU4gLSBzZXJ2ZXIgaWQgKi8KLSAgICBldnRjaG5fcG9ydF90IGJ1Zmlv cmVxX3BvcnQ7ICAgLyogT1VUIC0gYnVmZmVyZWQgaW9yZXEgcG9ydCAqLwotICAgIHVpbnQ2NF9h bGlnbmVkX3QgaW9yZXFfcGZuOyAgICAvKiBPVVQgLSBzeW5jIGlvcmVxIHBmbiAqLwotICAgIHVp bnQ2NF9hbGlnbmVkX3QgYnVmaW9yZXFfcGZuOyAvKiBPVVQgLSBidWZmZXJlZCBpb3JlcSBwZm4g Ki8KLX07Ci10eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyB4ZW5f aHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mb190OwotREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVu X2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm9fdCk7Ci0KLS8qCi0gKiBIVk1fbWFwX2lvX3Jhbmdl X3RvX2lvcmVxX3NlcnZlcjogUmVnaXN0ZXIgYW4gSS9PIHJhbmdlIG9mIGRvbWFpbiA8ZG9taWQ+ Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGVtdWxhdGlvbiBieSB0 aGUgY2xpZW50IG9mIElPUkVRCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U2VydmVyIDxpZD4KLSAqIEhWTV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcjogRGVy ZWdpc3RlciBhbiBJL08gcmFuZ2Ugb2YgPGRvbWlkPgotICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3IgZW11bGF0aW9uIGJ5IHRoZSBjbGllbnQgb2YgSU9SRVEKLSAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyIDxpZD4KLSAqCi0g KiBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgSS9PIHRoYXQgY2FuIGJlIGVtdWxhdGVkOiBwb3J0 IEkvTywgbWVtb3J5IGFjY2Vzc2VzCi0gKiBhbmQgUENJIGNvbmZpZyBzcGFjZSBhY2Nlc3Nlcy4g VGhlIDx0eXBlPiBmaWVsZCBkZW5vdGVzIHdoaWNoIHR5cGUgb2YgcmFuZ2UKLSAqIHRoZSA8c3Rh cnQ+IGFuZCA8ZW5kPiAoaW5jbHVzaXZlKSBmaWVsZHMgYXJlIHNwZWNpZnlpbmcuCi0gKiBQQ0kg Y29uZmlnIHNwYWNlIHJhbmdlcyBhcmUgc3BlY2lmaWVkIGJ5IHNlZ21lbnQvYnVzL2RldmljZS9m dW5jdGlvbiB2YWx1ZXMKLSAqIHdoaWNoIHNob3VsZCBiZSBlbmNvZGVkIHVzaW5nIHRoZSBIVk1P UF9QQ0lfU0JERiBoZWxwZXIgbWFjcm8gYmVsb3cuCi0gKgotICogTk9URTogdW5sZXNzIGFuIGVt dWxhdGlvbiByZXF1ZXN0IGZhbGxzIGVudGlyZWx5IHdpdGhpbiBhIHJhbmdlIG1hcHBlZAotICog YnkgYSBzZWNvbmRhcnkgZW11bGF0b3IsIGl0IHdpbGwgbm90IGJlIHBhc3NlZCB0byB0aGF0IGVt dWxhdG9yLgotICovCi0jZGVmaW5lIEhWTU9QX21hcF9pb19yYW5nZV90b19pb3JlcV9zZXJ2ZXIg MTkKLSNkZWZpbmUgSFZNT1BfdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIgMjAKLXN0 cnVjdCB4ZW5faHZtX2lvX3JhbmdlIHsKLSAgICBkb21pZF90IGRvbWlkOyAgICAgICAgICAgICAg IC8qIElOIC0gZG9tYWluIHRvIGJlIHNlcnZpY2VkICovCi0gICAgaW9zZXJ2aWRfdCBpZDsgICAg ICAgICAgICAgICAvKiBJTiAtIHNlcnZlciBpZCAqLwotICAgIHVpbnQzMl90IHR5cGU7ICAgICAg ICAgICAgICAgLyogSU4gLSB0eXBlIG9mIHJhbmdlICovCi0jIGRlZmluZSBIVk1PUF9JT19SQU5H RV9QT1JUICAgMCAvKiBJL08gcG9ydCByYW5nZSAqLwotIyBkZWZpbmUgSFZNT1BfSU9fUkFOR0Vf TUVNT1JZIDEgLyogTU1JTyByYW5nZSAqLwotIyBkZWZpbmUgSFZNT1BfSU9fUkFOR0VfUENJICAg IDIgLyogUENJIHNlZ21lbnQvYnVzL2Rldi9mdW5jIHJhbmdlICovCi0gICAgdWludDY0X2FsaWdu ZWRfdCBzdGFydCwgZW5kOyAvKiBJTiAtIGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIG9mIHJhbmdl ICovCi19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9pb19yYW5nZSB4ZW5faHZtX2lvX3Jhbmdl X3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2lvX3JhbmdlX3QpOwotCi0jZGVm aW5lIEhWTU9QX1BDSV9TQkRGKHMsYixkLGYpICAgICAgICAgICAgICAgICBcCi0JKCgoKHMpICYg MHhmZmZmKSA8PCAxNikgfCAgICAgICAgICAgICAgICAgICBcCi0JICgoKGIpICYgMHhmZikgPDwg OCkgfCAgICAgICAgICAgICAgICAgICAgICBcCi0JICgoKGQpICYgMHgxZikgPDwgMykgfCAgICAg ICAgICAgICAgICAgICAgICBcCi0JICgoZikgJiAweDA3KSkKLQotLyoKLSAqIEhWTU9QX2Rlc3Ry b3lfaW9yZXFfc2VydmVyOiBEZXN0cm95IHRoZSBJT1JFUSBTZXJ2ZXIgPGlkPiBzZXJ2aWNpbmcg ZG9tYWluCi0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRvbWlkPi4KLSAqCi0gKiBB bnkgcmVnaXN0ZXJlZCBJL08gcmFuZ2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZXJlZ2lzdGVy ZWQuCi0gKi8KLSNkZWZpbmUgSFZNT1BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIgMjEKLXN0cnVjdCB4 ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyIHsKLSAgICBkb21pZF90IGRvbWlkOyAvKiBJTiAt IGRvbWFpbiB0byBiZSBzZXJ2aWNlZCAqLwotICAgIGlvc2VydmlkX3QgaWQ7IC8qIElOIC0gc2Vy dmVyIGlkICovCi19OwotdHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9kZXN0cm95X2lvcmVxX3NlcnZl ciB4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3Q7Ci1ERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5faHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyX3QpOwotCi0vKgotICogSFZNT1Bfc2V0X2lv cmVxX3NlcnZlcl9zdGF0ZTogRW5hYmxlIG9yIGRpc2FibGUgdGhlIElPUkVRIFNlcnZlciA8aWQ+ IHNlcnZpY2luZwotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluIDxkb21p ZD4uCi0gKgotICogVGhlIElPUkVRIFNlcnZlciB3aWxsIG5vdCBiZSBwYXNzZWQgYW55IGVtdWxh dGlvbiByZXF1ZXN0cyB1bnRpbCBpdCBpcyBpbiB0aGUKLSAqIGVuYWJsZWQgc3RhdGUuCi0gKiBO b3RlIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBpb3JlcV9wZm4gYW5kIGJ1ZmlvcmVxX2ZuIChz ZWUKLSAqIEhWTU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbykgYXJlIG5vdCBtZWFuaW5nZnVsIHVu dGlsIHRoZSBJT1JFUSBTZXJ2ZXIgaXMgaW4KLSAqIHRoZSBlbmFibGVkIHN0YXRlLgotICovCi0j ZGVmaW5lIEhWTU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUgMjIKLXN0cnVjdCB4ZW5faHZtX3Nl dF9pb3JlcV9zZXJ2ZXJfc3RhdGUgewotICAgIGRvbWlkX3QgZG9taWQ7ICAgLyogSU4gLSBkb21h aW4gdG8gYmUgc2VydmljZWQgKi8KLSAgICBpb3NlcnZpZF90IGlkOyAgIC8qIElOIC0gc2VydmVy IGlkICovCi0gICAgdWludDhfdCBlbmFibGVkOyAvKiBJTiAtIGVuYWJsZWQ/ICovICAgIAotfTsK LXR5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSB4ZW5faHZtX3Nl dF9pb3JlcV9zZXJ2ZXJfc3RhdGVfdDsKLURFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1f c2V0X2lvcmVxX3NlcnZlcl9zdGF0ZV90KTsKIAogI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykg fHwgZGVmaW5lZChfX1hFTl9UT09MU19fKSAqLwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 c20vZHVtbXkuaCBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCmluZGV4IGIyMDZmNWEuLjlmN2Mx NzQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCkBAIC02MzQsMTIgKzYzNCw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4 c21faHZtX2luamVjdF9tc2koWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCiAgICAg cmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CiB9 CiAKLXN0YXRpYyBYU01fSU5MSU5FIGludCB4c21faHZtX2lvcmVxX3NlcnZlcihYU01fREVGQVVM VF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgaW50IG9wKQotewotICAgIFhTTV9BU1NFUlRfQUNUSU9O KFhTTV9ETV9QUklWKTsKLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3Vy cmVudC0+ZG9tYWluLCBkKTsKLX0KLQogc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9tZW1fc2hh cmluZ19vcChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAq Y2QsIGludCBvcCkKIHsKICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5k ZXggZTJkMzM2Zi4uYjU4NDVhMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisr KyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaApAQCAtMTY2LDcgKzE2Niw2IEBAIHN0cnVjdCB4c21f b3BlcmF0aW9ucyB7CiAgICAgaW50ICgqaHZtX3NldF9pc2FfaXJxX2xldmVsKSAoc3RydWN0IGRv bWFpbiAqZCk7CiAgICAgaW50ICgqaHZtX3NldF9wY2lfbGlua19yb3V0ZSkgKHN0cnVjdCBkb21h aW4gKmQpOwogICAgIGludCAoKmh2bV9pbmplY3RfbXNpKSAoc3RydWN0IGRvbWFpbiAqZCk7Ci0g ICAgaW50ICgqaHZtX2lvcmVxX3NlcnZlcikgKHN0cnVjdCBkb21haW4gKmQsIGludCBvcCk7CiAg ICAgaW50ICgqbWVtX3NoYXJpbmdfb3ApIChzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWlu ICpjZCwgaW50IG9wKTsKICAgICBpbnQgKCphcGljKSAoc3RydWN0IGRvbWFpbiAqZCwgaW50IGNt ZCk7CiAgICAgaW50ICgqbWVtdHlwZSkgKHVpbnQzMl90IGFjY2Vzcyk7CkBAIC02NTYsMTEgKzY1 NSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1faW5qZWN0X21zaSAoeHNtX2RlZmF1bHRf dCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCiAgICAgcmV0dXJuIHhzbV9vcHMtPmh2bV9pbmplY3Rf bXNpKGQpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCB4c21faHZtX2lvcmVxX3NlcnZlciAoeHNt X2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIGludCBvcCkKLXsKLSAgICByZXR1cm4g eHNtX29wcy0+aHZtX2lvcmVxX3NlcnZlcihkLCBvcCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50 IHhzbV9tZW1fc2hhcmluZ19vcCAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApCiB7CiAgICAgcmV0dXJuIHhzbV9vcHMtPm1lbV9z aGFyaW5nX29wKGQsIGNkLCBvcCk7CmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4v eHNtL2R1bW15LmMKaW5kZXggYTA4MmIyOC4uZDU0NGVjMSAxMDA2NDQKLS0tIGEveGVuL3hzbS9k dW1teS5jCisrKyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTQ5LDcgKzE0OSw2IEBAIHZvaWQgX19p bml0IHhzbV9maXh1cF9vcHMgKHN0cnVjdCB4c21fb3BlcmF0aW9ucyAqb3BzKQogICAgIHNldF90 b19kdW1teV9pZl9udWxsKG9wcywgaHZtX3NldF9pc2FfaXJxX2xldmVsKTsKICAgICBzZXRfdG9f ZHVtbXlfaWZfbnVsbChvcHMsIGh2bV9zZXRfcGNpX2xpbmtfcm91dGUpOwogICAgIHNldF90b19k dW1teV9pZl9udWxsKG9wcywgaHZtX2luamVjdF9tc2kpOwotICAgIHNldF90b19kdW1teV9pZl9u dWxsKG9wcywgaHZtX2lvcmVxX3NlcnZlcik7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3Bz LCBtZW1fc2hhcmluZ19vcCk7CiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhcGljKTsK ICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1hY2hpbmVfbWVtb3J5X21hcCk7CmRpZmYg LS1naXQgYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKaW5k ZXggMzgzZGQ0Zi4uMWNlOGEzNiAxMDA2NDQKLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisr KyBiL3hlbi94c20vZmxhc2svaG9va3MuYwpAQCAtMTUyNSwxMSArMTUyNSw2IEBAIHN0YXRpYyBp bnQgZmxhc2tfaHZtX2luamVjdF9tc2koc3RydWN0IGRvbWFpbiAqZCkKICAgICByZXR1cm4gY3Vy cmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fU0VORF9JUlEpOwogfQogCi1zdGF0 aWMgaW50IGZsYXNrX2h2bV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW50IG9wKQot ewotICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19IVk1D VEwpOwotfQotCiBzdGF0aWMgaW50IGZsYXNrX21lbV9zaGFyaW5nX29wKHN0cnVjdCBkb21haW4g KmQsIHN0cnVjdCBkb21haW4gKmNkLCBpbnQgb3ApCiB7CiAgICAgaW50IHJjID0gY3VycmVudF9o YXNfcGVybShjZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX01FTV9TSEFSSU5HKTsKQEAgLTE4MDgsNyAr MTgwMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgZmxhc2tfb3BzID0gewogICAg IC5odm1fc2V0X2lzYV9pcnFfbGV2ZWwgPSBmbGFza19odm1fc2V0X2lzYV9pcnFfbGV2ZWwsCiAg ICAgLmh2bV9zZXRfcGNpX2xpbmtfcm91dGUgPSBmbGFza19odm1fc2V0X3BjaV9saW5rX3JvdXRl LAogICAgIC5odm1faW5qZWN0X21zaSA9IGZsYXNrX2h2bV9pbmplY3RfbXNpLAotICAgIC5odm1f aW9yZXFfc2VydmVyID0gZmxhc2tfaHZtX2lvcmVxX3NlcnZlciwKICAgICAubWVtX3NoYXJpbmdf b3AgPSBmbGFza19tZW1fc2hhcmluZ19vcCwKICAgICAuYXBpYyA9IGZsYXNrX2FwaWMsCiAgICAg Lm1hY2hpbmVfbWVtb3J5X21hcCA9IGZsYXNrX21hY2hpbmVfbWVtb3J5X21hcCwKLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==