From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 10/14] x86/mm: Switch {get, put}_gfn() infrastructure to using gfn_t Date: Wed, 21 Nov 2018 13:21:18 +0000 Message-ID: <1542806482-24030-11-git-send-email-andrew.cooper3@citrix.com> References: <1542806482-24030-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1542806482-24030-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Tamas K Lengyel , Wei Liu , Jun Nakajima , Razvan Cojocaru , George Dunlap , Andrew Cooper , Tim Deegan , Paul Durrant , Jan Beulich , Boris Ostrovsky , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org U2VlbWluZ2x5LCBhIG1ham9yaXR5IG9mIHVzZXJzIGVpdGhlciBvdmVycmlkZSB0aGUgaGVscGVy cyBhbnl3YXksIG9yIGhhdmUgYW4KZ2ZuX3QgaW4gdGhlaXIgaGFuZHMuCgpVcGRhdGUgdGhlIEFQ SSwgYW5kIGFkanVzdCBhbGwgdXNlcnMgdG8gbWF0Y2guCgpEb2luZyB0aGlzIGhpZ2hsaWdodGVk IGEgZ2FwaW5nIGFsdHAybSBzZWN1cml0eSBob2xlIGluCnZteF92Y3B1X3VwZGF0ZV92bWZ1bmNf dmUoKSwgd2hpY2ggd2lsbCBuZWVkIGFkZHJlc3Npbmcgbm93IHdlIGNhbiBkaXNjdXNzIHRoZQpw cm9ibGVtIGFuZCBvcHRpb25zIHB1YmxpY2x5LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxp Y2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIg UGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBSYXp2YW4gQ29qb2NhcnUgPHJj b2pvY2FydUBiaXRkZWZlbmRlci5jb20+CkNDOiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzQHRrbGVu Z3llbC5jb20+CkNDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+ CkNDOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJy YW50QGNpdHJpeC5jb20+CkNDOiBKdW4gTmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+ CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNr eSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNDOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQg PHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpDQzogQnJpYW4gV29vZHMgPGJyaWFuLndv b2RzQGFtZC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYyAgICAg ICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlLmMgICAgICAgICAgICAgfCAx NCArKystLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgICAgICAgICAgICB8ICA0 ICstCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmggICAgICAgICAgICB8ICAyICstCiB4 ZW4vYXJjaC94ODYvZGVidWcuYyAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstLQogeGVuL2Fy Y2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrLS0tLS0KIHhlbi9h cmNoL3g4Ni9kb21jdGwuYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLQogeGVuL2FyY2gv eDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0KIHhlbi9hcmNoL3g4 Ni9odm0vZW11bGF0ZS5jICAgICAgICAgICAgICAgIHwgMTYgKysrKy0tLS0KIHhlbi9hcmNoL3g4 Ni9odm0vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgIHwgIDQgKy0KIHhlbi9hcmNoL3g4Ni9odm0v aHZtLmMgICAgICAgICAgICAgICAgICAgIHwgMjUgKysrKysrLS0tLS0tCiB4ZW4vYXJjaC94ODYv aHZtL210cnIuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYyAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bXgu YyAgICAgICAgICAgICAgICB8ICA3ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTAgKystLS0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jICAgICAg ICAgIHwgIDYgKy0tCiB4ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jICAgICAgICAgICAgICB8 ICA1ICstLQogeGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMgICAgICAgICAgICAgfCAyNCAr KysrKy0tLS0tLQogeGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgICAgICAgICAgfCA0 NSArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYyAg ICAgICAgICAgfCAgNCArLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICAgICAgICAg ICAgfCA2OCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0v c2hhZG93L3R5cGVzLmggICAgICAgICAgICB8ICA0IC0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxl LmMgICAgICAgICAgICAgICAgICB8IDEwICsrLS0tCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAg ICAgICAgICAgICAgICAgICB8IDI0ICsrKysrLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfZ3Vlc3QuYyB8ICA4IC0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3Rf cHQuaCAgICAgICAgICAgIHwgIDQgLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggICAgICAg ICAgICAgICAgIHwgMzAgKysrKysrKy0tLS0tLS0KIDI4IGZpbGVzIGNoYW5nZWQsIDE3MiBpbnNl cnRpb25zKCspLCAxOTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNhY3Rpb24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMK aW5kZXggZTQyMjY3NC4uYzhlMGNmMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hl Y2svbWNhY3Rpb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCkBA IC04OSw3ICs4OSw3IEBAIG1jX21lbWVycl9kaGFuZGxlcihzdHJ1Y3QgbWNhX2JpbmZvICpiaW5m bywKICAgICAgICAgICAgICAgICBBU1NFUlQoZCk7CiAgICAgICAgICAgICAgICAgZ2ZuID0gZ2V0 X2dwZm5fZnJvbV9tZm4oKGJhbmstPm1jX2FkZHIpID4+IFBBR0VfU0hJRlQpOwogCi0gICAgICAg ICAgICAgICAgaWYgKCB1bm1tYXBfYnJva2VuX3BhZ2UoZCwgX21mbihtZm4pLCBnZm4pICkKKyAg ICAgICAgICAgICAgICBpZiAoIHVubW1hcF9icm9rZW5fcGFnZShkLCBfbWZuKG1mbiksIF9nZm4o Z2ZuKSkgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKCJV bm1hcCBicm9rZW4gbWVtb3J5ICVseCBmb3IgRE9NJWQgZmFpbGVkXG4iLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWZuLCBkLT5kb21haW5faWQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2NwdS9tY2hlY2svbWNlLmMgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYwppbmRl eCAzMGNkYjA2Li5jOTZjMDUzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2UuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2UuYwpAQCAtMTQ2OSw5ICsxNDY5 LDYgQEAgbG9uZyBkb19tY2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94ZW5f bWMpCiAgICAgICAgICAgICBzdHJ1Y3QgZG9tYWluICpkOwogICAgICAgICAgICAgc3RydWN0IG1j aW5mb19tc3IgKm1zcjsKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpOwotICAgICAgICAgICAg cGFkZHJfdCBnYWRkcjsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm47Ci0gICAg ICAgICAgICBwMm1fdHlwZV90IHQ7CiAKICAgICAgICAgICAgIGRvbWlkID0gKG1jX21zcmluamVj dC0+bWNpbmpfZG9taWQgPT0gRE9NSURfU0VMRikgPwogICAgICAgICAgICAgICAgICAgICBjdXJy ZW50LT5kb21haW4tPmRvbWFpbl9pZCA6IG1jX21zcmluamVjdC0+bWNpbmpfZG9taWQ7CkBAIC0x NDg5LDExICsxNDg2LDEyIEBAIGxvbmcgZG9fbWNhKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVu X21jX3QpIHVfeGVuX21jKQogICAgICAgICAgICAgICAgICAgaSA8IG1jX21zcmluamVjdC0+bWNp bmpfY291bnQ7CiAgICAgICAgICAgICAgICAgICBpKyssIG1zcisrICkKICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICBnYWRkciA9IG1zci0+dmFsdWU7Ci0gICAgICAgICAgICAgICAgZ2Zu ID0gUEZOX0RPV04oZ2FkZHIpOwotICAgICAgICAgICAgICAgIG1mbiA9IG1mbl94KGdldF9nZm4o ZCwgZ2ZuLCAmdCkpOworICAgICAgICAgICAgICAgIHAybV90eXBlX3QgdDsKKyAgICAgICAgICAg ICAgICBwYWRkcl90IGdhZGRyID0gbXNyLT52YWx1ZTsKKyAgICAgICAgICAgICAgICBnZm5fdCBn Zm4gPSBfZ2ZuKFBGTl9ET1dOKGdhZGRyKSk7CisgICAgICAgICAgICAgICAgbWZuX3QgbWZuID0g Z2V0X2dmbihkLCBnZm4sICZ0KTsKIAotICAgICAgICAgICAgICAgIGlmICggbWZuID09IG1mbl94 KElOVkFMSURfTUZOKSApCisgICAgICAgICAgICAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZBTElE X01GTikgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgcHV0X2dmbihk LCBnZm4pOwogICAgICAgICAgICAgICAgICAgICBwdXRfZG9tYWluKGQpOwpAQCAtMTUwMSw3ICsx NDk5LDcgQEAgbG9uZyBkb19tY2EoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWNfdCkgdV94 ZW5fbWMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUVJTlZBTCwgZ2Zu LCBkb21pZCk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgbXNyLT52YWx1 ZSA9IHBmbl90b19wYWRkcihtZm4pIHwgKGdhZGRyICYgKFBBR0VfU0laRSAtIDEpKTsKKyAgICAg ICAgICAgICAgICBtc3ItPnZhbHVlID0gbWZuX3RvX21hZGRyKG1mbikgfCAoZ2FkZHIgJiAoUEFH RV9TSVpFIC0gMSkpOwogCiAgICAgICAgICAgICAgICAgcHV0X2dmbihkLCBnZm4pOwogICAgICAg ICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jIGIveGVu L2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCmluZGV4IGYxNTgzNWUuLmUyNTdlOTQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYworKysgYi94ZW4vYXJjaC94ODYv Y3B1L21jaGVjay92bWNlLmMKQEAgLTUxMiw3ICs1MTIsNyBAQCBpbnQgZmlsbF92bXNyX2RhdGEo c3RydWN0IG1jaW5mb19iYW5rICptY19iYW5rLCBzdHJ1Y3QgZG9tYWluICpkLAogICogWFhYIGZv bGxvd2luZyBzaXR1YXRpb24gbWlzc2VkOgogICogUG9ELCBGb3JlaWduIG1hcHBlZCwgR3JhbnRl ZCwgU2hhcmVkCiAgKi8KLWludCB1bm1tYXBfYnJva2VuX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg bWZuX3QgbWZuLCB1bnNpZ25lZCBsb25nIGdmbikKK2ludCB1bm1tYXBfYnJva2VuX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCBnZm5fdCBnZm4pCiB7CiAgICAgbWZuX3Qgcl9tZm47 CiAgICAgcDJtX3R5cGVfdCBwdDsKQEAgLTUzMyw3ICs1MzMsNyBAQCBpbnQgdW5tbWFwX2Jyb2tl bl9wYWdlKHN0cnVjdCBkb21haW4gKmQsIG1mbl90IG1mbiwgdW5zaWduZWQgbG9uZyBnZm4pCiAg ICAgaWYgKCBwMm1fdG9fbWFzayhwdCkgJiBQMk1fVU5NQVBfVFlQRVMpCiAgICAgewogICAgICAg ICBBU1NFUlQobWZuX2VxKHJfbWZuLCBtZm4pKTsKLSAgICAgICAgcmMgPSBwMm1fY2hhbmdlX3R5 cGVfb25lKGQsIGdmbiwgcHQsIHAybV9yYW1fYnJva2VuKTsKKyAgICAgICAgcmMgPSBwMm1fY2hh bmdlX3R5cGVfb25lKGQsIGdmbl94KGdmbiksIHB0LCBwMm1fcmFtX2Jyb2tlbik7CiAgICAgfQog ICAgIHB1dF9nZm4oZCwgZ2ZuKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hl Y2svdm1jZS5oIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5oCmluZGV4IDI3OTdlMDAu LmEzN2YzYmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuaAorKysg Yi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmgKQEAgLTksNyArOSw3IEBAIGludCB2bWNl X2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKTsKICAgICAgICAgJiYgaGFyZHdhcmVfZG9tYWlu LT52Y3B1WzBdIFwKICAgICAgICAgJiYgZ3Vlc3RfZW5hYmxlZF9ldmVudChoYXJkd2FyZV9kb21h aW4tPnZjcHVbMF0sIFZJUlFfTUNBKSkKIAotaW50IHVubW1hcF9icm9rZW5fcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCBtZm5fdCBtZm4sIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCB1bm1tYXBfYnJv a2VuX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCBnZm5fdCBnZm4pOwogCiBpbnQg dm1jZV9pbnRlbF9yZG1zcihjb25zdCBzdHJ1Y3QgdmNwdSAqLCB1aW50MzJfdCBtc3IsIHVpbnQ2 NF90ICp2YWwpOwogaW50IHZtY2VfaW50ZWxfd3Jtc3Ioc3RydWN0IHZjcHUgKiwgdWludDMyX3Qg bXNyLCB1aW50NjRfdCB2YWwpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RlYnVnLmMgYi94 ZW4vYXJjaC94ODYvZGVidWcuYwppbmRleCBhNTAwZGYwLi43YzJkYzhjIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvZGVidWcuYworKysgYi94ZW4vYXJjaC94ODYvZGVidWcuYwpAQCAtNTgsNyAr NTgsNyBAQCBkYmdfaHZtX3ZhMm1mbihkYmd2YV90IHZhZGRyLCBzdHJ1Y3QgZG9tYWluICpkcCwg aW50IHRvYWRkciwgZ2ZuX3QgKmdmbikKICAgICAgICAgcmV0dXJuIElOVkFMSURfTUZOOwogICAg IH0KIAotICAgIG1mbiA9IGdldF9nZm4oZHAsIGdmbl94KCpnZm4pLCAmZ2ZudHlwZSk7CisgICAg bWZuID0gZ2V0X2dmbihkcCwgKmdmbiwgJmdmbnR5cGUpOwogICAgIGlmICggcDJtX2lzX3JlYWRv bmx5KGdmbnR5cGUpICYmIHRvYWRkciApCiAgICAgewogICAgICAgICBEQkdQMigia2RiOnAybV9p c19yZWFkb25seTogZ2ZudHlwZToleFxuIiwgZ2ZudHlwZSk7CkBAIC03MCw3ICs3MCw3IEBAIGRi Z19odm1fdmEybWZuKGRiZ3ZhX3QgdmFkZHIsIHN0cnVjdCBkb21haW4gKmRwLCBpbnQgdG9hZGRy LCBnZm5fdCAqZ2ZuKQogCiAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZBTElEX01GTikgKQogICAg IHsKLSAgICAgICAgcHV0X2dmbihkcCwgZ2ZuX3goKmdmbikpOworICAgICAgICBwdXRfZ2ZuKGRw LCAqZ2ZuKTsKICAgICAgICAgKmdmbiA9IElOVkFMSURfR0ZOOwogICAgIH0KIApAQCAtMTg5LDcg KzE4OSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZGJnX3J3X2d1ZXN0X21lbShzdHJ1Y3QgZG9t YWluICpkcCwgdm9pZCAqIF9fdXNlciBnYWRkciwKIAogICAgICAgICB1bm1hcF9kb21haW5fcGFn ZSh2YSk7CiAgICAgICAgIGlmICggIWdmbl9lcShnZm4sIElOVkFMSURfR0ZOKSApCi0gICAgICAg ICAgICBwdXRfZ2ZuKGRwLCBnZm5feChnZm4pKTsKKyAgICAgICAgICAgIHB1dF9nZm4oZHAsIGdm bik7CiAKICAgICAgICAgYWRkciArPSBwYWdlY250OwogICAgICAgICBidWYgKz0gcGFnZWNudDsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4u YwppbmRleCBiNGQ1OTQ4Li4zMjdjOTYxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWlu LmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCkBAIC02NzcsNyArNjc3LDcgQEAgaW50IGFy Y2hfZG9tYWluX3NvZnRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICBpbnQgcmV0ID0gMDsK ICAgICBzdHJ1Y3QgZG9tYWluICpvd25lcjsKICAgICBtZm5fdCBtZm47Ci0gICAgdW5zaWduZWQg bG9uZyBnZm47CisgICAgZ2ZuX3QgZ2ZuOwogICAgIHAybV90eXBlX3QgcDJtdDsKICAgICB1bnNp Z25lZCBpbnQgaTsKIApAQCAtNzExLDE5ICs3MTEsMTkgQEAgaW50IGFyY2hfZG9tYWluX3NvZnRf cmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICBBU1NFUlQoIG93bmVyID09IGQgKTsKIAogICAg IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwotICAgIGdmbiA9IG1mbl90b19nbWZuKGQsIG1mbl94 KG1mbikpOworICAgIGdmbiA9IF9nZm4obWZuX3RvX2dtZm4oZCwgbWZuX3gobWZuKSkpOwogCiAg ICAgLyoKICAgICAgKiBnZm4gPT0gSU5WQUxJRF9HRk4gaW5kaWNhdGVzIHRoYXQgdGhlIHNoYXJl ZF9pbmZvIHBhZ2Ugd2FzIG5ldmVyIG1hcHBlZAogICAgICAqIHRvIHRoZSBkb21haW4ncyBhZGRy ZXNzIHNwYWNlIGFuZCB0aGVyZSBpcyBub3RoaW5nIHRvIHJlcGxhY2UuCiAgICAgICovCi0gICAg aWYgKCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKKyAgICBpZiAoIGdmbl9lcShnZm4sIElO VkFMSURfR0ZOKSApCiAgICAgICAgIGdvdG8gZXhpdF9wdXRfcGFnZTsKIAogICAgIGlmICggIW1m bl9lcShnZXRfZ2ZuX3F1ZXJ5KGQsIGdmbiwgJnAybXQpLCBtZm4pICkKICAgICB7CiAgICAgICAg IHByaW50ayhYRU5MT0dfR19FUlIgIkZhaWxlZCB0byBnZXQgRG9tJWQncyBzaGFyZWRfaW5mbyBH Rk4gKCVseClcbiIsCi0gICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbik7CisgICAgICAg ICAgICAgICBkLT5kb21haW5faWQsIGdmbl94KGdmbikpOwogICAgICAgICByZXQgPSAtRUlOVkFM OwogICAgICAgICBnb3RvIGV4aXRfcHV0X2dmbjsKICAgICB9CkBAIC03MzIsMjYgKzczMiwyNSBA QCBpbnQgYXJjaF9kb21haW5fc29mdF9yZXNldChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGlmICgg IW5ld19wYWdlICkKICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkZhaWxlZCB0 byBhbGxvYyBhIHBhZ2UgdG8gcmVwbGFjZSIKLSAgICAgICAgICAgICAgICIgRG9tJWQncyBzaGFy ZWRfaW5mbyBmcmFtZSAlbHhcbiIsIGQtPmRvbWFpbl9pZCwgZ2ZuKTsKKyAgICAgICAgICAgICAg ICIgRG9tJWQncyBzaGFyZWRfaW5mbyBmcmFtZSAlbHhcbiIsIGQtPmRvbWFpbl9pZCwgZ2ZuX3go Z2ZuKSk7CiAgICAgICAgIHJldCA9IC1FTk9NRU07CiAgICAgICAgIGdvdG8gZXhpdF9wdXRfZ2Zu OwogICAgIH0KIAotICAgIHJldCA9IGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dmbihn Zm4pLCBtZm4sIFBBR0VfT1JERVJfNEspOworICAgIHJldCA9IGd1ZXN0X3BoeXNtYXBfcmVtb3Zl X3BhZ2UoZCwgZ2ZuLCBtZm4sIFBBR0VfT1JERVJfNEspOwogICAgIGlmICggcmV0ICkKICAgICB7 CiAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgIkZhaWxlZCB0byByZW1vdmUgRG9tJWQncyBz aGFyZWRfaW5mbyBmcmFtZSAlbHhcbiIsCi0gICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdm bik7CisgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbl94KGdmbikpOwogICAgICAgICBm cmVlX2RvbWhlYXBfcGFnZShuZXdfcGFnZSk7CiAgICAgICAgIGdvdG8gZXhpdF9wdXRfZ2ZuOwog ICAgIH0KIAotICAgIHJldCA9IGd1ZXN0X3BoeXNtYXBfYWRkX3BhZ2UoZCwgX2dmbihnZm4pLCBw YWdlX3RvX21mbihuZXdfcGFnZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ QUdFX09SREVSXzRLKTsKKyAgICByZXQgPSBndWVzdF9waHlzbWFwX2FkZF9wYWdlKGQsIGdmbiwg cGFnZV90b19tZm4obmV3X3BhZ2UpLCBQQUdFX09SREVSXzRLKTsKICAgICBpZiAoIHJldCApCiAg ICAgewogICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJGYWlsZWQgdG8gYWRkIGEgcGFnZSB0 byByZXBsYWNlIgotICAgICAgICAgICAgICAgIiBEb20lZCdzIHNoYXJlZF9pbmZvIGZyYW1lICVs eFxuIiwgZC0+ZG9tYWluX2lkLCBnZm4pOworICAgICAgICAgICAgICAgIiBEb20lZCdzIHNoYXJl ZF9pbmZvIGZyYW1lICVseFxuIiwgZC0+ZG9tYWluX2lkLCBnZm5feChnZm4pKTsKICAgICAgICAg ZnJlZV9kb21oZWFwX3BhZ2UobmV3X3BhZ2UpOwogICAgIH0KICBleGl0X3B1dF9nZm46CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKaW5k ZXggYWE4YWQxOS4uNjk0YjRkNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWN0bC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtMTI1MywxNSArMTI1MywxNSBAQCBsb25nIGFy Y2hfZG9fZG9tY3RsKAogICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfYnJva2VuX3BhZ2VfcDJtOgog ICAgIHsKICAgICAgICAgcDJtX3R5cGVfdCBwdDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBwZm4g PSBkb21jdGwtPnUuc2V0X2Jyb2tlbl9wYWdlX3AybS5wZm47Ci0gICAgICAgIG1mbl90IG1mbiA9 IGdldF9nZm5fcXVlcnkoZCwgcGZuLCAmcHQpOworICAgICAgICBnZm5fdCBnZm4gPSBfZ2ZuKGRv bWN0bC0+dS5zZXRfYnJva2VuX3BhZ2VfcDJtLnBmbik7CisgICAgICAgIG1mbl90IG1mbiA9IGdl dF9nZm5fcXVlcnkoZCwgZ2ZuLCAmcHQpOwogCiAgICAgICAgIGlmICggdW5saWtlbHkoIW1mbl92 YWxpZChtZm4pKSB8fCB1bmxpa2VseSghcDJtX2lzX3JhbShwdCkpICkKICAgICAgICAgICAgIHJl dCA9IC1FSU5WQUw7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldCA9IHAybV9jaGFuZ2Vf dHlwZV9vbmUoZCwgcGZuLCBwdCwgcDJtX3JhbV9icm9rZW4pOworICAgICAgICAgICAgcmV0ID0g cDJtX2NoYW5nZV90eXBlX29uZShkLCBnZm5feChnZm4pLCBwdCwgcDJtX3JhbV9icm9rZW4pOwog Ci0gICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBnZm4pOwogICAg ICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBi L3hlbi9hcmNoL3g4Ni9odm0vZG0uYwppbmRleCBkNmQwZThiLi45OTM4ZjRiIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL2RtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCkBAIC0y NjksMTQgKzI2OSwxNCBAQCBzdGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpk LAogCiAgICAgd2hpbGUgKCBpdGVyIDwgZGF0YS0+bnIgKQogICAgIHsKLSAgICAgICAgdW5zaWdu ZWQgbG9uZyBwZm4gPSBkYXRhLT5maXJzdF9wZm4gKyBpdGVyOworICAgICAgICBnZm5fdCBnZm4g PSBfZ2ZuKGRhdGEtPmZpcnN0X3BmbiArIGl0ZXIpOwogICAgICAgICBwMm1fdHlwZV90IHQ7CiAK LSAgICAgICAgZ2V0X2dmbl91bnNoYXJlKGQsIHBmbiwgJnQpOworICAgICAgICBnZXRfZ2ZuX3Vu c2hhcmUoZCwgZ2ZuLCAmdCk7CiAgICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCiAgICAg ICAgIHsKLSAgICAgICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKLSAgICAgICAgICAgIHAybV9tZW1f cGFnaW5nX3BvcHVsYXRlKGQsIHBmbik7CisgICAgICAgICAgICBwdXRfZ2ZuKGQsIGdmbik7Cisg ICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnZm5feChnZm4pKTsKICAgICAg ICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgICAgICB9CiAKQEAgLTI4NSw5ICsyODUsOSBAQCBz dGF0aWMgaW50IHNldF9tZW1fdHlwZShzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICBlbHNlIGlm ICggIWFsbG93X3AybV90eXBlX2NoYW5nZSh0LCBtZW10eXBlW21lbV90eXBlXSkgKQogICAgICAg ICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByYyA9IHAybV9j aGFuZ2VfdHlwZV9vbmUoZCwgcGZuLCB0LCBtZW10eXBlW21lbV90eXBlXSk7CisgICAgICAgICAg ICByYyA9IHAybV9jaGFuZ2VfdHlwZV9vbmUoZCwgZ2ZuX3goZ2ZuKSwgdCwgbWVtdHlwZVttZW1f dHlwZV0pOwogCi0gICAgICAgIHB1dF9nZm4oZCwgcGZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBn Zm4pOwogCiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j CmluZGV4IDJkMDJlZjEuLjEzMzViMmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11 bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCkBAIC0yNTUsMTMgKzI1NSwx MyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiAgICAgICAgICAqIHNvIHRoZSBkZXZpY2Ug bW9kZWwgc2lkZSBuZWVkcyB0byBjaGVjayB0aGUgaW5jb21pbmcgaW9yZXEgZXZlbnQuCiAgICAg ICAgICAqLwogICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcyA9IE5VTEw7Ci0gICAg ICAgIHAybV90eXBlX3QgcDJtdCA9IHAybV9pbnZhbGlkOwogCiAgICAgICAgIGlmICggaXNfbW1p byApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ21mbiA9IHBhZGRyX3Rv X3BmbihhZGRyKTsKKyAgICAgICAgICAgIHAybV90eXBlX3QgcDJtdCA9IHAybV9pbnZhbGlkOwor ICAgICAgICAgICAgZ2ZuX3QgZ2ZuID0gZ2FkZHJfdG9fZ2ZuKGFkZHIpOwogCi0gICAgICAgICAg ICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGN1cnJkLCBnbWZuLCAmcDJtdCk7CisgICAgICAgICAg ICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGN1cnJkLCBnZm4sICZwMm10KTsKIAogICAgICAgICAg ICAgaWYgKCBwMm10ID09IHAybV9pb3JlcV9zZXJ2ZXIgKQogICAgICAgICAgICAgewpAQCAtMTU5 MCw3ICsxNTkwLDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlcF9pbnMoCiAgICAgaWYgKCByYyAh PSBYODZFTVVMX09LQVkgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICAodm9pZCkgZ2V0X2dm bl9xdWVyeV91bmxvY2tlZChjdXJyZW50LT5kb21haW4sIGdwYSA+PiBQQUdFX1NISUZULCAmcDJt dCk7CisgICAgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChjdXJyZW50LT5kb21haW4sIGdhZGRyX3Rv X2dmbihncGEpLCAmcDJtdCk7CiAgICAgaWYgKCBwMm10ID09IHAybV9tbWlvX2RpcmVjdCB8fCBw Mm10ID09IHAybV9tbWlvX2RtICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxF OwogCkBAIC0xNjcxLDcgKzE2NzEsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX291dHMoCiAg ICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICAo dm9pZCkgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChjdXJyZW50LT5kb21haW4sIGdwYSA+PiBQQUdF X1NISUZULCAmcDJtdCk7CisgICAgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChjdXJyZW50LT5kb21h aW4sIGdhZGRyX3RvX2dmbihncGEpLCAmcDJtdCk7CiAgICAgaWYgKCBwMm10ID09IHAybV9tbWlv X2RpcmVjdCB8fCBwMm10ID09IHAybV9tbWlvX2RtICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxf VU5IQU5ETEVBQkxFOwogCkBAIC0xNzUwLDggKzE3NTAsOCBAQCBzdGF0aWMgaW50IGh2bWVtdWxf cmVwX21vdnMoCiAgICAgfQogCiAgICAgLyogQ2hlY2sgZm9yIE1NSU8gb3BzICovCi0gICAgKHZv aWQpIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoY3VycmVudC0+ZG9tYWluLCBzZ3BhID4+IFBBR0Vf U0hJRlQsICZzcDJtdCk7Ci0gICAgKHZvaWQpIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoY3VycmVu dC0+ZG9tYWluLCBkZ3BhID4+IFBBR0VfU0hJRlQsICZkcDJtdCk7CisgICAgZ2V0X2dmbl9xdWVy eV91bmxvY2tlZChjdXJyZW50LT5kb21haW4sIGdhZGRyX3RvX2dmbihzZ3BhKSwgJnNwMm10KTsK KyAgICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGN1cnJlbnQtPmRvbWFpbiwgZ2FkZHJfdG9fZ2Zu KGRncGEpLCAmZHAybXQpOwogCiAgICAgaWYgKCBzcDJtdCA9PSBwMm1fbW1pb19kaXJlY3QgfHwg ZHAybXQgPT0gcDJtX21taW9fZGlyZWN0IHx8CiAgICAgICAgICAoc3AybXQgPT0gcDJtX21taW9f ZG0gJiYgZHAybXQgPT0gcDJtX21taW9fZG0pICkKQEAgLTE4NzgsNyArMTg3OCw3IEBAIHN0YXRp YyBpbnQgaHZtZW11bF9yZXBfc3RvcygKICAgICB9CiAKICAgICAvKiBDaGVjayBmb3IgTU1JTyBv cCAqLwotICAgICh2b2lkKWdldF9nZm5fcXVlcnlfdW5sb2NrZWQoY3VycmVudC0+ZG9tYWluLCBn cGEgPj4gUEFHRV9TSElGVCwgJnAybXQpOworICAgIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoY3Vy cmVudC0+ZG9tYWluLCBnYWRkcl90b19nZm4oZ3BhKSwgJnAybXQpOwogCiAgICAgc3dpdGNoICgg cDJtdCApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9ncmFudF90YWJsZS5j IGIveGVuL2FyY2gveDg2L2h2bS9ncmFudF90YWJsZS5jCmluZGV4IGVjZDdkMDcuLjA0YTMxMDYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vYXJj aC94ODYvaHZtL2dyYW50X3RhYmxlLmMKQEAgLTUxLDcgKzUxLDcgQEAgaW50IGNyZWF0ZV9ncmFu dF9wMm1fbWFwcGluZyh1aW50NjRfdCBhZGRyLCBtZm5fdCBmcmFtZSwKIGludCByZXBsYWNlX2dy YW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIG1mbl90IGZyYW1lLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdWludDY0X3QgbmV3X2FkZHIsIHVuc2lnbmVkIGludCBmbGFncykK IHsKLSAgICB1bnNpZ25lZCBsb25nIGdmbiA9ICh1bnNpZ25lZCBsb25nKShhZGRyID4+IFBBR0Vf U0hJRlQpOworICAgIGdmbl90IGdmbiA9IGdhZGRyX3RvX2dmbihhZGRyKTsKICAgICBwMm1fdHlw ZV90IHR5cGU7CiAgICAgbWZuX3Qgb2xkX21mbjsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gY3Vy cmVudC0+ZG9tYWluOwpAQCAtNjgsNyArNjgsNyBAQCBpbnQgcmVwbGFjZV9ncmFudF9wMm1fbWFw cGluZyh1aW50NjRfdCBhZGRyLCBtZm5fdCBmcmFtZSwKICAgICAgICAgICAgICAgICAgdHlwZSwg bWZuX3gob2xkX21mbiksIG1mbl94KGZyYW1lKSk7CiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5l cmFsX2Vycm9yOwogICAgIH0KLSAgICBpZiAoIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwg X2dmbihnZm4pLCBmcmFtZSwgUEFHRV9PUkRFUl80SykgKQorICAgIGlmICggZ3Vlc3RfcGh5c21h cF9yZW1vdmVfcGFnZShkLCBnZm4sIGZyYW1lLCBQQUdFX09SREVSXzRLKSApCiAgICAgewogICAg ICAgICBwdXRfZ2ZuKGQsIGdmbik7CiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5lcmFsX2Vycm9y OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKaW5kZXggZGI2MGYyMy4uOTg3YzI2YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0xNjc5LDcgKzE2NzksNyBA QCB2b2lkIGh2bV9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiBp bnQgaHZtX2hhcF9uZXN0ZWRfcGFnZV9mYXVsdChwYWRkcl90IGdwYSwgdW5zaWduZWQgbG9uZyBn bGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbnBmZWMgbnBmZWMpCiB7 Ci0gICAgdW5zaWduZWQgbG9uZyBnZm4gPSBncGEgPj4gUEFHRV9TSElGVDsKKyAgICBnZm5fdCBn Zm4gPSBnYWRkcl90b19nZm4oZ3BhKTsKICAgICBwMm1fdHlwZV90IHAybXQ7CiAgICAgcDJtX2Fj Y2Vzc190IHAybWE7CiAgICAgbWZuX3QgbWZuOwpAQCAtMTcyOSw3ICsxNzI5LDcgQEAgaW50IGh2 bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFkZHJfdCBncGEsIHVuc2lnbmVkIGxvbmcgZ2xhLAog ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIGNhc2UgTkVTVEVESFZNX1BBR0VGQVVMVF9M MF9FUlJPUjoKICAgICAgICAgICAgIC8qIGdwYSBpcyBub3cgdHJhbnNsYXRlZCB0byBsMSBndWVz dCBhZGRyZXNzLCB1cGRhdGUgZ2ZuLiAqLwotICAgICAgICAgICAgZ2ZuID0gZ3BhID4+IFBBR0Vf U0hJRlQ7CisgICAgICAgICAgICBnZm4gPSBnYWRkcl90b19nZm4oZ3BhKTsKICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgxNyw3ICsxODE3LDcgQEAgaW50IGh2bV9o YXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFkZHJfdCBncGEsIHVuc2lnbmVkIGxvbmcgZ2xhLAogICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgIGJvb2xfdCBzdmU7CiAKLSAgICAgICAgICAgICAg ICBwMm0tPmdldF9lbnRyeShwMm0sIF9nZm4oZ2ZuKSwgJnAybXQsICZwMm1hLCAwLCBOVUxMLCAm c3ZlKTsKKyAgICAgICAgICAgICAgICBwMm0tPmdldF9lbnRyeShwMm0sIGdmbiwgJnAybXQsICZw Mm1hLCAwLCBOVUxMLCAmc3ZlKTsKIAogICAgICAgICAgICAgICAgIGlmICggIXN2ZSAmJiBhbHRw Mm1fdmNwdV9lbXVsYXRlX3ZlKGN1cnIpICkKICAgICAgICAgICAgICAgICB7CkBAIC0xODYyLDcg KzE4NjIsNyBAQCBpbnQgaHZtX2hhcF9uZXN0ZWRfcGFnZV9mYXVsdChwYWRkcl90IGdwYSwgdW5z aWduZWQgbG9uZyBnbGEsCiAgICAgewogICAgICAgICBBU1NFUlQocDJtX2lzX2hvc3RwMm0ocDJt KSk7CiAgICAgICAgIHNoYXJpbmdfZW5vbWVtID0gCi0gICAgICAgICAgICAobWVtX3NoYXJpbmdf dW5zaGFyZV9wYWdlKGN1cnJkLCBnZm4sIDApIDwgMCk7CisgICAgICAgICAgICAobWVtX3NoYXJp bmdfdW5zaGFyZV9wYWdlKGN1cnJkLCBnZm5feChnZm4pLCAwKSA8IDApOwogICAgICAgICByYyA9 IDE7CiAgICAgICAgIGdvdG8gb3V0X3B1dF9nZm47CiAgICAgfQpAQCAtMTg3OCw3ICsxODc4LDcg QEAgaW50IGh2bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQocGFkZHJfdCBncGEsIHVuc2lnbmVkIGxv bmcgZ2xhLAogICAgICAgICAgKi8KICAgICAgICAgaWYgKCBucGZlYy53cml0ZV9hY2Nlc3MgKQog ICAgICAgICB7Ci0gICAgICAgICAgICBwYWdpbmdfbWFya19wZm5fZGlydHkoY3VycmQsIF9wZm4o Z2ZuKSk7CisgICAgICAgICAgICBwYWdpbmdfbWFya19wZm5fZGlydHkoY3VycmQsIF9wZm4oZ2Zu X3goZ2ZuKSkpOwogICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAqIElmIHAybSBpcyByZWFs bHkgYW4gYWx0cDJtLCB1bmxvY2sgaXQgYmVmb3JlIGNoYW5naW5nIHRoZSB0eXBlLAogICAgICAg ICAgICAgICogYXMgcDJtX2FsdHAybV9wcm9wYWdhdGVfY2hhbmdlKCkgbmVlZHMgdG8gYWNxdWly ZSB0aGUKQEAgLTE4ODYsNyArMTg4Niw3IEBAIGludCBodm1faGFwX25lc3RlZF9wYWdlX2ZhdWx0 KHBhZGRyX3QgZ3BhLCB1bnNpZ25lZCBsb25nIGdsYSwKICAgICAgICAgICAgICAqLwogICAgICAg ICAgICAgaWYgKCBwMm0gIT0gaG9zdHAybSApCiAgICAgICAgICAgICAgICAgX19wdXRfZ2ZuKHAy bSwgZ2ZuKTsKLSAgICAgICAgICAgIHAybV9jaGFuZ2VfdHlwZV9vbmUoY3VycmQsIGdmbiwgcDJt X3JhbV9sb2dkaXJ0eSwgcDJtX3JhbV9ydyk7CisgICAgICAgICAgICBwMm1fY2hhbmdlX3R5cGVf b25lKGN1cnJkLCBnZm5feChnZm4pLCBwMm1fcmFtX2xvZ2RpcnR5LCBwMm1fcmFtX3J3KTsKICAg ICAgICAgICAgIF9fcHV0X2dmbihob3N0cDJtLCBnZm4pOwogCiAgICAgICAgICAgICBnb3RvIG91 dDsKQEAgLTE5MTYsMTYgKzE5MTYsMTYgQEAgaW50IGh2bV9oYXBfbmVzdGVkX3BhZ2VfZmF1bHQo cGFkZHJfdCBncGEsIHVuc2lnbmVkIGxvbmcgZ2xhLAogICAgICAqIHNsZWVwIG9uIGV2ZW50IHJp bmcgd2FpdCBxdWV1ZXMsIGFuZCB3ZSBtdXN0IG5vdCBob2xkCiAgICAgICogbG9ja3MgaW4gc3Vj aCBjaXJjdW1zdGFuY2UgKi8KICAgICBpZiAoIHBhZ2VkICkKLSAgICAgICAgcDJtX21lbV9wYWdp bmdfcG9wdWxhdGUoY3VycmQsIGdmbik7CisgICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRl KGN1cnJkLCBnZm5feChnZm4pKTsKICAgICBpZiAoIHNoYXJpbmdfZW5vbWVtICkKICAgICB7CiAg ICAgICAgIGludCBydjsKIAotICAgICAgICBpZiAoIChydiA9IG1lbV9zaGFyaW5nX25vdGlmeV9l bm9tZW0oY3VycmQsIGdmbiwgdHJ1ZSkpIDwgMCApCisgICAgICAgIGlmICggKHJ2ID0gbWVtX3No YXJpbmdfbm90aWZ5X2Vub21lbShjdXJyZCwgZ2ZuX3goZ2ZuKSwgdHJ1ZSkpIDwgMCApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJEb21haW4gJWh1IGF0dGVt cHQgdG8gdW5zaGFyZSAiCiAgICAgICAgICAgICAgICAgICAgICAiZ2ZuICVseCwgRU5PTUVNIGFu ZCBubyBoZWxwZXIgKHJjICVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgIGN1cnJkLT5kb21h aW5faWQsIGdmbiwgcnYpOworICAgICAgICAgICAgICAgICAgICAgY3VycmQtPmRvbWFpbl9pZCwg Z2ZuX3goZ2ZuKSwgcnYpOwogICAgICAgICAgICAgLyogQ3Jhc2ggdGhlIGRvbWFpbiAqLwogICAg ICAgICAgICAgcmMgPSAwOwogICAgICAgICB9CkBAIC00NjAxLDggKzQ2MDEsOSBAQCBzdGF0aWMg aW50IGRvX2FsdHAybV9vcCgKICAgICAgICAgdiA9IGQtPnZjcHVbYS51LmVuYWJsZV9ub3RpZnku dmNwdV9pZF07CiAKICAgICAgICAgaWYgKCAhZ2ZuX2VxKHZjcHVfYWx0cDJtKHYpLnZlaW5mb19n Zm4sIElOVkFMSURfR0ZOKSB8fAotICAgICAgICAgICAgIG1mbl9lcShnZXRfZ2ZuX3F1ZXJ5X3Vu bG9ja2VkKHYtPmRvbWFpbiwKLSAgICAgICAgICAgICAgICAgICAgYS51LmVuYWJsZV9ub3RpZnku Z2ZuLCAmcDJtdCksIElOVkFMSURfTUZOKSApCisgICAgICAgICAgICAgbWZuX2VxKGdldF9nZm5f cXVlcnlfdW5sb2NrZWQoCisgICAgICAgICAgICAgICAgICAgICAgICB2LT5kb21haW4sIF9nZm4o YS51LmVuYWJsZV9ub3RpZnkuZ2ZuKSwgJnAybXQpLAorICAgICAgICAgICAgICAgICAgICBJTlZB TElEX01GTikgKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAg ICAgICBicmVhazsKQEAgLTQ4NjYsNyArNDg2Nyw3IEBAIHN0YXRpYyBpbnQgaHZtb3BfZ2V0X21l bV90eXBlKAogICAgICAqIHR5cGUsIG5vdCBpbiBhbGxvY2F0aW5nIG9yIHVuc2hhcmluZy4gVGhh dCdsbCBoYXBwZW4KICAgICAgKiBvbiBhY2Nlc3MuCiAgICAgICovCi0gICAgZ2V0X2dmbl9xdWVy eV91bmxvY2tlZChkLCBhLnBmbiwgJnQpOworICAgIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwg X2dmbihhLnBmbiksICZ0KTsKICAgICBpZiAoIHAybV9pc19tbWlvKHQpICkKICAgICAgICAgYS5t ZW1fdHlwZSA9ICBIVk1NRU1fbW1pb19kbTsKICAgICBlbHNlIGlmICggdCA9PSBwMm1faW9yZXFf c2VydmVyICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jIGIveGVuL2FyY2gv eDg2L2h2bS9tdHJyLmMKaW5kZXggYjhmYTM0MC4uZjU1M2U0ZCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9tdHJyLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAgLTM2Niw3 ICszNjYsNyBAQCB1aW50MzJfdCBnZXRfcGF0X2ZsYWdzKHN0cnVjdCB2Y3B1ICp2LAogICAgIHsK ICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKICAgICAgICAgcDJtX3R5cGVf dCBwMm10OwotICAgICAgICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIHBhZGRyX3RvX3Bmbihn cGFkZHIpLCAmcDJtdCk7CisgICAgICAgIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZ2FkZHJf dG9fZ2ZuKGdwYWRkciksICZwMm10KTsKICAgICAgICAgaWYgKHAybV9pc19yYW0ocDJtdCkpCiAg ICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAg IkNvbmZsaWN0IG9jY3VycyBmb3IgYSBnaXZlbiBndWVzdCBsMWUgZmxhZ3M6JXggIgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9z dm0uYwppbmRleCBiOWE4OTAwLi40NmY5ODkzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMTc2Miw3ICsx NzYyLDcgQEAgc3RhdGljIHZvaWQgc3ZtX2RvX25lc3RlZF9wZ2ZhdWx0KHN0cnVjdCB2Y3B1ICp2 LAogICAgIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1aW50NjRfdCBwZmVjLCBwYWRkcl90 IGdwYSkKIHsKICAgICBpbnQgcmV0OwotICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gZ3BhID4+IFBB R0VfU0hJRlQ7CisgICAgZ2ZuX3QgZ2ZuID0gZ2FkZHJfdG9fZ2ZuKGdwYSk7CiAgICAgbWZuX3Qg bWZuOwogICAgIHAybV90eXBlX3QgcDJtdDsKICAgICBwMm1fYWNjZXNzX3QgcDJtYTsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgv dm14LmMKaW5kZXggMzY1ZWViMi4uYjUzNzBkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKQEAgLTIxOTksNyAr MjE5OSw4IEBAIHN0YXRpYyB2b2lkIHZteF92Y3B1X3VwZGF0ZV92bWZ1bmNfdmUoc3RydWN0IHZj cHUgKnYpCiAgICAgICAgICAgICBwMm1fdHlwZV90IHQ7CiAgICAgICAgICAgICBtZm5fdCBtZm47 CiAKLSAgICAgICAgICAgIG1mbiA9IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZ2ZuX3godmNw dV9hbHRwMm0odikudmVpbmZvX2dmbiksICZ0KTsKKyAgICAgICAgICAgIC8qIFRPRE86IFRoaXMg aXMgYSBzZWN1cml0eSBpc3N1ZS4uLiAqLworICAgICAgICAgICAgbWZuID0gZ2V0X2dmbl9xdWVy eV91bmxvY2tlZChkLCB2Y3B1X2FsdHAybSh2KS52ZWluZm9fZ2ZuLCAmdCk7CiAKICAgICAgICAg ICAgIGlmICggIW1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApCiAgICAgICAgICAgICB7CkBAIC0z MzI4LDcgKzMzMjksNyBAQCBzdGF0aWMgdm9pZCBlcHRfaGFuZGxlX3Zpb2xhdGlvbihlcHRfcXVh bF90IHEsIHBhZGRyX3QgZ3BhKQogCiAgICAgICAgIF9kLmdwYSA9IGdwYTsKICAgICAgICAgX2Qu cXVhbGlmaWNhdGlvbiA9IHEucmF3OwotICAgICAgICBfZC5tZm4gPSBtZm5feChnZXRfZ2ZuX3F1 ZXJ5X3VubG9ja2VkKGQsIGdmbiwgJl9kLnAybXQpKTsKKyAgICAgICAgX2QubWZuID0gbWZuX3go Z2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBfZ2ZuKGdmbiksICZfZC5wMm10KSk7CiAKICAgICAg ICAgX190cmFjZV92YXIoVFJDX0hWTV9OUEYsIDAsIHNpemVvZihfZCksICZfZCk7CiAgICAgfQpA QCAtMzM1OCw3ICszMzU5LDcgQEAgc3RhdGljIHZvaWQgZXB0X2hhbmRsZV92aW9sYXRpb24oZXB0 X3F1YWxfdCBxLCBwYWRkcl90IGdwYSkKICAgICB9CiAKICAgICAvKiBFdmVyeXRoaW5nIGVsc2Ug aXMgYW4gZXJyb3IuICovCi0gICAgbWZuID0gZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBnZm4s ICZwMm10KTsKKyAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIF9nZm4oZ2ZuKSwg JnAybXQpOwogICAgIGdwcmludGsoWEVOTE9HX0VSUiwKICAgICAgICAgICAgICJFUFQgdmlvbGF0 aW9uICUjbHggKCVjJWMlYy8lYyVjJWMpIGdwYSAlIyJQUklwYWRkciIgbWZuICUjbHggdHlwZSAl aVxuIiwKICAgICAgICAgICAgIHEucmF3LApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMg Yi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAyOGEwMDMwLi5jM2M3NjI4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNDM2NCwxMSArNDM2 NCwxMSBAQCBpbnQgeGVubWVtX2FkZF90b19waHlzbWFwX29uZSgKICAgICAgICAgICAgIHAybV90 eXBlX3QgcDJtdDsKIAogICAgICAgICAgICAgZ2ZuID0gaWR4OwotICAgICAgICAgICAgbWZuID0g Z2V0X2dmbl91bnNoYXJlKGQsIGdmbiwgJnAybXQpOworICAgICAgICAgICAgbWZuID0gZ2V0X2dm bl91bnNoYXJlKGQsIF9nZm4oZ2ZuKSwgJnAybXQpOwogICAgICAgICAgICAgLyogSWYgdGhlIHBh Z2UgaXMgc3RpbGwgc2hhcmVkLCBleGl0IGVhcmx5ICovCiAgICAgICAgICAgICBpZiAoIHAybV9p c19zaGFyZWQocDJtdCkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHB1dF9nZm4o ZCwgZ2ZuKTsKKyAgICAgICAgICAgICAgICBwdXRfZ2ZuKGQsIF9nZm4oZ2ZuKSk7CiAgICAgICAg ICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwYWdl ID0gZ2V0X3BhZ2VfZnJvbV9tZm4obWZuLCBkKTsKQEAgLTQzODksNyArNDM4OSw3IEBAIGludCB4 ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAogICAgIH0KIAogICAgIC8qIFJlbW92ZSBwcmV2aW91 c2x5IG1hcHBlZCBwYWdlIGlmIGl0IHdhcyBwcmVzZW50LiAqLwotICAgIHByZXZfbWZuID0gbWZu X3goZ2V0X2dmbihkLCBnZm5feChncGZuKSwgJnAybXQpKTsKKyAgICBwcmV2X21mbiA9IG1mbl94 KGdldF9nZm4oZCwgZ3BmbiwgJnAybXQpKTsKICAgICBpZiAoIG1mbl92YWxpZChfbWZuKHByZXZf bWZuKSkgKQogICAgIHsKICAgICAgICAgaWYgKCBpc194ZW5faGVhcF9tZm4ocHJldl9tZm4pICkK QEAgLTQ0MDAsNyArNDQwMCw3IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAogICAg ICAgICAgICAgcmMgPSBndWVzdF9yZW1vdmVfcGFnZShkLCBnZm5feChncGZuKSk7CiAgICAgfQog ICAgIC8qIEluIHRoZSBYRU5NQVBTUEFDRV9nbWZuIGNhc2Ugd2Ugc3RpbGwgaG9sZCBhIHJlZiBv biB0aGUgb2xkIHBhZ2UuICovCi0gICAgcHV0X2dmbihkLCBnZm5feChncGZuKSk7CisgICAgcHV0 X2dmbihkLCBncGZuKTsKIAogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIHB1dF9ib3RoOwpA QCAtNDQyMyw3ICs0NDIzLDcgQEAgaW50IHhlbm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCiAgcHV0 X2JvdGg6CiAgICAgLyogSW4gdGhlIFhFTk1BUFNQQUNFX2dtZm4gY2FzZSwgd2UgdG9vayBhIHJl ZiBvZiB0aGUgZ2ZuIGF0IHRoZSB0b3AuICovCiAgICAgaWYgKCBzcGFjZSA9PSBYRU5NQVBTUEFD RV9nbWZuICkKLSAgICAgICAgcHV0X2dmbihkLCBnZm4pOworICAgICAgICBwdXRfZ2ZuKGQsIF9n Zm4oZ2ZuKSk7CiAKICAgICBpZiAoIHBhZ2UgKQogICAgICAgICBwdXRfcGFnZShwYWdlKTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFw L2hhcC5jCmluZGV4IDNkNjUxYjkuLjBhYzdkMTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpAQCAtNjgxLDcgKzY4 MSw3IEBAIGhhcF9wYWdpbmdfZ2V0X21vZGUoc3RydWN0IHZjcHUgKnYpCiBzdGF0aWMgdm9pZCBo YXBfdXBkYXRlX3BhZ2luZ19tb2RlcyhzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBzdHJ1Y3QgZG9t YWluICpkID0gdi0+ZG9tYWluOwotICAgIHVuc2lnbmVkIGxvbmcgY3IzX2dmbiA9IHYtPmFyY2gu aHZtLmd1ZXN0X2NyWzNdID4+IFBBR0VfU0hJRlQ7CisgICAgZ2ZuX3QgY3IzX2dmbiA9IGdhZGRy X3RvX2dmbih2LT5hcmNoLmh2bS5ndWVzdF9jclszXSk7CiAgICAgcDJtX3R5cGVfdCB0OwogCiAg ICAgLyogV2UgaG9sZCBvbnRvIHRoZSBjcjMgYXMgaXQgbWF5IGJlIG1vZGlmaWVkIGxhdGVyLCBh bmQKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvbmVzdGVkX2hhcC5jIGIveGVuL2Fy Y2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMKaW5kZXggZDJhMDdhNS4uZDgzYzQzNiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL2hhcC9uZXN0ZWRfaGFwLmMKKysrIGIveGVuL2FyY2gveDg2 L21tL2hhcC9uZXN0ZWRfaGFwLmMKQEAgLTE1MCwxMiArMTUwLDEyIEBAIG5lc3RlZGhhcF93YWxr X0wwX3AybShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBwYWRkcl90IEwxX2dwYSwgcGFkZHJfdCAq TDBfZ3BhLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcGFnZV9vcmRlciwK ICAgICAgICAgICAgICAgICAgICAgICBib29sX3QgYWNjZXNzX3IsIGJvb2xfdCBhY2Nlc3Nfdywg Ym9vbF90IGFjY2Vzc194KQogeworICAgIGdmbl90IGwxX2dmbiA9IGdhZGRyX3RvX2dmbihMMV9n cGEpOwogICAgIG1mbl90IG1mbjsKICAgICBpbnQgcmM7CiAKICAgICAvKiB3YWxrIEwwIFAyTSB0 YWJsZSAqLwotICAgIG1mbiA9IGdldF9nZm5fdHlwZV9hY2Nlc3MocDJtLCBMMV9ncGEgPj4gUEFH RV9TSElGVCwgcDJtdCwgcDJtYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIHBh Z2Vfb3JkZXIpOworICAgIG1mbiA9IGdldF9nZm5fdHlwZV9hY2Nlc3MocDJtLCBsMV9nZm4sIHAy bXQsIHAybWEsIDAsIHBhZ2Vfb3JkZXIpOwogCiAgICAgcmMgPSBORVNURURIVk1fUEFHRUZBVUxU X0RJUkVDVF9NTUlPOwogICAgIGlmICggKnAybXQgPT0gcDJtX21taW9fZGlyZWN0ICkKQEAgLTE3 OCw3ICsxNzgsNyBAQCBuZXN0ZWRoYXBfd2Fsa19MMF9wMm0oc3RydWN0IHAybV9kb21haW4gKnAy bSwgcGFkZHJfdCBMMV9ncGEsIHBhZGRyX3QgKkwwX2dwYSwKIGRpcmVjdF9tbWlvX291dDoKICAg ICAqTDBfZ3BhID0gKG1mbl94KG1mbikgPDwgUEFHRV9TSElGVCkgKyAoTDFfZ3BhICYgflBBR0Vf TUFTSyk7CiBvdXQ6Ci0gICAgX19wdXRfZ2ZuKHAybSwgTDFfZ3BhID4+IFBBR0VfU0hJRlQpOwor ICAgIF9fcHV0X2dmbihwMm0sIGwxX2dmbik7CiAgICAgcmV0dXJuIHJjOwogfQogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jIGIveGVuL2FyY2gveDg2L21tL21lbV9h Y2Nlc3MuYwppbmRleCAzMGMyZjFhLi5jYWEzM2MzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv bW0vbWVtX2FjY2Vzcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNjZXNzLmMKQEAgLTI2 Myw3ICsyNjMsNiBAQCBpbnQgcDJtX3NldF9hbHRwMm1fbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgcDJtX2RvbWFpbiAqaHAybSwKICAgICBwMm1fdHlwZV90IHQ7CiAgICAgcDJt X2FjY2Vzc190IG9sZF9hOwogICAgIHVuc2lnbmVkIGludCBwYWdlX29yZGVyOwotICAgIHVuc2ln bmVkIGxvbmcgZ2ZuX2wgPSBnZm5feChnZm4pOwogICAgIGludCByYzsKIAogICAgIG1mbiA9IGFw Mm0tPmdldF9lbnRyeShhcDJtLCBnZm4sICZ0LCAmb2xkX2EsIDAsIE5VTEwsIE5VTEwpOwpAQCAt MjcyLDcgKzI3MSw3IEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1fYWNjZXNzKHN0cnVjdCBkb21h aW4gKmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAogICAgIGlmICggIW1mbl92YWxpZChtZm4p ICkKICAgICB7CiAKLSAgICAgICAgbWZuID0gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdm bl9sLCAmdCwgJm9sZF9hLAorICAgICAgICBtZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MoaHAy bSwgZ2ZuLCAmdCwgJm9sZF9hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUsICZwYWdlX29yZGVyLCAwKTsKIAogICAgICAgICByYyA9 IC1FU1JDSDsKQEAgLTI4Myw3ICsyODIsNyBAQCBpbnQgcDJtX3NldF9hbHRwMm1fbWVtX2FjY2Vz cyhzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcDJtX2RvbWFpbiAqaHAybSwKICAgICAgICAgaWYg KCBwYWdlX29yZGVyICE9IFBBR0VfT1JERVJfNEsgKQogICAgICAgICB7CiAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIG1hc2sgPSB+KCgxVUwgPDwgcGFnZV9vcmRlcikgLSAxKTsKLSAgICAgICAg ICAgIGdmbl90IGdmbjIgPSBfZ2ZuKGdmbl9sICYgbWFzayk7CisgICAgICAgICAgICBnZm5fdCBn Zm4yID0gX2dmbihnZm5feChnZm4pICYgbWFzayk7CiAgICAgICAgICAgICBtZm5fdCBtZm4yID0g X21mbihtZm5feChtZm4pICYgbWFzayk7CiAKICAgICAgICAgICAgIHJjID0gYXAybS0+c2V0X2Vu dHJ5KGFwMm0sIGdmbjIsIG1mbjIsIHBhZ2Vfb3JkZXIsIHQsIG9sZF9hLCAxKTsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jIGIveGVuL2FyY2gveDg2L21tL21lbV9z aGFyaW5nLmMKaW5kZXggNTczZDM1NC4uN2YyYmY4MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L21tL21lbV9zaGFyaW5nLmMKKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKQEAg LTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgaW50IGF1ZGl0KHZvaWQpCiAgICAgICAgICAgICAgICAg ZXJyb3JzKys7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICBvX21mbiA9IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZy0+Z2ZuLCAmdCk7IAor ICAgICAgICAgICAgb19tZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIF9nZm4oZy0+Z2Zu KSwgJnQpOwogICAgICAgICAgICAgaWYgKCAhbWZuX2VxKG9fbWZuLCBtZm4pICkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICBNRU1fU0hBUklOR19ERUJVRygiSW5jb3JyZWN0IFAyTSBm b3IgZD0laHUsIFBGTj0lbHguIgpAQCAtNzMyLDEyICs3MzIsMTIgQEAgc3RhdGljIGludCBkZWJ1 Z19nZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuKQogICAgIG1mbl90IG1mbjsKICAgICBp bnQgbnVtX3JlZnM7CiAKLSAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5KGQsIGdmbl94KGdmbiksICZw Mm10KTsKKyAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5KGQsIGdmbiwgJnAybXQpOwogCiAgICAgTUVN X1NIQVJJTkdfREVCVUcoIkRlYnVnIGZvciBkb20lZCwgZ2ZuPSUiIFBSSV9nZm4gIlxuIiwgCiAg ICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm5feChnZm4pKTsKICAgICBudW1f cmVmcyA9IGRlYnVnX21mbihtZm4pOwotICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7CisgICAg cHV0X2dmbihkLCBnZm4pOwogCiAgICAgcmV0dXJuIG51bV9yZWZzOwogfQpAQCAtNzc1LDcgKzc3 NSw3IEBAIHN0YXRpYyBpbnQgbm9taW5hdGVfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBn Zm4sCiAKICAgICAqcGhhbmRsZSA9IDBVTDsKIAotICAgIG1mbiA9IGdldF9nZm5fdHlwZV9hY2Nl c3MoaHAybSwgZ2ZuX3goZ2ZuKSwgJnAybXQsICZwMm1hLCAwLCBOVUxMKTsKKyAgICBtZm4gPSBn ZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdmbiwgJnAybXQsICZwMm1hLCAwLCBOVUxMKTsKIAog ICAgIC8qIENoZWNrIGlmIG1mbiBpcyB2YWxpZCAqLwogICAgIHJldCA9IC1FSU5WQUw7CkBAIC04 MjAsNyArODIwLDcgQEAgc3RhdGljIGludCBub21pbmF0ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQs IGdmbl90IGdmbiwKICAgICAgICAgICAgIGlmICggIWFwMm0gKQogICAgICAgICAgICAgICAgIGNv bnRpbnVlOwogCi0gICAgICAgICAgICBhbWZuID0gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGFwMm0s IGdmbl94KGdmbiksICZhcDJtdCwgJmFwMm1hLAorICAgICAgICAgICAgYW1mbiA9IF9fZ2V0X2dm bl90eXBlX2FjY2VzcyhhcDJtLCBnZm4sICZhcDJtdCwgJmFwMm1hLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBOVUxMLCBmYWxzZSk7CiAgICAgICAgICAgICBp ZiAoIG1mbl92YWxpZChhbWZuKSAmJiAoIW1mbl9lcShhbWZuLCBtZm4pIHx8IGFwMm1hICE9IHAy bWEpICkKICAgICAgICAgICAgIHsKQEAgLTg4NSw3ICs4ODUsNyBAQCBzdGF0aWMgaW50IG5vbWlu YXRlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLAogICAgIHJldCA9IDA7CiAKIG91 dDoKLSAgICBwdXRfZ2ZuKGQsIGdmbl94KGdmbikpOworICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAg ICByZXR1cm4gcmV0OwogfQogCkBAIC0xMTI0LDExICsxMTI0LDExIEBAIGludCBfX21lbV9zaGFy aW5nX3Vuc2hhcmVfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIGludCBsYXN0X2dmbjsKICAg ICBnZm5faW5mb190ICpnZm5faW5mbyA9IE5VTEw7CiAgICAKLSAgICBtZm4gPSBnZXRfZ2ZuKGQs IGdmbiwgJnAybXQpOworICAgIG1mbiA9IGdldF9nZm4oZCwgX2dmbihnZm4pLCAmcDJtdCk7CiAg ICAgCiAgICAgLyogSGFzIHNvbWVvbmUgYWxyZWFkeSB1bnNoYXJlZCBpdD8gKi8KICAgICBpZiAo ICFwMm1faXNfc2hhcmVkKHAybXQpICkgewotICAgICAgICBwdXRfZ2ZuKGQsIGdmbik7CisgICAg ICAgIHB1dF9nZm4oZCwgX2dmbihnZm4pKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBA IC0xMTc1LDcgKzExNzUsNyBAQCBpbnQgX19tZW1fc2hhcmluZ191bnNoYXJlX3BhZ2Uoc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAhZ2V0X3BhZ2UocGFnZSwg ZCkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKKyAg ICAgICAgICAgICAgICBwdXRfZ2ZuKGQsIF9nZm4oZ2ZuKSk7CiAgICAgICAgICAgICAgICAgZG9t YWluX2NyYXNoKGQpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRU9WRVJGTE9XOwogICAgICAg ICAgICAgfQpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgaW50IF9fbWVtX3NoYXJpbmdfdW5zaGFyZV9w YWdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAg ICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKICAgICAgICAgfQotICAgICAgICBwdXRfZ2ZuKGQs IGdmbik7CisgICAgICAgIHB1dF9nZm4oZCwgX2dmbihnZm4pKTsKIAogICAgICAgICByZXR1cm4g MDsKICAgICB9CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBpbnQgX19tZW1fc2hhcmluZ191bnNoYXJl X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgLyogVW5kbyBkZWMgb2YgbnJfc2F2ZWRf bWZucywgYXMgdGhlIHJldHJ5IHdpbGwgZGVjcmVhc2UgYWdhaW4uICovCiAgICAgICAgIGF0b21p Y19pbmMoJm5yX3NhdmVkX21mbnMpOwogICAgICAgICBtZW1fc2hhcmluZ19wYWdlX3VubG9jayhv bGRfcGFnZSk7Ci0gICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBf Z2ZuKGdmbikpOwogICAgICAgICAvKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHBsYWNpbmcg YW4gZXZlbnQKICAgICAgICAgICogaW4gdGhlIHJpbmcgKi8KICAgICAgICAgcmV0dXJuIC1FTk9N RU07CkBAIC0xMjMwLDcgKzEyMzAsNyBAQCBpbnQgX19tZW1fc2hhcmluZ191bnNoYXJlX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwKICAgICAgKiBtYXJraW5nIGRpcnR5IGlzIGZlYXNpYmxlICovCiAg ICAgcGFnaW5nX21hcmtfZGlydHkoZCwgcGFnZV90b19tZm4ocGFnZSkpOwogICAgIC8qIFdlIGRv IG5vdCBuZWVkIHRvIHVubG9jayBhIHByaXZhdGUgcGFnZSAqLwotICAgIHB1dF9nZm4oZCwgZ2Zu KTsKKyAgICBwdXRfZ2ZuKGQsIF9nZm4oZ2ZuKSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRl eCBmNTJhNzFlLi4xOWIzODNmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysr IGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC00MDksMTIgKzQwOSwxMSBAQCB2b2lkIHAybV91 bmxvY2tfYW5kX3RsYl9mbHVzaChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtKQogICAgICAgICBtbV93 cml0ZV91bmxvY2soJnAybS0+bG9jayk7CiB9CiAKLW1mbl90IF9fZ2V0X2dmbl90eXBlX2FjY2Vz cyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLAorbWZuX3QgX19n ZXRfZ2ZuX3R5cGVfYWNjZXNzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwKICAg ICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCAqdCwgcDJtX2FjY2Vzc190ICphLCBwMm1fcXVl cnlfdCBxLAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnBhZ2Vfb3JkZXIsIGJv b2xfdCBsb2NrZWQpCiB7CiAgICAgbWZuX3QgbWZuOwotICAgIGdmbl90IGdmbiA9IF9nZm4oZ2Zu X2wpOwogCiAgICAgLyogVW5zaGFyZSBtYWtlcyBubyBzZW5zZSB3aXRodW90IHBvcHVsYXRlLiAq LwogICAgIGlmICggcSAmIFAyTV9VTlNIQVJFICkKQEAgLTQyNSw3ICs0MjQsNyBAQCBtZm5fdCBf X2dldF9nZm5fdHlwZV9hY2Nlc3Moc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9u ZyBnZm5fbCwKICAgICAgICAgLyogTm90IG5lY2Vzc2FyaWx5IHRydWUsIGJ1dCBmb3Igbm9uLXRy YW5zbGF0ZWQgZ3Vlc3RzLCB3ZSBjbGFpbQogICAgICAgICAgKiBpdCdzIHRoZSBtb3N0IGdlbmVy aWMga2luZCBvZiBtZW1vcnkgKi8KICAgICAgICAgKnQgPSBwMm1fcmFtX3J3OwotICAgICAgICBy ZXR1cm4gX21mbihnZm5fbCk7CisgICAgICAgIHJldHVybiBfbWZuKGdmbl94KGdmbikpOwogICAg IH0KIAogICAgIGlmICggbG9ja2VkICkKQEAgLTQzOSw4ICs0MzgsOCBAQCBtZm5fdCBfX2dldF9n Zm5fdHlwZV9hY2Nlc3Moc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm5f bCwKICAgICAgICAgQVNTRVJUKHAybV9pc19ob3N0cDJtKHAybSkpOwogICAgICAgICAvKiBUcnkg dG8gdW5zaGFyZS4gSWYgd2UgZmFpbCwgY29tbXVuaWNhdGUgRU5PTUVNIHdpdGhvdXQKICAgICAg ICAgICogc2xlZXBpbmcuICovCi0gICAgICAgIGlmICggbWVtX3NoYXJpbmdfdW5zaGFyZV9wYWdl KHAybS0+ZG9tYWluLCBnZm5fbCwgMCkgPCAwICkKLSAgICAgICAgICAgIG1lbV9zaGFyaW5nX25v dGlmeV9lbm9tZW0ocDJtLT5kb21haW4sIGdmbl9sLCBmYWxzZSk7CisgICAgICAgIGlmICggbWVt X3NoYXJpbmdfdW5zaGFyZV9wYWdlKHAybS0+ZG9tYWluLCBnZm5feChnZm4pLCAwKSA8IDAgKQor ICAgICAgICAgICAgbWVtX3NoYXJpbmdfbm90aWZ5X2Vub21lbShwMm0tPmRvbWFpbiwgZ2ZuX3go Z2ZuKSwgZmFsc2UpOwogICAgICAgICBtZm4gPSBwMm0tPmdldF9lbnRyeShwMm0sIGdmbiwgdCwg YSwgcSwgcGFnZV9vcmRlciwgTlVMTCk7CiAgICAgfQogCkBAIC00NTUsNyArNDU0LDcgQEAgbWZu X3QgX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVk IGxvbmcgZ2ZuX2wsCiAgICAgcmV0dXJuIG1mbjsKIH0KIAotdm9pZCBfX3B1dF9nZm4oc3RydWN0 IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4pCit2b2lkIF9fcHV0X2dmbihzdHJ1 Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm4pCiB7CiAgICAgaWYgKCAhcDJtIHx8ICFwYWdp bmdfbW9kZV90cmFuc2xhdGUocDJtLT5kb21haW4pICkKICAgICAgICAgLyogTm90aGluZyB0byBk byBpbiB0aGlzIGNhc2UgKi8KQEAgLTQ4NCw3ICs0ODMsNyBAQCBzdHJ1Y3QgcGFnZV9pbmZvICpw Mm1fZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgewogICAgICAgICAvKiBGYXN0IHBhdGg6IGxvb2sg dXAgYW5kIGdldCBvdXQgKi8KICAgICAgICAgcDJtX3JlYWRfbG9jayhwMm0pOwotICAgICAgICBt Zm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3MocDJtLCBnZm5feChnZm4pLCB0LCBhLCAwLCBOVUxM LCAwKTsKKyAgICAgICAgbWZuID0gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKHAybSwgZ2ZuLCB0LCBh LCAwLCBOVUxMLCAwKTsKICAgICAgICAgaWYgKCBwMm1faXNfYW55X3JhbSgqdCkgJiYgbWZuX3Zh bGlkKG1mbikKICAgICAgICAgICAgICAmJiAhKChxICYgUDJNX1VOU0hBUkUpICYmIHAybV9pc19z aGFyZWQoKnQpKSApCiAgICAgICAgIHsKQEAgLTUxMywxNCArNTEyLDE0IEBAIHN0cnVjdCBwYWdl X2luZm8gKnAybV9nZXRfcGFnZV9mcm9tX2dmbigKICAgICB9CiAKICAgICAvKiBTbG93IHBhdGg6 IHRha2UgdGhlIHdyaXRlIGxvY2sgYW5kIGRvIGZpeHVwcyAqLwotICAgIG1mbiA9IGdldF9nZm5f dHlwZV9hY2Nlc3MocDJtLCBnZm5feChnZm4pLCB0LCBhLCBxLCBOVUxMKTsKKyAgICBtZm4gPSBn ZXRfZ2ZuX3R5cGVfYWNjZXNzKHAybSwgZ2ZuLCB0LCBhLCBxLCBOVUxMKTsKICAgICBpZiAoIHAy bV9pc19yYW0oKnQpICYmIG1mbl92YWxpZChtZm4pICkKICAgICB7CiAgICAgICAgIHBhZ2UgPSBt Zm5fdG9fcGFnZShtZm4pOwogICAgICAgICBpZiAoICFnZXRfcGFnZShwYWdlLCBwMm0tPmRvbWFp bikgKQogICAgICAgICAgICAgcGFnZSA9IE5VTEw7CiAgICAgfQotICAgIHB1dF9nZm4ocDJtLT5k b21haW4sIGdmbl94KGdmbikpOworICAgIHB1dF9nZm4ocDJtLT5kb21haW4sIGdmbik7CiAKICAg ICByZXR1cm4gcGFnZTsKIH0KQEAgLTEyNzgsNyArMTI3Nyw3IEBAIGludCBzZXRfc2hhcmVkX3Ay bV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbl9sLCBtZm5fdCBtZm4p CiAgICAgaWYgKCByYyApCiAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsCiAgICAgICAgICAg ICAgICAgICJwMm1fc2V0X2VudHJ5IGZhaWxlZCEgbWZuPSUwOGx4IHJjOiVkXG4iLAotICAgICAg ICAgICAgICAgICBtZm5feChnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKHAybS0+ZG9tYWluLCBnZm5f bCwgJm90KSksIHJjKTsKKyAgICAgICAgICAgICAgICAgbWZuX3goZ2V0X2dmbl9xdWVyeV91bmxv Y2tlZChwMm0tPmRvbWFpbiwgZ2ZuLCAmb3QpKSwgcmMpOwogICAgIHJldHVybiByYzsKIH0KIApA QCAtMjE4Nyw4ICsyMTg2LDcgQEAgYm9vbCBwMm1fYWx0cDJtX2xhenlfY29weShzdHJ1Y3QgdmNw dSAqdiwgcGFkZHJfdCBncGEsCiAKICAgICBBU1NFUlQocDJtX2xvY2tlZF9ieV9tZShocDJtKSk7 CiAKLSAgICBtZm4gPSBnZXRfZ2ZuX3R5cGVfYWNjZXNzKGFwMm0sIGdmbl94KGdmbiksICZwMm10 LCAmcDJtYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICZwYWdlX29yZGVyKTsK KyAgICBtZm4gPSBnZXRfZ2ZuX3R5cGVfYWNjZXNzKGFwMm0sIGdmbiwgJnAybXQsICZwMm1hLCAw LCAmcGFnZV9vcmRlcik7CiAKICAgICAvKiBFbnRyeSBhbHJlYWR5IHByZXNlbnQgaW4gYXAybT8g IENhbGxlciBzaG91bGQgaGFuZGxlIHRoZSBmYXVsdC4gKi8KICAgICBpZiAoICFtZm5fZXEobWZu LCBJTlZBTElEX01GTikgKQpAQCAtMjE5Nyw4ICsyMTk1LDcgQEAgYm9vbCBwMm1fYWx0cDJtX2xh enlfY29weShzdHJ1Y3QgdmNwdSAqdiwgcGFkZHJfdCBncGEsCiAgICAgICAgIGdvdG8gcHV0X2Fw Mm07CiAgICAgfQogCi0gICAgbWZuID0gZ2V0X2dmbl90eXBlX2FjY2VzcyhocDJtLCBnZm5feChn Zm4pLCAmcDJtdCwgJnAybWEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQMk1fQUxM T0MsICZwYWdlX29yZGVyKTsKKyAgICBtZm4gPSBnZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdm biwgJnAybXQsICZwMm1hLCBQMk1fQUxMT0MsICZwYWdlX29yZGVyKTsKIAogICAgIC8qIEVudHJ5 IG5vdCBwcmVzZW50IGluIGhwMm0/ICBDYWxsZXIgc2hvdWxkIGhhbmRsZSB0aGUgZmF1bHQuICov CiAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZBTElEX01GTikgKQpAQCAtMjIzMCw5ICsyMjI3LDkg QEAgYm9vbCBwMm1fYWx0cDJtX2xhenlfY29weShzdHJ1Y3QgdmNwdSAqdiwgcGFkZHJfdCBncGEs CiAgICAgcmV0ID0gdHJ1ZTsKIAogcHV0X2hwMm06Ci0gICAgX19wdXRfZ2ZuKGhwMm0sIGdmbl94 KGdmbikpOworICAgIF9fcHV0X2dmbihocDJtLCBnZm4pOwogcHV0X2FwMm06Ci0gICAgX19wdXRf Z2ZuKGFwMm0sIGdmbl94KGdmbikpOworICAgIF9fcHV0X2dmbihhcDJtLCBnZm4pOwogCiAgICAg cmV0dXJuIHJldDsKIH0KQEAgLTIzOTYsNyArMjM5Myw3IEBAIGludCBwMm1fY2hhbmdlX2FsdHAy bV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlkeCwKICAgICAvKiBDaGVjayBo b3N0IHAybSBpZiBubyB2YWxpZCBlbnRyeSBpbiBhbHRlcm5hdGUgKi8KICAgICBpZiAoICFtZm5f dmFsaWQobWZuKSApCiAgICAgewotICAgICAgICBtZm4gPSBfX2dldF9nZm5fdHlwZV9hY2Nlc3Mo aHAybSwgZ2ZuX3gob2xkX2dmbiksICZ0LCAmYSwKKyAgICAgICAgbWZuID0gX19nZXRfZ2ZuX3R5 cGVfYWNjZXNzKGhwMm0sIG9sZF9nZm4sICZ0LCAmYSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFAyTV9BTExPQywgJnBhZ2Vfb3JkZXIsIDApOwogCiAgICAgICAgIGlmICgg IW1mbl92YWxpZChtZm4pIHx8IHQgIT0gcDJtX3JhbV9ydyApCkBAIC0yNDc3LDcgKzI0NzQsNyBA QCBpbnQgcDJtX2FsdHAybV9wcm9wYWdhdGVfY2hhbmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90 IGdmbiwKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHAybSA9IGQtPmFyY2guYWx0 cDJtX3AybVtpXTsKLSAgICAgICAgbSA9IGdldF9nZm5fdHlwZV9hY2Nlc3MocDJtLCBnZm5feChn Zm4pLCAmdCwgJmEsIDAsIE5VTEwpOworICAgICAgICBtID0gZ2V0X2dmbl90eXBlX2FjY2Vzcyhw Mm0sIGdmbiwgJnQsICZhLCAwLCBOVUxMKTsKIAogICAgICAgICAvKiBDaGVjayBmb3IgYSBkcm9w cGVkIHBhZ2UgdGhhdCBtYXkgaW1wYWN0IHRoaXMgYWx0cDJtICovCiAgICAgICAgIGlmICggbWZu X2VxKG1mbiwgSU5WQUxJRF9NRk4pICYmCkBAIC0yNDkyLDcgKzI0ODksNyBAQCBpbnQgcDJtX2Fs dHAybV9wcm9wYWdhdGVfY2hhbmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKICAgICAg ICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvKiBBdCBsZWFzdCAy IGFsdHAybSdzIGltcGFjdGVkLCBzbyByZXNldCBldmVyeXRoaW5nICovCi0gICAgICAgICAgICAg ICAgX19wdXRfZ2ZuKHAybSwgZ2ZuX3goZ2ZuKSk7CisgICAgICAgICAgICAgICAgX19wdXRfZ2Zu KHAybSwgZ2ZuKTsKIAogICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgTUFYX0FMVFAy TTsgaSsrICkKICAgICAgICAgICAgICAgICB7CkBAIC0yNTE5LDcgKzI1MTYsNyBAQCBpbnQgcDJt X2FsdHAybV9wcm9wYWdhdGVfY2hhbmdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKICAg ICAgICAgICAgICAgICByZXQgPSByYzsKICAgICAgICAgfQogCi0gICAgICAgIF9fcHV0X2dmbihw Mm0sIGdmbl94KGdmbikpOworICAgICAgICBfX3B1dF9nZm4ocDJtLCBnZm4pOwogICAgIH0KIAog ICAgIGFsdHAybV9saXN0X3VubG9jayhkKTsKQEAgLTI1OTAsNyArMjU4Nyw3IEBAIHZvaWQgYXVk aXRfcDJtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg fQogCi0gICAgICAgIHAybWZuID0gZ2V0X2dmbl90eXBlX2FjY2VzcyhwMm0sIGdmbiwgJnR5cGUs ICZwMm1hLCAwLCBOVUxMKTsKKyAgICAgICAgcDJtZm4gPSBnZXRfZ2ZuX3R5cGVfYWNjZXNzKHAy bSwgX2dmbihnZm4pLCAmdHlwZSwgJnAybWEsIDAsIE5VTEwpOwogICAgICAgICBpZiAoIG1mbl94 KHAybWZuKSAhPSBtZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICBtcGJhZCsrOwpAQCAtMjYw NSw3ICsyNjAyLDcgQEAgdm9pZCBhdWRpdF9wMm0oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAg ICAgICAqIGJsb3cgYXdheSB0aGUgbTJwIGVudHJ5LiAqLwogICAgICAgICAgICAgc2V0X2dwZm5f ZnJvbV9tZm4obWZuLCBJTlZBTElEX00yUF9FTlRSWSk7CiAgICAgICAgIH0KLSAgICAgICAgX19w dXRfZ2ZuKHAybSwgZ2ZuKTsKKyAgICAgICAgX19wdXRfZ2ZuKHAybSwgX2dmbihnZm4pKTsKIAog ICAgICAgICBQMk1fUFJJTlRLKCJPSzogbWZuPSUjbHgsIGdmbj0lI2x4LCBwMm1mbj0lI2x4XG4i LAogICAgICAgICAgICAgICAgICAgICAgICBtZm4sIGdmbiwgbWZuX3gocDJtZm4pKTsKQEAgLTI2 OTgsNyArMjY5NSw3IEBAIGludCBwMm1fYWRkX2ZvcmVpZ24oc3RydWN0IGRvbWFpbiAqdGRvbSwg dW5zaWduZWQgbG9uZyBmZ2ZuLAogICAgIG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOwogCiAgICAg LyogUmVtb3ZlIHByZXZpb3VzbHkgbWFwcGVkIHBhZ2UgaWYgaXQgaXMgcHJlc2VudC4gKi8KLSAg ICBwcmV2X21mbiA9IGdldF9nZm4odGRvbSwgZ3BmbiwgJnAybXRfcHJldik7CisgICAgcHJldl9t Zm4gPSBnZXRfZ2ZuKHRkb20sIF9nZm4oZ3BmbiksICZwMm10X3ByZXYpOwogICAgIGlmICggbWZu X3ZhbGlkKHByZXZfbWZuKSApCiAgICAgewogICAgICAgICBpZiAoIGlzX3hlbl9oZWFwX21mbiht Zm5feChwcmV2X21mbikpICkKQEAgLTI3MjksNyArMjcyNiw3IEBAIGludCBwMm1fYWRkX2ZvcmVp Z24oc3RydWN0IGRvbWFpbiAqdGRvbSwgdW5zaWduZWQgbG9uZyBmZ2ZuLAogICAgICAqIGFmdGVy IHNldF9mb3JlaWduX3AybV9lbnRyeSBzbyBhbm90aGVyIGNwdSBkb2Vzbid0IHBvcHVsYXRlIHRo ZSBncGZuCiAgICAgICogYmVmb3JlIHVzLgogICAgICAqLwotICAgIHB1dF9nZm4odGRvbSwgZ3Bm bik7CisgICAgcHV0X2dmbih0ZG9tLCBfZ2ZuKGdwZm4pKTsKIAogb3V0OgogICAgIGlmICggZmRv bSApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9jb21tb24uYwppbmRleCA2MTMwNGQ3Li44NWNlNzYxIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvY29tbW9uLmMKQEAgLTMzMzgsNyArMzMzOCw3IEBAIGludCBzaGFkb3dfdHJhY2tf ZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAgICAgIC8qIEl0ZXJhdGUgb3ZlciBW UkFNIHRvIHRyYWNrIGRpcnR5IGJpdHMuICovCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgbnI7 IGkrKyApIHsKLSAgICAgICAgICAgIG1mbl90IG1mbiA9IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQo ZCwgYmVnaW5fcGZuICsgaSwgJnQpOworICAgICAgICAgICAgbWZuX3QgbWZuID0gZ2V0X2dmbl9x dWVyeV91bmxvY2tlZChkLCBfZ2ZuKGJlZ2luX3BmbiArIGkpLCAmdCk7CiAgICAgICAgICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgICAgICAgICAgaW50IGRpcnR5ID0gMDsKICAgICAg ICAgICAgIHBhZGRyX3Qgc2wxbWEgPSBkaXJ0eV92cmFtLT5zbDFtYVtpXTsKQEAgLTM0MTgsNyAr MzQxOCw3IEBAIGludCBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICAgICAgICogd3JpdGUgYWNjZXNzICovCiAgICAgICAgICAgICBmb3IgKCBpID0gYmVn aW5fcGZuOyBpIDwgZW5kX3BmbjsgaSsrICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBtZm5fdCBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGksICZ0KTsKKyAgICAgICAg ICAgICAgICBtZm5fdCBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIF9nZm4oaSksICZ0 KTsKICAgICAgICAgICAgICAgICBpZiAoICFtZm5fZXEobWZuLCBJTlZBTElEX01GTikgKQogICAg ICAgICAgICAgICAgICAgICBmbHVzaF90bGIgfD0gc2hfcmVtb3ZlX3dyaXRlX2FjY2VzcyhkLCBt Zm4sIDEsIDApOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3No YWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCmluZGV4IDdlOWNi YzYuLmRlM2ZjZDcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwor KysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTIxMjYsNyArMjEyNiw4IEBA IHN0YXRpYyBpbnQgdmFsaWRhdGVfZ2w0ZShzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqbmV3X2dlLCBt Zm5fdCBzbDRtZm4sIHZvaWQgKnNlKQogICAgICAgICAgIWd1ZXN0X2w0ZV9yc3ZkX2JpdHModiwg bmV3X2dsNGUpICkKICAgICB7CiAgICAgICAgIGdmbl90IGdsM2dmbiA9IGd1ZXN0X2w0ZV9nZXRf Z2ZuKG5ld19nbDRlKTsKLSAgICAgICAgbWZuX3QgZ2wzbWZuID0gZ2V0X2dmbl9xdWVyeV91bmxv Y2tlZChkLCBnZm5feChnbDNnZm4pLCAmcDJtdCk7CisgICAgICAgIG1mbl90IGdsM21mbiA9IGdl dF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZ2wzZ2ZuLCAmcDJtdCk7CisKICAgICAgICAgaWYgKCBw Mm1faXNfcmFtKHAybXQpICkKICAgICAgICAgICAgIHNsM21mbiA9IGdldF9zaGFkb3dfc3RhdHVz KGQsIGdsM21mbiwgU0hfdHlwZV9sM19zaGFkb3cpOwogICAgICAgICBlbHNlIGlmICggcDJtdCAh PSBwMm1fcG9wdWxhdGVfb25fZGVtYW5kICkKQEAgLTIxODUsNyArMjE4Niw4IEBAIHN0YXRpYyBp bnQgdmFsaWRhdGVfZ2wzZShzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqbmV3X2dlLCBtZm5fdCBzbDNt Zm4sIHZvaWQgKnNlKQogICAgICAgICAgIWd1ZXN0X2wzZV9yc3ZkX2JpdHModiwgbmV3X2dsM2Up ICkKICAgICB7CiAgICAgICAgIGdmbl90IGdsMmdmbiA9IGd1ZXN0X2wzZV9nZXRfZ2ZuKG5ld19n bDNlKTsKLSAgICAgICAgbWZuX3QgZ2wybWZuID0gZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBn Zm5feChnbDJnZm4pLCAmcDJtdCk7CisgICAgICAgIG1mbl90IGdsMm1mbiA9IGdldF9nZm5fcXVl cnlfdW5sb2NrZWQoZCwgZ2wyZ2ZuLCAmcDJtdCk7CisKICAgICAgICAgaWYgKCBwMm1faXNfcmFt KHAybXQpICkKICAgICAgICAgICAgIHNsMm1mbiA9IGdldF9zaGFkb3dfc3RhdHVzKGQsIGdsMm1m biwgU0hfdHlwZV9sMl9zaGFkb3cpOwogICAgICAgICBlbHNlIGlmICggcDJtdCAhPSBwMm1fcG9w dWxhdGVfb25fZGVtYW5kICkKQEAgLTIyMzYsNyArMjIzOCw4IEBAIHN0YXRpYyBpbnQgdmFsaWRh dGVfZ2wyZShzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqbmV3X2dlLCBtZm5fdCBzbDJtZm4sIHZvaWQg KnNlKQogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgbWZu X3QgZ2wxbWZuID0gZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBnZm5feChnbDFnZm4pLCAmcDJt dCk7CisgICAgICAgICAgICBtZm5fdCBnbDFtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQs IGdsMWdmbiwgJnAybXQpOworCiAgICAgICAgICAgICBpZiAoIHAybV9pc19yYW0ocDJtdCkgKQog ICAgICAgICAgICAgICAgIHNsMW1mbiA9IGdldF9zaGFkb3dfc3RhdHVzKGQsIGdsMW1mbiwgU0hf dHlwZV9sMV9zaGFkb3cpOwogICAgICAgICAgICAgZWxzZSBpZiAoIHAybXQgIT0gcDJtX3BvcHVs YXRlX29uX2RlbWFuZCApCkBAIC0yMjcwLDcgKzIyNzMsNyBAQCBzdGF0aWMgaW50IHZhbGlkYXRl X2dsMWUoc3RydWN0IHZjcHUgKnYsIHZvaWQgKm5ld19nZSwgbWZuX3Qgc2wxbWZuLCB2b2lkICpz ZSkKICAgICAgICAgICFndWVzdF9sMWVfcnN2ZF9iaXRzKHYsIG5ld19nbDFlKSApCiAgICAgewog ICAgICAgICBnZm4gPSBndWVzdF9sMWVfZ2V0X2dmbihuZXdfZ2wxZSk7Ci0gICAgICAgIGdtZm4g PSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdmbiksICZwMm10KTsKKyAgICAgICAg Z21mbiA9IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZ2ZuLCAmcDJtdCk7CiAgICAgfQogCiAg ICAgbDFlX3Byb3BhZ2F0ZV9mcm9tX2d1ZXN0KHYsIG5ld19nbDFlLCBnbWZuLCAmbmV3X3NsMWUs IGZ0X3ByZWZldGNoLCBwMm10KTsKQEAgLTIzMzUsNyArMjMzOCw3IEBAIHZvaWQgc2hfcmVzeW5j X2wxKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBnbDFtZm4sIG1mbl90IHNucG1mbikKICAgICAgICAg ICAgICAgICAgIWd1ZXN0X2wxZV9yc3ZkX2JpdHModiwgZ2wxZSkgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIGdmbiA9IGd1ZXN0X2wxZV9nZXRfZ2ZuKGdsMWUpOwotICAgICAgICAg ICAgICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdmbiksICZwMm10 KTsKKyAgICAgICAgICAgICAgICBnbWZuID0gZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBnZm4s ICZwMm10KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbDFlX3Byb3BhZ2F0ZV9mcm9t X2d1ZXN0KHYsIGdsMWUsIGdtZm4sICZuc2wxZSwgZnRfcHJlZmV0Y2gsIHAybXQpOwpAQCAtMjYx NSw3ICsyNjE4LDcgQEAgc3RhdGljIHZvaWQgc2hfcHJlZmV0Y2goc3RydWN0IHZjcHUgKnYsIHdh bGtfdCAqZ3csCiAgICAgICAgICAgICAgIWd1ZXN0X2wxZV9yc3ZkX2JpdHModiwgZ2wxZSkgKQog ICAgICAgICB7CiAgICAgICAgICAgICBnZm4gPSBndWVzdF9sMWVfZ2V0X2dmbihnbDFlKTsKLSAg ICAgICAgICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdmbiksICZw Mm10KTsKKyAgICAgICAgICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbiwg JnAybXQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewpAQCAtMzA3MSw3ICsz MDc0LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LAogICAgICAg ICBTSEFET1dfUFJJTlRLKCJCQUQgZ2ZuPSUiU0hfUFJJX2dmbiIgZ21mbj0lIlBSSV9tZm4iXG4i LAogICAgICAgICAgICAgICAgICAgICAgIGdmbl94KGdmbiksIG1mbl94KGdtZm4pKTsKICAgICAg ICAgc2hfcmVzZXRfZWFybHlfdW5zaGFkb3codik7Ci0gICAgICAgIHB1dF9nZm4oZCwgZ2ZuX3go Z2ZuKSk7CisgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAgICAgICAgZ290byBwcm9wYWdhdGU7 CiAgICAgfQogCkBAIC0zMTE3LDcgKzMxMjAsNyBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQo c3RydWN0IHZjcHUgKnYsCiAgICAgaWYgKCByYyAmIEdXX1JNV1JfUkVXQUxLICkKICAgICB7CiAg ICAgICAgIHBhZ2luZ191bmxvY2soZCk7Ci0gICAgICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7 CisgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAgICAgICAgZ290byByZXdhbGs7CiAgICAgfQog I2VuZGlmIC8qIE9PUyAqLwpAQCAtMzEyNiw3ICszMTI5LDcgQEAgc3RhdGljIGludCBzaF9wYWdl X2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LAogICAgIHsKICAgICAgICAgcGVyZmNfaW5jcihzaGFkb3df aW5jb25zaXN0ZW50X2d3YWxrKTsKICAgICAgICAgcGFnaW5nX3VubG9jayhkKTsKLSAgICAgICAg cHV0X2dmbihkLCBnZm5feChnZm4pKTsKKyAgICAgICAgcHV0X2dmbihkLCBnZm4pOwogICAgICAg ICBnb3RvIHJld2FsazsKICAgICB9CiAKQEAgLTMxNTMsNyArMzE1Niw3IEBAIHN0YXRpYyBpbnQg c2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgQVNTRVJUKGQtPmlzX3NodXR0 aW5nX2Rvd24pOwogI2VuZGlmCiAgICAgICAgIHBhZ2luZ191bmxvY2soZCk7Ci0gICAgICAgIHB1 dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7CisgICAgICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAgICAgICAg dHJhY2Vfc2hhZG93X2dlbihUUkNfU0hBRE9XX0RPTUZfRFlJTkcsIHZhKTsKICAgICAgICAgcmV0 dXJuIDA7CiAgICAgfQpAQCAtMzE3MSw3ICszMTc0LDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2Zh dWx0KHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgKiBmYWlsZWQuIFdlIGNhbm5vdCBzYWZlbHkg Y29udGludWUgc2luY2Ugc29tZSBwYWdlIGlzIHN0aWxsCiAgICAgICAgICAqIE9PUyBidXQgbm90 IGluIHRoZSBoYXNoIHRhYmxlIGFueW1vcmUuICovCiAgICAgICAgIHBhZ2luZ191bmxvY2soZCk7 Ci0gICAgICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7CisgICAgICAgIHB1dF9nZm4oZCwgZ2Zu KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC0zMTgxLDcgKzMxODQsNyBAQCBzdGF0 aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAgewogICAgICAgICBwZXJm Y19pbmNyKHNoYWRvd19pbmNvbnNpc3RlbnRfZ3dhbGspOwogICAgICAgICBwYWdpbmdfdW5sb2Nr KGQpOwotICAgICAgICBwdXRfZ2ZuKGQsIGdmbl94KGdmbikpOworICAgICAgICBwdXRfZ2ZuKGQs IGdmbik7CiAgICAgICAgIGdvdG8gcmV3YWxrOwogICAgIH0KICNlbmRpZiAvKiBPT1MgKi8KQEAg LTMyNjcsNyArMzI3MCw3IEBAIHN0YXRpYyBpbnQgc2hfcGFnZV9mYXVsdChzdHJ1Y3QgdmNwdSAq diwKICAgICBTSEFET1dfUFJJTlRLKCJmaXhlZFxuIik7CiAgICAgc2hhZG93X2F1ZGl0X3RhYmxl cyh2KTsKICAgICBwYWdpbmdfdW5sb2NrKGQpOwotICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7 CisgICAgcHV0X2dmbihkLCBnZm4pOwogICAgIHJldHVybiBFWENSRVRfZmF1bHRfZml4ZWQ7CiAK ICBlbXVsYXRlOgpAQCAtMzMzNyw3ICszMzQwLDcgQEAgc3RhdGljIGludCBzaF9wYWdlX2ZhdWx0 KHN0cnVjdCB2Y3B1ICp2LAogICAgIHNoX2F1ZGl0X2d3KHYsICZndyk7CiAgICAgc2hhZG93X2F1 ZGl0X3RhYmxlcyh2KTsKICAgICBwYWdpbmdfdW5sb2NrKGQpOwotICAgIHB1dF9nZm4oZCwgZ2Zu X3goZ2ZuKSk7CisgICAgcHV0X2dmbihkLCBnZm4pOwogCiAgICAgdGhpc19jcHUodHJhY2VfZW11 bGF0ZV93cml0ZV92YWwpID0gMDsKIApAQCAtMzUyMSw3ICszNTI0LDcgQEAgc3RhdGljIGludCBz aF9wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LAogICAgIHNoYWRvd19hdWRpdF90YWJsZXModik7 CiAgICAgc2hfcmVzZXRfZWFybHlfdW5zaGFkb3codik7CiAgICAgcGFnaW5nX3VubG9jayhkKTsK LSAgICBwdXRfZ2ZuKGQsIGdmbl94KGdmbikpOworICAgIHB1dF9nZm4oZCwgZ2ZuKTsKICAgICB0 cmFjZV9zaGFkb3dfZ2VuKFRSQ19TSEFET1dfTU1JTywgdmEpOwogICAgIHJldHVybiAoaGFuZGxl X21taW9fd2l0aF90cmFuc2xhdGlvbih2YSwgZ3BhID4+IFBBR0VfU0hJRlQsIGFjY2VzcykKICAg ICAgICAgICAgID8gRVhDUkVUX2ZhdWx0X2ZpeGVkIDogMCk7CkBAIC0zNTM1LDcgKzM1MzgsNyBA QCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAgc2hhZG93X2F1 ZGl0X3RhYmxlcyh2KTsKICAgICBzaF9yZXNldF9lYXJseV91bnNoYWRvdyh2KTsKICAgICBwYWdp bmdfdW5sb2NrKGQpOwotICAgIHB1dF9nZm4oZCwgZ2ZuX3goZ2ZuKSk7CisgICAgcHV0X2dmbihk LCBnZm4pOwogCiBwcm9wYWdhdGU6CiAgICAgdHJhY2Vfbm90X3NoYWRvd19mYXVsdChndy5sMWUs IHZhKTsKQEAgLTQxMTYsNyArNDExOSw3IEBAIHNoX3VwZGF0ZV9jcjMoc3RydWN0IHZjcHUgKnYs IGludCBkb19sb2NraW5nLCBib29sIG5vZmx1c2gpCiAgICAgICAgICAgICBpZiAoIGd1ZXN0X2wz ZV9nZXRfZmxhZ3MoZ2wzZVtpXSkgJiBfUEFHRV9QUkVTRU5UICkKICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICBnbDJnZm4gPSBndWVzdF9sM2VfZ2V0X2dmbihnbDNlW2ldKTsKLSAgICAg ICAgICAgICAgICBnbDJtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdsMmdm biksICZwMm10KTsKKyAgICAgICAgICAgICAgICBnbDJtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9j a2VkKGQsIGdsMmdmbiwgJnAybXQpOwogICAgICAgICAgICAgICAgIGlmICggcDJtX2lzX3JhbShw Mm10KSApCiAgICAgICAgICAgICAgICAgICAgIGZsdXNoIHw9IHNoX3JlbW92ZV93cml0ZV9hY2Nl c3MoZCwgZ2wybWZuLCAyLCAwKTsKICAgICAgICAgICAgIH0KQEAgLTQxMjksNyArNDEzMiw3IEBA IHNoX3VwZGF0ZV9jcjMoc3RydWN0IHZjcHUgKnYsIGludCBkb19sb2NraW5nLCBib29sIG5vZmx1 c2gpCiAgICAgICAgICAgICBpZiAoIGd1ZXN0X2wzZV9nZXRfZmxhZ3MoZ2wzZVtpXSkgJiBfUEFH RV9QUkVTRU5UICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBnbDJnZm4gPSBndWVz dF9sM2VfZ2V0X2dmbihnbDNlW2ldKTsKLSAgICAgICAgICAgICAgICBnbDJtZm4gPSBnZXRfZ2Zu X3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdsMmdmbiksICZwMm10KTsKKyAgICAgICAgICAgICAg ICBnbDJtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdsMmdmbiwgJnAybXQpOwogICAg ICAgICAgICAgICAgIGlmICggcDJtX2lzX3JhbShwMm10KSApCiAgICAgICAgICAgICAgICAgICAg IHNoX3NldF90b3BsZXZlbF9zaGFkb3codiwgaSwgZ2wybWZuLCAoaSA9PSAzKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gU0hfdHlwZV9sMmhfc2hhZG93CkBA IC00NTM2LDcgKzQ1MzksNyBAQCBzdGF0aWMgdm9pZCBzaF9wYWdldGFibGVfZHlpbmcocGFkZHJf dCBncGEpCiAgICAgcDJtX3R5cGVfdCBwMm10OwogICAgIGNoYXIgKmdsM3BhID0gTlVMTDsKICAg ICBndWVzdF9sM2VfdCAqZ2wzZSA9IE5VTEw7Ci0gICAgdW5zaWduZWQgbG9uZyBsM2dmbjsKKyAg ICBnZm5fdCBsM2dmbjsKICAgICBtZm5fdCBsM21mbjsKIAogICAgIGdjcjMgPSB2LT5hcmNoLmh2 bS5ndWVzdF9jclszXTsKQEAgLTQ1NDQsOCArNDU0Nyw4IEBAIHN0YXRpYyB2b2lkIHNoX3BhZ2V0 YWJsZV9keWluZyhwYWRkcl90IGdwYSkKICAgICBpZiAoIGdjcjMgPT0gZ3BhICkKICAgICAgICAg ZmFzdF9wYXRoID0gMTsKIAotICAgIGwzZ2ZuID0gZ3BhID4+IFBBR0VfU0hJRlQ7Ci0gICAgbDNt Zm4gPSBnZXRfZ2ZuX3F1ZXJ5KGQsIF9nZm4obDNnZm4pLCAmcDJtdCk7CisgICAgbDNnZm4gPSBn YWRkcl90b19nZm4oZ3BhKTsKKyAgICBsM21mbiA9IGdldF9nZm5fcXVlcnkoZCwgbDNnZm4sICZw Mm10KTsKICAgICBpZiAoICFtZm5fdmFsaWQobDNtZm4pIHx8ICFwMm1faXNfcmFtKHAybXQpICkK ICAgICB7CiAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgInNoX3BhZ2V0YWJsZV9keWluZzog Z3BhIG5vdCB2YWxpZCAlIlBSSXBhZGRyIlxuIiwKQEAgLTQ1NzMsOCArNDU3Niw3IEBAIHN0YXRp YyB2b2lkIHNoX3BhZ2V0YWJsZV9keWluZyhwYWRkcl90IGdwYSkKICAgICAgICAgZWxzZQogICAg ICAgICB7CiAgICAgICAgICAgICAvKiByZXRyaWV2aW5nIHRoZSBsMnMgKi8KLSAgICAgICAgICAg IGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGd1ZXN0X2wzZV9nZXRfZ2Zu KGdsM2VbaV0pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZw Mm10KTsKKyAgICAgICAgICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGd1ZXN0 X2wzZV9nZXRfZ2ZuKGdsM2VbaV0pLCAmcDJtdCk7CiAgICAgICAgICAgICBzbWZuID0gdW5saWtl bHkobWZuX2VxKGdtZm4sIElOVkFMSURfTUZOKSkKICAgICAgICAgICAgICAgICAgICA/IElOVkFM SURfTUZOCiAgICAgICAgICAgICAgICAgICAgOiBzaGFkb3dfaGFzaF9sb29rdXAoZCwgbWZuX3go Z21mbiksIFNIX3R5cGVfbDJfcGFlX3NoYWRvdyk7CkBAIC00NjA5LDEwICs0NjExLDExIEBAIHN0 YXRpYyB2b2lkIHNoX3BhZ2V0YWJsZV9keWluZyhwYWRkcl90IGdwYSkKIHsKICAgICBzdHJ1Y3Qg dmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKKyAg ICBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4oZ3BhKTsKICAgICBtZm5fdCBzbWZuLCBnbWZuOwog ICAgIHAybV90eXBlX3QgcDJtdDsKIAotICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5KGQsIF9nZm4o Z3BhID4+IFBBR0VfU0hJRlQpLCAmcDJtdCk7CisgICAgZ21mbiA9IGdldF9nZm5fcXVlcnkoZCwg Z2ZuLCAmcDJtdCk7CiAgICAgcGFnaW5nX2xvY2soZCk7CiAKICNpZiBHVUVTVF9QQUdJTkdfTEVW RUxTID09IDIKQEAgLTQ2MzcsNyArNDY0MCw3IEBAIHN0YXRpYyB2b2lkIHNoX3BhZ2V0YWJsZV9k eWluZyhwYWRkcl90IGdwYSkKICAgICB2LT5hcmNoLnBhZ2luZy5zaGFkb3cucGFnZXRhYmxlX2R5 aW5nID0gMTsKIAogICAgIHBhZ2luZ191bmxvY2soZCk7Ci0gICAgcHV0X2dmbihkLCBncGEgPj4g UEFHRV9TSElGVCk7CisgICAgcHV0X2dmbihkLCBnZm4pOwogfQogI2VuZGlmCiAKQEAgLTQ3NTks NyArNDc2Miw3IEBAIGludCBzaF9hdWRpdF9sMV90YWJsZShzdHJ1Y3QgdmNwdSAqdiwgbWZuX3Qg c2wxbWZuLCBtZm5fdCB4KQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGdmbiA9IGd1 ZXN0X2wxZV9nZXRfZ2ZuKCpnbDFlKTsKICAgICAgICAgICAgICAgICBtZm4gPSBzaGFkb3dfbDFl X2dldF9tZm4oKnNsMWUpOwotICAgICAgICAgICAgICAgIGdtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3Vu bG9ja2VkKHYtPmRvbWFpbiwgZ2ZuX3goZ2ZuKSwgJnAybXQpOworICAgICAgICAgICAgICAgIGdt Zm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKHYtPmRvbWFpbiwgZ2ZuLCAmcDJtdCk7CiAgICAg ICAgICAgICAgICAgaWYgKCAhcDJtX2lzX2dyYW50KHAybXQpICYmICFtZm5fZXEoZ21mbiwgbWZu KSApCiAgICAgICAgICAgICAgICAgICAgIEFVRElUX0ZBSUwoMSwgImJhZCB0cmFuc2xhdGlvbjog Z2ZuICUiIFNIX1BSSV9nZm4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC0tPiAl IiBQUklfbWZuICIgIT0gbWZuICUiIFBSSV9tZm4sCkBAIC00ODMyLDE2ICs0ODM1LDE1IEBAIGlu dCBzaF9hdWRpdF9sMl90YWJsZShzdHJ1Y3QgdmNwdSAqdiwgbWZuX3Qgc2wybWZuLCBtZm5fdCB4 KQogICAgICAgICAgICAgZ21mbiA9IChndWVzdF9sMmVfZ2V0X2ZsYWdzKCpnbDJlKSAmIF9QQUdF X1BTRSkKICAgICAgICAgICAgICAgICA/IGdldF9mbDFfc2hhZG93X3N0YXR1cyhkLCBnZm4pCiAg ICAgICAgICAgICAgICAgOiBnZXRfc2hhZG93X3N0YXR1cyhkLAotICAgICAgICAgICAgICAgICAg ICBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbl94KGdmbiksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnAybXQpLCBTSF90eXBlX2wxX3NoYWRvdyk7CisgICAg ICAgICAgICAgICAgICAgIGdldF9nZm5fcXVlcnlfdW5sb2NrZWQoZCwgZ2ZuLCAmcDJtdCksIFNI X3R5cGVfbDFfc2hhZG93KTsKICAgICAgICAgICAgIGlmICggIW1mbl9lcShnbWZuLCBtZm4pICkK ICAgICAgICAgICAgICAgICBBVURJVF9GQUlMKDIsICJiYWQgdHJhbnNsYXRpb246IGdmbiAlIiBT SF9QUklfZ2ZuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgtLT4gJSIgUFJJX21mbiAi KSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgLS0+ICUiIFBSSV9tZm4gIiAhPSBtZm4g JSIgUFJJX21mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl94KGdmbiksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZ3Vlc3RfbDJlX2dldF9mbGFncygqZ2wyZSkgJiBfUEFH RV9QU0UpID8gMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBtZm5feChnZXRfZ2ZuX3F1 ZXJ5X3VubG9ja2VkKGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl94 KGdmbiksICZwMm10KSksIG1mbl94KGdtZm4pLCBtZm5feChtZm4pKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogbWZuX3goZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBnZm4sICZwMm10 KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5feChnbWZuKSwgbWZuX3gobWZuKSk7 CiAgICAgICAgIH0KICAgICB9KTsKICAgICB1bm1hcF9kb21haW5fcGFnZShncCk7CkBAIC00ODgx LDggKzQ4ODMsNyBAQCBpbnQgc2hfYXVkaXRfbDNfdGFibGUoc3RydWN0IHZjcHUgKnYsIG1mbl90 IHNsM21mbiwgbWZuX3QgeCkKICAgICAgICAgewogICAgICAgICAgICAgZ2ZuID0gZ3Vlc3RfbDNl X2dldF9nZm4oKmdsM2UpOwogICAgICAgICAgICAgbWZuID0gc2hhZG93X2wzZV9nZXRfbWZuKCpz bDNlKTsKLSAgICAgICAgICAgIGdtZm4gPSBnZXRfc2hhZG93X3N0YXR1cyhkLCBnZXRfZ2ZuX3F1 ZXJ5X3VubG9ja2VkKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQs IGdmbl94KGdmbiksICZwMm10KSwKKyAgICAgICAgICAgIGdtZm4gPSBnZXRfc2hhZG93X3N0YXR1 cyhkLCBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdmbiwgJnAybXQpLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgoR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSAzIHx8CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc19wdl8zMmJpdF9kb21haW4o ZCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICFzaGFkb3dfbW9k ZV9leHRlcm5hbChkKQpAQCAtNDkzMSw4ICs0OTMyLDcgQEAgaW50IHNoX2F1ZGl0X2w0X3RhYmxl KHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBzbDRtZm4sIG1mbl90IHgpCiAgICAgICAgIHsKICAgICAg ICAgICAgIGdmbiA9IGd1ZXN0X2w0ZV9nZXRfZ2ZuKCpnbDRlKTsKICAgICAgICAgICAgIG1mbiA9 IHNoYWRvd19sNGVfZ2V0X21mbigqc2w0ZSk7Ci0gICAgICAgICAgICBnbWZuID0gZ2V0X3NoYWRv d19zdGF0dXMoZCwgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZCgKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkLCBnZm5feChnZm4pLCAmcDJtdCksCisgICAgICAgICAgICBnbWZu ID0gZ2V0X3NoYWRvd19zdGF0dXMoZCwgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBnZm4sICZw Mm10KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTSF90eXBlX2wzX3No YWRvdyk7CiAgICAgICAgICAgICBpZiAoICFtZm5fZXEoZ21mbiwgbWZuKSApCiAgICAgICAgICAg ICAgICAgQVVESVRfRkFJTCg0LCAiYmFkIHRyYW5zbGF0aW9uOiBnZm4gJSIgU0hfUFJJX2dmbgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy90eXBlcy5oIGIveGVuL2FyY2gveDg2 L21tL3NoYWRvdy90eXBlcy5oCmluZGV4IGQ1MDk2NzQuLmY2ODg5MTkgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9tbS9zaGFkb3cvdHlwZXMuaAorKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93 L3R5cGVzLmgKQEAgLTE5MywxMCArMTkzLDYgQEAgc3RhdGljIGlubGluZSBzaGFkb3dfbDRlX3Qg c2hhZG93X2w0ZV9mcm9tX21mbihtZm5fdCBtZm4sIHUzMiBmbGFncykKIH0pCiAjZW5kaWYKIAot IC8qIE92ZXJyaWRlIGdldF9nZm4gdG8gd29yayB3aXRoIGdmbl90ICovCi0jdW5kZWYgZ2V0X2dm bl9xdWVyeQotI2RlZmluZSBnZXRfZ2ZuX3F1ZXJ5KGQsIGcsIHQpIGdldF9nZm5fdHlwZSgoZCks IGdmbl94KGcpLCAodCksIDApCi0KIC8qIFRoZSBzaGFkb3cgdHlwZXMgbmVlZGVkIGZvciB0aGUg dmFyaW91cyBsZXZlbHMuICovCiAKICNpZiBHVUVTVF9QQUdJTkdfTEVWRUxTID09IDIKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YwppbmRleCBmNzg2MGY2Li41NGY5MDlmIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC0yMDk5LDcgKzIwOTksNyBA QCBnbnR0YWJfdHJhbnNmZXIoCiAgICAgICAgIHsKICAgICAgICAgICAgIHAybV90eXBlX3QgcDJt dDsKIAotICAgICAgICAgICAgbWZuID0gZ2V0X2dmbl91bnNoYXJlKGQsIGdvcC5tZm4sICZwMm10 KTsKKyAgICAgICAgICAgIG1mbiA9IGdldF9nZm5fdW5zaGFyZShkLCBfZ2ZuKGdvcC5tZm4pLCAm cDJtdCk7CiAgICAgICAgICAgICBpZiAoIHAybV9pc19zaGFyZWQocDJtdCkgfHwgIXAybV9pc192 YWxpZChwMm10KSApCiAgICAgICAgICAgICAgICAgbWZuID0gSU5WQUxJRF9NRk47CiAgICAgICAg IH0KQEAgLTIxMTEsNyArMjExMSw3IEBAIGdudHRhYl90cmFuc2ZlcigKICAgICAgICAgaWYgKCB1 bmxpa2VseSghbWZuX3ZhbGlkKG1mbikpICkKICAgICAgICAgewogI2lmZGVmIENPTkZJR19YODYK LSAgICAgICAgICAgIHB1dF9nZm4oZCwgZ29wLm1mbik7CisgICAgICAgICAgICBwdXRfZ2ZuKGQs IF9nZm4oZ29wLm1mbikpOwogI2VuZGlmCiAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5G TywgIm91dC1vZi1yYW5nZSAlbHhcbiIsICh1bnNpZ25lZCBsb25nKWdvcC5tZm4pOwogICAgICAg ICAgICAgZ29wLnN0YXR1cyA9IEdOVFNUX2JhZF9wYWdlOwpAQCAtMjEyMiw3ICsyMTIyLDcgQEAg Z250dGFiX3RyYW5zZmVyKAogICAgICAgICBpZiAoIChyYyA9IHN0ZWFsX3BhZ2UoZCwgcGFnZSwg MCkpIDwgMCApCiAgICAgICAgIHsKICNpZmRlZiBDT05GSUdfWDg2Ci0gICAgICAgICAgICBwdXRf Z2ZuKGQsIGdvcC5tZm4pOworICAgICAgICAgICAgcHV0X2dmbihkLCBfZ2ZuKGdvcC5tZm4pKTsK ICNlbmRpZgogICAgICAgICAgICAgZ29wLnN0YXR1cyA9IHJjID09IC1FSU5WQUwgPyBHTlRTVF9i YWRfcGFnZSA6IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgICAgICAgICBnb3RvIGNvcHliYWNr OwpAQCAtMjE1NCw3ICsyMTU0LDcgQEAgZ250dGFiX3RyYW5zZmVyKAogICAgICAgICAgICAgcmN1 X3VubG9ja19kb21haW4oZSk7CiAgICAgICAgIHB1dF9nZm5fYW5kX2NvcHliYWNrOgogI2lmZGVm IENPTkZJR19YODYKLSAgICAgICAgICAgIHB1dF9nZm4oZCwgZ29wLm1mbik7CisgICAgICAgICAg ICBwdXRfZ2ZuKGQsIF9nZm4oZ29wLm1mbikpOwogI2VuZGlmCiAgICAgICAgICAgICBwYWdlLT5j b3VudF9pbmZvICY9IH4oUEdDX2NvdW50X21hc2t8UEdDX2FsbG9jYXRlZCk7CiAgICAgICAgICAg ICBmcmVlX2RvbWhlYXBfcGFnZShwYWdlKTsKQEAgLTIyNDMsNyArMjI0Myw3IEBAIGdudHRhYl90 cmFuc2ZlcigKIAogICAgICAgICBzcGluX3VubG9jaygmZS0+cGFnZV9hbGxvY19sb2NrKTsKICNp ZmRlZiBDT05GSUdfWDg2Ci0gICAgICAgIHB1dF9nZm4oZCwgZ29wLm1mbik7CisgICAgICAgIHB1 dF9nZm4oZCwgX2dmbihnb3AubWZuKSk7CiAjZW5kaWYKIAogICAgICAgICBUUkFDRV8xRChUUkNf TUVNX1BBR0VfR1JBTlRfVFJBTlNGRVIsIGUtPmRvbWFpbl9pZCk7CmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCAxNzViZDYyLi5jNTlh MDE3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21tb24vbWVt b3J5LmMKQEAgLTMwMywxMCArMzAzLDEwIEBAIGludCBndWVzdF9yZW1vdmVfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4pCiAgICAgaW50IHJjOwogCiAjaWZkZWYgQ09O RklHX1g4NgotICAgIG1mbiA9IGdldF9nZm5fcXVlcnkoZCwgZ21mbiwgJnAybXQpOworICAgIG1m biA9IGdldF9nZm5fcXVlcnkoZCwgX2dmbihnbWZuKSwgJnAybXQpOwogICAgIGlmICggdW5saWtl bHkocDJtdCA9PSBwMm1faW52YWxpZCkgfHwgdW5saWtlbHkocDJtdCA9PSBwMm1fbW1pb19kbSkg KQogICAgIHsKLSAgICAgICAgcHV0X2dmbihkLCBnbWZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBf Z2ZuKGdtZm4pKTsKIAogICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAgICB9CkBAIC0zMzYsNyAr MzM2LDcgQEAgaW50IGd1ZXN0X3JlbW92ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGxvbmcgZ21mbikKICAgICAgICAgICAgIGdvdG8gb3V0X3B1dF9nZm47CiAgICAgICAgIH0KIAot ICAgICAgICBwdXRfZ2ZuKGQsIGdtZm4pOworICAgICAgICBwdXRfZ2ZuKGQsIF9nZm4oZ21mbikp OwogCiAgICAgICAgIGlmICggcGFnZSApCiAgICAgICAgIHsKQEAgLTM1OSw3ICszNTksNyBAQCBp bnQgZ3Vlc3RfcmVtb3ZlX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnbWZu KQogICAgIGlmICggdW5saWtlbHkoIW1mbl92YWxpZChtZm4pKSApCiAgICAgewogI2lmZGVmIENP TkZJR19YODYKLSAgICAgICAgcHV0X2dmbihkLCBnbWZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBf Z2ZuKGdtZm4pKTsKICNlbmRpZgogICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgIkRvbWFp biAldSBwYWdlIG51bWJlciAlbHggaW52YWxpZFxuIiwKICAgICAgICAgICAgICAgICBkLT5kb21h aW5faWQsIGdtZm4pOwpAQCAtMzgyLDcgKzM4Miw3IEBAIGludCBndWVzdF9yZW1vdmVfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4pCiAgICAgICAgICAgICBnb3RvIG91 dF9wdXRfZ2ZuOwogICAgICAgICB9CiAgICAgICAgIC8qIE1heWJlIHRoZSBtZm4gY2hhbmdlZCAq LwotICAgICAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5X3VubG9ja2VkKGQsIGdtZm4sICZwMm10KTsK KyAgICAgICAgbWZuID0gZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChkLCBfZ2ZuKGdtZm4pLCAmcDJt dCk7CiAgICAgICAgIEFTU0VSVCghcDJtX2lzX3NoYXJlZChwMm10KSk7CiAgICAgfQogI2VuZGlm IC8qIENPTkZJR19YODYgKi8KQEAgLTM5MSw3ICszOTEsNyBAQCBpbnQgZ3Vlc3RfcmVtb3ZlX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnbWZuKQogICAgIGlmICggdW5saWtl bHkoIWdldF9wYWdlKHBhZ2UsIGQpKSApCiAgICAgewogI2lmZGVmIENPTkZJR19YODYKLSAgICAg ICAgcHV0X2dmbihkLCBnbWZuKTsKKyAgICAgICAgcHV0X2dmbihkLCBfZ2ZuKGdtZm4pKTsKICNl bmRpZgogICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5GTywgIkJhZCBwYWdlIGZyZWUgZm9yIGRv bWFpbiAldVxuIiwgZC0+ZG9tYWluX2lkKTsKIApAQCAtNDE2LDcgKzQxNiw3IEBAIGludCBndWVz dF9yZW1vdmVfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4pCiAKICNp ZmRlZiBDT05GSUdfWDg2CiAgb3V0X3B1dF9nZm46Ci0gICAgcHV0X2dmbihkLCBnbWZuKTsKKyAg ICBwdXRfZ2ZuKGQsIF9nZm4oZ21mbikpOwogI2VuZGlmCiAKICAgICAvKgpAQCAtNjUxLDEwICs2 NTEsMTAgQEAgc3RhdGljIGxvbmcgbWVtb3J5X2V4Y2hhbmdlKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX21lbW9yeV9leGNoYW5nZV90KSBhcmcpCiAgICAgICAgICAgICAgICAgcDJtX3R5cGVf dCBwMm10OwogCiAgICAgICAgICAgICAgICAgLyogU2hhcmVkIHBhZ2VzIGNhbm5vdCBiZSBleGNo YW5nZWQgKi8KLSAgICAgICAgICAgICAgICBtZm4gPSBnZXRfZ2ZuX3Vuc2hhcmUoZCwgZ21mbiAr IGssICZwMm10KTsKKyAgICAgICAgICAgICAgICBtZm4gPSBnZXRfZ2ZuX3Vuc2hhcmUoZCwgX2dm bihnbWZuICsgayksICZwMm10KTsKICAgICAgICAgICAgICAgICBpZiAoIHAybV9pc19zaGFyZWQo cDJtdCkgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHV0X2dmbihk LCBnbWZuICsgayk7CisgICAgICAgICAgICAgICAgICAgIHB1dF9nZm4oZCwgX2dmbihnbWZuICsg aykpOwogICAgICAgICAgICAgICAgICAgICByYyA9IC1FTk9NRU07CiAgICAgICAgICAgICAgICAg ICAgIGdvdG8gZmFpbDsgCiAgICAgICAgICAgICAgICAgfQpAQCAtNjY0LDcgKzY2NCw3IEBAIHN0 YXRpYyBsb25nIG1lbW9yeV9leGNoYW5nZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tZW1v cnlfZXhjaGFuZ2VfdCkgYXJnKQogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkoIW1mbl92 YWxpZChtZm4pKSApCiAgICAgICAgICAgICAgICAgewogI2lmZGVmIENPTkZJR19YODYKLSAgICAg ICAgICAgICAgICAgICAgcHV0X2dmbihkLCBnbWZuICsgayk7CisgICAgICAgICAgICAgICAgICAg IHB1dF9nZm4oZCwgX2dmbihnbWZuICsgaykpOwogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAg IHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwpAQCAtNjc2LDE0 ICs2NzYsMTQgQEAgc3RhdGljIGxvbmcgbWVtb3J5X2V4Y2hhbmdlKFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGVuX21lbW9yeV9leGNoYW5nZV90KSBhcmcpCiAgICAgICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShyYykgKQogICAgICAgICAgICAgICAgIHsKICNpZmRlZiBDT05GSUdfWDg2Ci0gICAg ICAgICAgICAgICAgICAgIHB1dF9nZm4oZCwgZ21mbiArIGspOworICAgICAgICAgICAgICAgICAg ICBwdXRfZ2ZuKGQsIF9nZm4oZ21mbiArIGspKTsKICNlbmRpZgogICAgICAgICAgICAgICAgICAg ICBnb3RvIGZhaWw7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgcGFnZV9s aXN0X2FkZChwYWdlLCAmaW5fY2h1bmtfbGlzdCk7CiAjaWZkZWYgQ09ORklHX1g4NgotICAgICAg ICAgICAgICAgIHB1dF9nZm4oZCwgZ21mbiArIGspOworICAgICAgICAgICAgICAgIHB1dF9nZm4o ZCwgX2dmbihnbWZuICsgaykpOwogI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9ndWVzdC5jIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMKaW5kZXggMDNjYTBjZi4uN2Fi M2M3NyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0 LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2d1ZXN0LmMKQEAgLTIx LDE0ICsyMSw2IEBACiAjaW5jbHVkZSA8YXNtL2FtZC1pb21tdS5oPgogI2luY2x1ZGUgPGFzbS9o dm0vc3ZtL2FtZC1pb21tdS1wcm90by5oPgogCi0vKiBPdmVycmlkZSB7Z2V0LHB1dH1fZ2ZuIHRv IHdvcmsgd2l0aCBnZm5fdCAqLwotI3VuZGVmIGdldF9nZm4KLSNkZWZpbmUgZ2V0X2dmbihkLCBn LCB0KSBnZXRfZ2ZuX3R5cGUoZCwgZ2ZuX3goZyksIHQsIFAyTV9BTExPQykKLSN1bmRlZiBnZXRf Z2ZuX3F1ZXJ5Ci0jZGVmaW5lIGdldF9nZm5fcXVlcnkoZCwgZywgdCkgZ2V0X2dmbl90eXBlKGQs IGdmbl94KGcpLCB0LCAwKQotI3VuZGVmIHB1dF9nZm4KLSNkZWZpbmUgcHV0X2dmbihkLCBnKSBf X3B1dF9nZm4ocDJtX2dldF9ob3N0cDJtKGQpLCBnZm5feChnKSkKLQogI2RlZmluZSBJT01NVV9N TUlPX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwCiAjZGVmaW5lIElPTU1VX01N SU9fUEFHRV9OUiAgICAgICAgICAgICAgICAgICAgICAweDgKICNkZWZpbmUgUklOR19CRl9MRU5H VEhfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MEYwMDAwMDAKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvZ3Vlc3RfcHQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vlc3RfcHQu aAppbmRleCA4Njg0YjgzLi44N2M2ODE1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2 L2d1ZXN0X3B0LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9wdC5oCkBAIC0zOCwx MCArMzgsNiBAQCBnZm5fdG9fcGFkZHIoZ2ZuX3QgZ2ZuKQogICAgIHJldHVybiAoKHBhZGRyX3Qp Z2ZuX3goZ2ZuKSkgPDwgUEFHRV9TSElGVDsKIH0KIAotLyogT3ZlcnJpZGUgZ2V0X2dmbiB0byB3 b3JrIHdpdGggZ2ZuX3QgKi8KLSN1bmRlZiBnZXRfZ2ZuCi0jZGVmaW5lIGdldF9nZm4oZCwgZywg dCkgZ2V0X2dmbl90eXBlKChkKSwgZ2ZuX3goZyksICh0KSwgUDJNX0FMTE9DKQotCiAvKiBNYXNr IGNvdmVyaW5nIHRoZSByZXNlcnZlZCBiaXRzIGZyb20gc3VwZXJwYWdlIGFsaWdubWVudC4gKi8K ICNkZWZpbmUgU1VQRVJQQUdFX1JTVkQoYml0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAoKCgxdWwgPDwgKGJpdCkpIC0gMSkgJiB+KF9QQUdFX1BT RV9QQVQgfCAoX1BBR0VfUFNFX1BBVCAtIDF1bCkpKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5kZXggOGJkNmY2NC4u ZTMzMmYwNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC00MzEsNyArNDMxLDcgQEAgdm9pZCBwMm1fdW5sb2Nr X2FuZF90bGJfZmx1c2goc3RydWN0IHAybV9kb21haW4gKnAybSk7CiAgKiBwdXRfZ2ZuLiAqKioq LwogCiBtZm5fdCBfX25vbm51bGwoMywgNCkgX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKAotICAgIHN0 cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuLCBwMm1fdHlwZV90ICp0LAor ICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCwKICAg ICBwMm1fYWNjZXNzX3QgKmEsIHAybV9xdWVyeV90IHEsIHVuc2lnbmVkIGludCAqcGFnZV9vcmRl ciwgYm9vbF90IGxvY2tlZCk7CiAKIC8qCkBAIC00NDQsNyArNDQ0LDcgQEAgbWZuX3QgX19ub25u dWxsKDMsIDQpIF9fZ2V0X2dmbl90eXBlX2FjY2VzcygKICAqIHRoZSBlbnRyeSB3YXMgZm91bmQg aW4uCiAgKi8KIHN0YXRpYyBpbmxpbmUgbWZuX3QgX19ub25udWxsKDMsIDQpIGdldF9nZm5fdHlw ZV9hY2Nlc3MoCi0gICAgc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4s IHAybV90eXBlX3QgKnQsCisgICAgc3RydWN0IHAybV9kb21haW4gKnAybSwgZ2ZuX3QgZ2ZuLCBw Mm1fdHlwZV90ICp0LAogICAgIHAybV9hY2Nlc3NfdCAqYSwgcDJtX3F1ZXJ5X3QgcSwgdW5zaWdu ZWQgaW50ICpwYWdlX29yZGVyKQogewogICAgIHJldHVybiBfX2dldF9nZm5fdHlwZV9hY2Nlc3Mo cDJtLCBnZm4sIHQsIGEsIHEsIHBhZ2Vfb3JkZXIsIHRydWUpOwpAQCAtNDUyLDIyICs0NTIsMjEg QEAgc3RhdGljIGlubGluZSBtZm5fdCBfX25vbm51bGwoMywgNCkgZ2V0X2dmbl90eXBlX2FjY2Vz cygKIAogLyogR2VuZXJhbCBjb252ZXJzaW9uIGZ1bmN0aW9uIGZyb20gZ2ZuIHRvIG1mbiAqLwog c3RhdGljIGlubGluZSBtZm5fdCBfX25vbm51bGwoMykgZ2V0X2dmbl90eXBlKAotICAgIHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBwMm1fdHlwZV90ICp0LCBwMm1fcXVlcnlf dCBxKQorICAgIHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCwgcDJt X3F1ZXJ5X3QgcSkKIHsKICAgICBwMm1fYWNjZXNzX3QgYTsKICAgICByZXR1cm4gZ2V0X2dmbl90 eXBlX2FjY2VzcyhwMm1fZ2V0X2hvc3RwMm0oZCksIGdmbiwgdCwgJmEsIHEsIE5VTEwpOwogfQog CiAvKiBTeW50YWN0aWMgc3VnYXI6IG1vc3QgY2FsbGVycyB3aWxsIHVzZSBvbmUgb2YgdGhlc2Uu ICovCi0jZGVmaW5lIGdldF9nZm4oZCwgZywgdCkgICAgICAgICBnZXRfZ2ZuX3R5cGUoKGQpLCAo ZyksICh0KSwgUDJNX0FMTE9DKQotI2RlZmluZSBnZXRfZ2ZuX3F1ZXJ5KGQsIGcsIHQpICAgZ2V0 X2dmbl90eXBlKChkKSwgKGcpLCAodCksIDApCi0jZGVmaW5lIGdldF9nZm5fdW5zaGFyZShkLCBn LCB0KSBnZXRfZ2ZuX3R5cGUoKGQpLCAoZyksICh0KSwgXAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFKQorI2RlZmlu ZSBnZXRfZ2ZuKGQsIGcsIHQpICAgICAgICAgZ2V0X2dmbl90eXBlKGQsIGcsIHQsIFAyTV9BTExP QykKKyNkZWZpbmUgZ2V0X2dmbl9xdWVyeShkLCBnLCB0KSAgIGdldF9nZm5fdHlwZShkLCBnLCB0 LCAwKQorI2RlZmluZSBnZXRfZ2ZuX3Vuc2hhcmUoZCwgZywgdCkgZ2V0X2dmbl90eXBlKGQsIGcs IHQsIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFKQogCiAvKiBXaWxsIHJlbGVhc2UgdGhlIHAybV9s b2NrIGZvciB0aGlzIGdmbiBlbnRyeS4gKi8KLXZvaWQgX19wdXRfZ2ZuKHN0cnVjdCBwMm1fZG9t YWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK3ZvaWQgX19wdXRfZ2ZuKHN0cnVjdCBwMm1f ZG9tYWluICpwMm0sIGdmbl90IGdmbik7CiAKLSNkZWZpbmUgcHV0X2dmbihkLCBnZm4pIF9fcHV0 X2dmbihwMm1fZ2V0X2hvc3RwMm0oKGQpKSwgKGdmbikpCisjZGVmaW5lIHB1dF9nZm4oZCwgZykg X19wdXRfZ2ZuKHAybV9nZXRfaG9zdHAybShkKSwgZykKIAogLyoKICAqIFRoZSBpbnRlbnQgb2Yg dGhlICJ1bmxvY2tlZCIgYWNjZXNzb3IgaXMgdG8gaGF2ZSB0aGUgY2FsbGVyIG5vdCB3b3JyeSBh Ym91dApAQCAtNDg0LDkgKzQ4Myw4IEBAIHZvaWQgX19wdXRfZ2ZuKHN0cnVjdCBwMm1fZG9tYWlu ICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKICAqIEFueSBvdGhlciB0eXBlIG9mIHF1ZXJ5IGNh biBjYXVzZSBhIGNoYW5nZSBpbiB0aGUgcDJtIGFuZCBtYXkgbmVlZCB0bwogICogcGVyZm9ybSBs b2NraW5nLgogICovCi1zdGF0aWMgaW5saW5lIG1mbl90IGdldF9nZm5fcXVlcnlfdW5sb2NrZWQo c3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIGdmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwMm1fdHlwZV90ICp0KQorc3RhdGljIGlubGluZSBtZm5fdCBnZXRfZ2ZuX3F1 ZXJ5X3VubG9ja2VkKAorICAgIHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVf dCAqdCkKIHsKICAgICBwMm1fYWNjZXNzX3QgYTsKICAgICByZXR1cm4gX19nZXRfZ2ZuX3R5cGVf YWNjZXNzKHAybV9nZXRfaG9zdHAybShkKSwgZ2ZuLCB0LCAmYSwgMCwgTlVMTCwgMCk7CkBAIC01 NjksOSArNTY3LDkgQEAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAKICAgICAvKiBOb3cgZG8gdGhlIGdldHMgKi8KICAgICAqZmlyc3Rf bWZuICA9IGdldF9nZm5fdHlwZV9hY2Nlc3MocDJtX2dldF9ob3N0cDJtKHJ2YWwtPmZpcnN0X2Rv bWFpbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdmbl94KHJ2YWwt PmZpcnN0X2dmbiksIGZpcnN0X3QsIGZpcnN0X2EsIHEsIE5VTEwpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBydmFsLT5maXJzdF9nZm4sIGZpcnN0X3QsIGZpcnN0X2Es IHEsIE5VTEwpOwogICAgICpzZWNvbmRfbWZuID0gZ2V0X2dmbl90eXBlX2FjY2VzcyhwMm1fZ2V0 X2hvc3RwMm0ocnZhbC0+c2Vjb25kX2RvbWFpbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdmbl94KHJ2YWwtPnNlY29uZF9nZm4pLCBzZWNvbmRfdCwgc2Vjb25kX2Es IHEsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydmFsLT5z ZWNvbmRfZ2ZuLCBzZWNvbmRfdCwgc2Vjb25kX2EsIHEsIE5VTEwpOwogfQogCiBzdGF0aWMgaW5s aW5lIHZvaWQgcHV0X3R3b19nZm5zKHN0cnVjdCB0d29fZ2ZucyAqYXJnKQpAQCAtNTc5LDggKzU3 Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRfdHdvX2dmbnMoc3RydWN0IHR3b19nZm5zICph cmcpCiAgICAgaWYgKCAhYXJnICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHV0X2dmbihhcmct PnNlY29uZF9kb21haW4sIGdmbl94KGFyZy0+c2Vjb25kX2dmbikpOwotICAgIHB1dF9nZm4oYXJn LT5maXJzdF9kb21haW4sICBnZm5feChhcmctPmZpcnN0X2dmbikpOworICAgIHB1dF9nZm4oYXJn LT5zZWNvbmRfZG9tYWluLCBhcmctPnNlY29uZF9nZm4pOworICAgIHB1dF9nZm4oYXJnLT5maXJz dF9kb21haW4sICBhcmctPmZpcnN0X2dmbik7CiB9CiAKIC8qIEluaXQgdGhlIGRhdGFzdHJ1Y3R1 cmVzIGZvciBsYXRlciB1c2UgYnkgdGhlIHAybSBjb2RlICovCi0tIAoyLjEuNAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=