From mboxrd@z Thu Jan 1 00:00:00 1970 From: Umesh Nerlige Ramappa Subject: [PATCH] drm/i915/perf: Refactor oa object to better manage resources Date: Wed, 15 May 2019 11:07:36 -0700 Message-ID: <20190515180736.3425-1-umesh.nerlige.ramappa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7DE2A89226 for ; Wed, 15 May 2019 18:07:37 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIG9hIG9iamVjdCBtYW5hZ2VzIHRoZSBvYSBidWZmZXIgYW5kIG11c3QgYmUgYWxsb2NhdGVk IHdoZW4gdGhlIHVzZXIKaW50ZW5kcyB0byByZWFkIHBlcmZvcm1hbmNlIGNvdW50ZXIgc25hcHNo b3RzLiBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieQptYWtpbmcgdGhlIG9hIG9iamVjdCBwYXJ0IG9m IHRoZSBzdHJlYW0gb2JqZWN0IHdoaWNoIGlzIGFsbG9jYXRlZCB3aGVuIGEKc3RyZWFtIGlzIG9w ZW5lZCBieSB0aGUgdXNlci4KCkF0dHJpYnV0ZXMgaW4gdGhlIG9hIG9iamVjdCB0aGF0IGFyZSBn ZW4tc3BlY2lmaWMgYXJlIG1vdmVkIHRvIHRoZSBwZXJmCm9iamVjdCBzbyB0aGF0IHRoZXkgY2Fu IGJlIGluaXRpYWxpemVkIG9uIGRyaXZlciBsb2FkLgoKVGhlIHNwbGl0IHByb3ZpZGVzIGEgYmV0 dGVyIHNlcGFyYXRpb24gb2YgdGhlIG9iamVjdHMgdXNlZCBpbiBwZXJmCmltcGxlbWVudGF0aW9u IG9mIGk5MTUgZHJpdmVyIHNvIHRoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgYW5kCmluaXRp YWxpemVkIG9ubHkgd2hlbiBuZWVkZWQuCgp2MjogRml4IGNoZWNrcGF0Y2ggd2FybmluZ3MKdjM6 IEFkZHJlc3NlZCBMaW9uZWwncyByZXZpZXcgY29tbWVudAoKU2lnbmVkLW9mZi1ieTogVW1lc2gg TmVybGlnZSBSYW1hcHBhIDx1bWVzaC5uZXJsaWdlLnJhbWFwcGFAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYyAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYyAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgfCAyMTkgKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9iZHcuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9i eHQuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYyB8 ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDMuYyB8ICAzMCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jaHYuYyAgICB8ICAzMCArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9vYV9jbmwuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9nbGsuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9v YV9oc3cuYyAgICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9pY2wuYyAg ICB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDIuYyB8ICAzMCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDMuYyB8ICAzMCArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDIuYyB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9za2xndDMuYyB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9za2xndDQuYyB8ICAzMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMg ICAgICB8IDU4MyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMTggZmlsZXMgY2hhbmdlZCwg NjI5IGluc2VydGlvbnMoKyksIDU5OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9zc2V1LmMKaW5kZXggN2Y0NDhmM2JlYTBiLi5mYTc4ZGYzOTUyMWEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9zc2V1LmMKQEAgLTMyLDcgKzMyLDcgQEAgdTMyIGludGVsX3NzZXVf bWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCSAqIGNhc2VzIHdoaWNo IGRpc2FibGUgc2xpY2VzIGZvciBmdW5jdGlvbmFsLCBhcGFydCBmb3IgcGVyZm9ybWFuY2UKIAkg KiByZWFzb25zLiBTbyBpbiB0aGlzIGNhc2Ugd2Ugc2VsZWN0IGEga25vd24gc3RhYmxlIHN1YnNl dC4KIAkgKi8KLQlpZiAoIWk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSkgeworCWlmICgh aTkxNS0+cGVyZi5leGNsdXNpdmVfc3RyZWFtKSB7CiAJCWN0eF9zc2V1ID0gKnJlcV9zc2V1Owog CX0gZWxzZSB7CiAJCWN0eF9zc2V1ID0gaW50ZWxfc3NldV9mcm9tX2RldmljZV9pbmZvKHNzZXUp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCmluZGV4IDdhZTQyZjJlYmZlOC4uODc4 ZTcxYTkyN2RlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jCkBAIC04MSw4ICs4 MSw4IEBAIHN0YXRpYyB2b2lkIHNyX29hX3JlZ3Moc3RydWN0IGludGVsX3ZncHVfd29ya2xvYWQg Kndvcmtsb2FkLAogCQl1MzIgKnJlZ19zdGF0ZSwgYm9vbCBzYXZlKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHdvcmtsb2FkLT52Z3B1LT5ndnQtPmRldl9wcml2Owot CXUzMiBjdHhfb2FjdHhjdHJsID0gZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZz ZXQ7Ci0JdTMyIGN0eF9mbGV4ZXUwID0gZGV2X3ByaXYtPnBlcmYub2EuY3R4X2ZsZXhldTBfb2Zm c2V0OworCXUzMiBjdHhfb2FjdHhjdHJsID0gZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4Y3RybF9v ZmZzZXQ7CisJdTMyIGN0eF9mbGV4ZXUwID0gZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhldTBfb2Zm c2V0OwogCWludCBpID0gMDsKIAl1MzIgZmxleF9tbWlvW10gPSB7CiAJCWk5MTVfbW1pb19yZWdf b2Zmc2V0KEVVX1BFUkZfQ05UTDApLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOWE2MzRi YTU3ZmY5Li4yMzc3OGY2Mjk5ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTQwMCw2 ICsxNDAwLDg2IEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKIAkgKiBAb2FfY29uZmlnOiBU aGUgT0EgY29uZmlndXJhdGlvbiB1c2VkIGJ5IHRoZSBzdHJlYW0uCiAJICovCiAJc3RydWN0IGk5 MTVfb2FfY29uZmlnICpvYV9jb25maWc7CisKKwkvKioKKwkgKiBUaGUgT0EgY29udGV4dCBzcGVj aWZpYyBpbmZvcm1hdGlvbi4KKwkgKi8KKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqcGlubmVkX2N0 eDsKKwl1MzIgc3BlY2lmaWNfY3R4X2lkOworCXUzMiBzcGVjaWZpY19jdHhfaWRfbWFzazsKKwor CXN0cnVjdCBocnRpbWVyIHBvbGxfY2hlY2tfdGltZXI7CisJd2FpdF9xdWV1ZV9oZWFkX3QgcG9s bF93cTsKKwlib29sIHBvbGxpbjsKKworCWJvb2wgcGVyaW9kaWM7CisJaW50IHBlcmlvZF9leHBv bmVudDsKKworCS8qKgorCSAqIFN0YXRlIG9mIHRoZSBPQSBidWZmZXIuCisJICovCisJc3RydWN0 IHsKKwkJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJCXU4ICp2YWRkcjsKKwkJdTMyIGxhc3RfY3R4 X2lkOworCQlpbnQgZm9ybWF0OworCQlpbnQgZm9ybWF0X3NpemU7CisJCWludCBzaXplX2V4cG9u ZW50OworCisJCS8qKgorCQkgKiBMb2NrcyByZWFkcyBhbmQgd3JpdGVzIHRvIGFsbCBoZWFkL3Rh aWwgc3RhdGUKKwkJICoKKwkJICogQ29uc2lkZXI6IHRoZSBoZWFkIGFuZCB0YWlsIHBvaW50ZXIg c3RhdGUgbmVlZHMgdG8gYmUgcmVhZAorCQkgKiBjb25zaXN0ZW50bHkgZnJvbSBhIGhydGltZXIg Y2FsbGJhY2sgKGF0b21pYyBjb250ZXh0KSBhbmQKKwkJICogcmVhZCgpIGZvcCAodXNlciBjb250 ZXh0KSB3aXRoIHRhaWwgcG9pbnRlciB1cGRhdGVzIGhhcHBlbmluZworCQkgKiBpbiBhdG9taWMg Y29udGV4dCBhbmQgaGVhZCB1cGRhdGVzIGluIHVzZXIgY29udGV4dCBhbmQgdGhlCisJCSAqICh1 bmxpa2VseSkgcG9zc2liaWxpdHkgb2YgcmVhZCgpIGVycm9ycyBuZWVkaW5nIHRvIHJlc2V0IGFs bAorCQkgKiBoZWFkL3RhaWwgc3RhdGUuCisJCSAqCisJCSAqIE5vdGU6IENvbnRlbnRpb24vcGVy Zm9ybWFuY2UgYXJlbid0IGN1cnJlbnRseSBhIHNpZ25pZmljYW50CisJCSAqIGNvbmNlcm4gaGVy ZSBjb25zaWRlcmluZyB0aGUgcmVsYXRpdmVseSBsb3cgZnJlcXVlbmN5IG9mCisJCSAqIGhydGlt ZXIgY2FsbGJhY2tzICg1bXMgcGVyaW9kKSBhbmQgdGhhdCByZWFkcyB0eXBpY2FsbHkgb25seQor CQkgKiBoYXBwZW4gaW4gcmVzcG9uc2UgdG8gYSBocnRpbWVyIGV2ZW50IGFuZCBsaWtlbHkgY29t cGxldGUKKwkJICogYmVmb3JlIHRoZSBuZXh0IGNhbGxiYWNrLgorCQkgKgorCQkgKiBOb3RlOiBU aGlzIGxvY2sgaXMgbm90IGhlbGQgKndoaWxlKiByZWFkaW5nIGFuZCBjb3B5aW5nIGRhdGEKKwkJ ICogdG8gdXNlcnNwYWNlIHNvIHRoZSB2YWx1ZSBvZiBoZWFkIG9ic2VydmVkIGluIGh0cmltZXIK KwkJICogY2FsbGJhY2tzIHdvbid0IHJlcHJlc2VudCBhbnkgcGFydGlhbCBjb25zdW1wdGlvbiBv ZiBkYXRhLgorCQkgKi8KKwkJc3BpbmxvY2tfdCBwdHJfbG9jazsKKworCQkvKioKKwkJICogT25l ICdhZ2luZycgdGFpbCBwb2ludGVyIGFuZCBvbmUgJ2FnZWQnIHRhaWwgcG9pbnRlciByZWFkeSB0 bworCQkgKiB1c2VkIGZvciByZWFkaW5nLgorCQkgKgorCQkgKiBJbml0aWFsIHZhbHVlcyBvZiAw eGZmZmZmZmZmIGFyZSBpbnZhbGlkIGFuZCBpbXBseSB0aGF0IGFuCisJCSAqIHVwZGF0ZSBpcyBy ZXF1aXJlZCAoYW5kIHNob3VsZCBiZSBpZ25vcmVkIGJ5IGFuIGF0dGVtcHRlZAorCQkgKiByZWFk KQorCQkgKi8KKwkJc3RydWN0IHsKKwkJCXUzMiBvZmZzZXQ7CisJCX0gdGFpbHNbMl07CisKKwkJ LyoqCisJCSAqIEluZGV4IGZvciB0aGUgYWdlZCB0YWlsIHJlYWR5IHRvIHJlYWQoKSBkYXRhIHVw IHRvLgorCQkgKi8KKwkJdW5zaWduZWQgaW50IGFnZWRfdGFpbF9pZHg7CisKKwkJLyoqCisJCSAq IEEgbW9ub3RvbmljIHRpbWVzdGFtcCBmb3Igd2hlbiB0aGUgY3VycmVudCBhZ2luZyB0YWlsIHBv aW50ZXIKKwkJICogd2FzIHJlYWQ7IHVzZWQgdG8gZGV0ZXJtaW5lIHdoZW4gaXQgaXMgb2xkIGVu b3VnaCB0byB0cnVzdC4KKwkJICovCisJCXU2NCBhZ2luZ190aW1lc3RhbXA7CisKKwkJLyoqCisJ CSAqIEFsdGhvdWdoIHdlIGNhbiBhbHdheXMgcmVhZCBiYWNrIHRoZSBoZWFkIHBvaW50ZXIgcmVn aXN0ZXIsCisJCSAqIHdlIHByZWZlciB0byBhdm9pZCB0cnVzdGluZyB0aGUgSFcgc3RhdGUsIGp1 c3QgdG8gYXZvaWQgYW55CisJCSAqIHJpc2sgdGhhdCBzb21lIGhhcmR3YXJlIGNvbmRpdGlvbiBj b3VsZCAqIHNvbWVob3cgYnVtcCB0aGUKKwkJICogaGVhZCBwb2ludGVyIHVucHJlZGljdGFibHkg YW5kIGNhdXNlIHVzIHRvIGZvcndhcmQgdGhlIHdyb25nCisJCSAqIE9BIGJ1ZmZlciBkYXRhIHRv IHVzZXJzcGFjZS4KKwkJICovCisJCXUzMiBoZWFkOworCX0gb2FfYnVmZmVyOwogfTsKIAogLyoq CkBAIC0xNDM3LDcgKzE1MTcsNyBAQCBzdHJ1Y3QgaTkxNV9vYV9vcHMgewogCSAqIEBkaXNhYmxl X21ldHJpY19zZXQ6IFJlbW92ZSBzeXN0ZW0gY29uc3RyYWludHMgYXNzb2NpYXRlZCB3aXRoIHVz aW5nCiAJICogdGhlIE9BIHVuaXQuCiAJICovCi0Jdm9pZCAoKmRpc2FibGVfbWV0cmljX3NldCko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKwl2b2lkICgqZGlzYWJsZV9tZXRy aWNfc2V0KShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKTsKIAogCS8qKgogCSAqIEBv YV9lbmFibGU6IEVuYWJsZSBwZXJpb2RpYyBzYW1wbGluZwpAQCAtMTQ2NSw3ICsxNTQ1LDcgQEAg c3RydWN0IGk5MTVfb2Ffb3BzIHsKIAkgKiBoYW5kbGluZyB0aGUgT0EgdW5pdCB0YWlsIHBvaW50 ZXIgcmFjZSB0aGF0IGFmZmVjdHMgbXVsdGlwbGUKIAkgKiBnZW5lcmF0aW9ucy4KIAkgKi8KLQl1 MzIgKCpvYV9od190YWlsX3JlYWQpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CisJdTMyICgqb2FfaHdfdGFpbF9yZWFkKShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt KTsKIH07CiAKIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSB7CkBAIC0xODY4LDEyMCArMTk0OCwz NSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJCXN0cnVjdCBtdXRleCBsb2NrOwogCQlz dHJ1Y3QgbGlzdF9oZWFkIHN0cmVhbXM7CiAKLQkJc3RydWN0IHsKLQkJCS8qCi0JCQkgKiBUaGUg c3RyZWFtIGN1cnJlbnRseSB1c2luZyB0aGUgT0EgdW5pdC4gSWYgYWNjZXNzZWQKLQkJCSAqIG91 dHNpZGUgYSBzeXNjYWxsIGFzc29jaWF0ZWQgdG8gaXRzIGZpbGUKLQkJCSAqIGRlc2NyaXB0b3Is IHlvdSBuZWVkIHRvIGhvbGQKLQkJCSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4LgotCQkJ ICovCi0JCQlzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqZXhjbHVzaXZlX3N0cmVhbTsKKwkJLyoK KwkJICogVGhlIHN0cmVhbSBjdXJyZW50bHkgdXNpbmcgdGhlIE9BIHVuaXQuIElmIGFjY2Vzc2Vk CisJCSAqIG91dHNpZGUgYSBzeXNjYWxsIGFzc29jaWF0ZWQgdG8gaXRzIGZpbGUKKwkJICogZGVz Y3JpcHRvciwgeW91IG5lZWQgdG8gaG9sZAorCQkgKiBkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRl eC4KKwkJICovCisJCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpleGNsdXNpdmVfc3RyZWFtOwor CisJCS8qKgorCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBzcHVy aW91cworCQkgKiBpbnZhbGlkIE9BIHJlcG9ydHMKKwkJICovCisJCXN0cnVjdCByYXRlbGltaXRf c3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOwogCi0JCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqcGlu bmVkX2N0eDsKLQkJCXUzMiBzcGVjaWZpY19jdHhfaWQ7Ci0JCQl1MzIgc3BlY2lmaWNfY3R4X2lk X21hc2s7CisJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyB0ZXN0X2NvbmZpZzsKIAotCQkJc3RydWN0 IGhydGltZXIgcG9sbF9jaGVja190aW1lcjsKLQkJCXdhaXRfcXVldWVfaGVhZF90IHBvbGxfd3E7 Ci0JCQlib29sIHBvbGxpbjsKKwkJdTMyIGdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7CisJCXUzMiBj dHhfb2FjdHhjdHJsX29mZnNldDsKKwkJdTMyIGN0eF9mbGV4ZXUwX29mZnNldDsKIAotCQkJLyoq Ci0JCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBzcHVyaW91cwot CQkJICogaW52YWxpZCBPQSByZXBvcnRzCi0JCQkgKi8KLQkJCXN0cnVjdCByYXRlbGltaXRfc3Rh dGUgc3B1cmlvdXNfcmVwb3J0X3JzOwotCi0JCQlib29sIHBlcmlvZGljOwotCQkJaW50IHBlcmlv ZF9leHBvbmVudDsKLQotCQkJc3RydWN0IGk5MTVfb2FfY29uZmlnIHRlc3RfY29uZmlnOwotCi0J CQlzdHJ1Y3QgewotCQkJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwotCQkJCXU4ICp2YWRkcjsKLQkJ CQl1MzIgbGFzdF9jdHhfaWQ7Ci0JCQkJaW50IGZvcm1hdDsKLQkJCQlpbnQgZm9ybWF0X3NpemU7 Ci0KLQkJCQkvKioKLQkJCQkgKiBMb2NrcyByZWFkcyBhbmQgd3JpdGVzIHRvIGFsbCBoZWFkL3Rh aWwgc3RhdGUKLQkJCQkgKgotCQkJCSAqIENvbnNpZGVyOiB0aGUgaGVhZCBhbmQgdGFpbCBwb2lu dGVyIHN0YXRlCi0JCQkJICogbmVlZHMgdG8gYmUgcmVhZCBjb25zaXN0ZW50bHkgZnJvbSBhIGhy dGltZXIKLQkJCQkgKiBjYWxsYmFjayAoYXRvbWljIGNvbnRleHQpIGFuZCByZWFkKCkgZm9wCi0J CQkJICogKHVzZXIgY29udGV4dCkgd2l0aCB0YWlsIHBvaW50ZXIgdXBkYXRlcwotCQkJCSAqIGhh cHBlbmluZyBpbiBhdG9taWMgY29udGV4dCBhbmQgaGVhZCB1cGRhdGVzCi0JCQkJICogaW4gdXNl ciBjb250ZXh0IGFuZCB0aGUgKHVubGlrZWx5KQotCQkJCSAqIHBvc3NpYmlsaXR5IG9mIHJlYWQo KSBlcnJvcnMgbmVlZGluZyB0bwotCQkJCSAqIHJlc2V0IGFsbCBoZWFkL3RhaWwgc3RhdGUuCi0J CQkJICoKLQkJCQkgKiBOb3RlOiBDb250ZW50aW9uIG9yIHBlcmZvcm1hbmNlIGFyZW4ndAotCQkJ CSAqIGN1cnJlbnRseSBhIHNpZ25pZmljYW50IGNvbmNlcm4gaGVyZQotCQkJCSAqIGNvbnNpZGVy aW5nIHRoZSByZWxhdGl2ZWx5IGxvdyBmcmVxdWVuY3kgb2YKLQkJCQkgKiBocnRpbWVyIGNhbGxi YWNrcyAoNW1zIHBlcmlvZCkgYW5kIHRoYXQKLQkJCQkgKiByZWFkcyB0eXBpY2FsbHkgb25seSBo YXBwZW4gaW4gcmVzcG9uc2UgdG8gYQotCQkJCSAqIGhydGltZXIgZXZlbnQgYW5kIGxpa2VseSBj b21wbGV0ZSBiZWZvcmUgdGhlCi0JCQkJICogbmV4dCBjYWxsYmFjay4KLQkJCQkgKgotCQkJCSAq IE5vdGU6IFRoaXMgbG9jayBpcyBub3QgaGVsZCAqd2hpbGUqIHJlYWRpbmcKLQkJCQkgKiBhbmQg Y29weWluZyBkYXRhIHRvIHVzZXJzcGFjZSBzbyB0aGUgdmFsdWUKLQkJCQkgKiBvZiBoZWFkIG9i c2VydmVkIGluIGh0cmltZXIgY2FsbGJhY2tzIHdvbid0Ci0JCQkJICogcmVwcmVzZW50IGFueSBw YXJ0aWFsIGNvbnN1bXB0aW9uIG9mIGRhdGEuCi0JCQkJICovCi0JCQkJc3BpbmxvY2tfdCBwdHJf bG9jazsKLQotCQkJCS8qKgotCQkJCSAqIE9uZSAnYWdpbmcnIHRhaWwgcG9pbnRlciBhbmQgb25l ICdhZ2VkJwotCQkJCSAqIHRhaWwgcG9pbnRlciByZWFkeSB0byB1c2VkIGZvciByZWFkaW5nLgot CQkJCSAqCi0JCQkJICogSW5pdGlhbCB2YWx1ZXMgb2YgMHhmZmZmZmZmZiBhcmUgaW52YWxpZAot CQkJCSAqIGFuZCBpbXBseSB0aGF0IGFuIHVwZGF0ZSBpcyByZXF1aXJlZAotCQkJCSAqIChhbmQg c2hvdWxkIGJlIGlnbm9yZWQgYnkgYW4gYXR0ZW1wdGVkCi0JCQkJICogcmVhZCkKLQkJCQkgKi8K LQkJCQlzdHJ1Y3QgewotCQkJCQl1MzIgb2Zmc2V0OwotCQkJCX0gdGFpbHNbMl07Ci0KLQkJCQkv KioKLQkJCQkgKiBJbmRleCBmb3IgdGhlIGFnZWQgdGFpbCByZWFkeSB0byByZWFkKCkKLQkJCQkg KiBkYXRhIHVwIHRvLgotCQkJCSAqLwotCQkJCXVuc2lnbmVkIGludCBhZ2VkX3RhaWxfaWR4Owot Ci0JCQkJLyoqCi0JCQkJICogQSBtb25vdG9uaWMgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBjdXJy ZW50Ci0JCQkJICogYWdpbmcgdGFpbCBwb2ludGVyIHdhcyByZWFkOyB1c2VkIHRvCi0JCQkJICog ZGV0ZXJtaW5lIHdoZW4gaXQgaXMgb2xkIGVub3VnaCB0byB0cnVzdC4KLQkJCQkgKi8KLQkJCQl1 NjQgYWdpbmdfdGltZXN0YW1wOwotCi0JCQkJLyoqCi0JCQkJICogQWx0aG91Z2ggd2UgY2FuIGFs d2F5cyByZWFkIGJhY2sgdGhlIGhlYWQKLQkJCQkgKiBwb2ludGVyIHJlZ2lzdGVyLCB3ZSBwcmVm ZXIgdG8gYXZvaWQKLQkJCQkgKiB0cnVzdGluZyB0aGUgSFcgc3RhdGUsIGp1c3QgdG8gYXZvaWQg YW55Ci0JCQkJICogcmlzayB0aGF0IHNvbWUgaGFyZHdhcmUgY29uZGl0aW9uIGNvdWxkCi0JCQkJ ICogc29tZWhvdyBidW1wIHRoZSBoZWFkIHBvaW50ZXIgdW5wcmVkaWN0YWJseQotCQkJCSAqIGFu ZCBjYXVzZSB1cyB0byBmb3J3YXJkIHRoZSB3cm9uZyBPQSBidWZmZXIKLQkJCQkgKiBkYXRhIHRv IHVzZXJzcGFjZS4KLQkJCQkgKi8KLQkJCQl1MzIgaGVhZDsKLQkJCX0gb2FfYnVmZmVyOwotCi0J CQl1MzIgZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKLQkJCXUzMiBjdHhfb2FjdHhjdHJsX29mZnNl dDsKLQkJCXUzMiBjdHhfZmxleGV1MF9vZmZzZXQ7Ci0KLQkJCS8qKgotCQkJICogVGhlIFJQVF9J RC9yZWFzb24gZmllbGQgZm9yIEdlbjgrIGluY2x1ZGVzIGEgYml0Ci0JCQkgKiB0byBkZXRlcm1p bmUgaWYgdGhlIENUWCBJRCBpbiB0aGUgcmVwb3J0IGlzIHZhbGlkCi0JCQkgKiBidXQgdGhlIHNw ZWNpZmljIGJpdCBkaWZmZXJzIGJldHdlZW4gR2VuIDggYW5kIDkKLQkJCSAqLwotCQkJdTMyIGdl bjhfdmFsaWRfY3R4X2JpdDsKKwkJLyoqCisJCSAqIFRoZSBSUFRfSUQvcmVhc29uIGZpZWxkIGZv ciBHZW44KyBpbmNsdWRlcyBhIGJpdAorCQkgKiB0byBkZXRlcm1pbmUgaWYgdGhlIENUWCBJRCBp biB0aGUgcmVwb3J0IGlzIHZhbGlkCisJCSAqIGJ1dCB0aGUgc3BlY2lmaWMgYml0IGRpZmZlcnMg YmV0d2VlbiBHZW4gOCBhbmQgOQorCQkgKi8KKwkJdTMyIGdlbjhfdmFsaWRfY3R4X2JpdDsKIAot CQkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsKLQkJCWNvbnN0IHN0cnVjdCBpOTE1X29hX2Zvcm1h dCAqb2FfZm9ybWF0czsKLQkJfSBvYTsKKwkJc3RydWN0IGk5MTVfb2Ffb3BzIG9wczsKKwkJY29u c3Qgc3RydWN0IGk5MTVfb2FfZm9ybWF0ICpvYV9mb3JtYXRzOwogCX0gcGVyZjsKIAogCS8qIEFi c3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hhbmlzbSAobGVnYWN5IHJpbmdidWZmZXIgb3IgZXhl Y2xpc3RzKSBhd2F5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2Jkdy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuYwppbmRleCA0YWNkYjk0 NTU1YjcuLjdkNjMyZDUwMzUxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9iZHcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jkdy5jCkBAIC02 NiwyNiArNjYsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9h ZF90ZXN0X2NvbmZpZ19iZHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewot CXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSJkNmRlNmY1NS1lNTI2LTRmNzktYTZh Ni1kNzMxNWMwOTA0NGUiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu dXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9m KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVn cyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5t dXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3Jl Z3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291 bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmln X3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZp Z190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Yy5uYW1lID0gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7Ci0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljLm5hbWUgPSAiZDZkZTZmNTUtZTUyNi00Zjc5LWE2YTYtZDczMTVjMDkwNDRlIjsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9 IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNo b3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9ieHQuYwppbmRleCBhNDQxOTVjMzk5MjMuLmE0Y2M1ODRmYjVjOSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jCkBAIC02NCwyNiArNjQsMjYgQEAgc2hvd190ZXN0 X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19ieHQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnV1aWQsCiAJCSI1ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0yMjVmN2MzZTk2MTIiLAotCQlzaXpl b2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3Jl Z3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4 X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVu ID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxl eF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3Jl Z3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjVlZTcyZjVjLTA5MmYt NDIxZS04YjcwLTIyNWY3YzNlOTYxMiI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu c3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNWVlNzJm NWMtMDkyZi00MjFlLThiNzAtMjI1ZjdjM2U5NjEyIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRy czsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJp ZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9k ZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNo b3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2NmbGd0Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIu YwppbmRleCA3ZjYwZDUxYjg3NjEuLjUxOTMwYzcxYmY3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X29hX2NmbGd0Mi5jCkBAIC02NSwyNiArNjUsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVj dCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYp CiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJ CSI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1jYmRjNjhkMGE0NDYiLAotCQlzaXplb2YoZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQp KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhf Y29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlf U0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25m aWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0g QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjc0ZmI0OTAyLWQzZDMtNDIzNy05ZTkw LWNiZGM2OGQwYTQ0NiI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNzRmYjQ5MDItZDNkMy00 MjM3LTllOTAtY2JkYzY4ZDBhNDQ2IjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93 X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2NmbGd0My5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDMuYwppbmRleCBh OTJjMzhlM2EwY2UuLmRlNjMwYjUzZDM2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9jZmxndDMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nm bGd0My5jCkBAIC02NSwyNiArNjUsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2Ug KmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBp OTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jZmxndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVp ZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSI1NzdlOGUy Yy0zZmEwLTQ4NzUtODc0My0zNTM4ZDU4NWUzYjAiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlk ID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rl c3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291 bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9 IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu ZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9v YTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0la RShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1 ZTNiMCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJz ID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNTc3ZThlMmMtM2ZhMC00ODc1LTg3NDMt MzUzOGQ1ODVlM2IwIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu YXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0 dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2Ff aWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jaHYuYwppbmRleCA3MWVjODg5YTAxMTQuLjdk N2YzM2M0NDY4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jaHYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jCkBAIC02NSwyNiArNjUs MjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2Vf YXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2Nv bmZpZ19jaHYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHko ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBl ODgzYWEiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5p ZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9j b25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19s ZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2Ep OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9j b3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2Nv bmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7 Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu ZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29h KTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0g IjRhNTM0YjA3LWNiYTMtNDE0ZC04ZDYwLTg3NDgzMGU4ODNhYSI7Ci0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj Lm5hbWUgPSAiNGE1MzRiMDctY2JhMy00MTRkLThkNjAtODc0ODMwZTg4M2FhIjsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJz WzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93 X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NubC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9jbmwuYwppbmRleCA1YzIzZDg4M2Q2YzkuLjRhZTg2YTg5ODNjMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jbmwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX2NubC5jCkBAIC03NywyNiArNzcsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJ CSJkYjQxZWRkNC1kOGU3LTQ3MzAtYWQxMS1iOWEyZDY4MzM1MDMiLAotCQlzaXplb2YoZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQp KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhf Y29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlf U0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25m aWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0g QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRiNDFlZGQ0LWQ4ZTctNDczMC1hZDEx LWI5YTJkNjgzMzUwMyI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZGI0MWVkZDQtZDhlNy00 NzMwLWFkMTEtYjlhMmQ2ODMzNTAzIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93 X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2dsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9nbGsuYwppbmRleCA0YmRkYTY2 ZGY3ZDIuLmQ4ZDYzNGRjYTE1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9nbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5jCkBAIC02 NCwyNiArNjQsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVj dCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9h ZF90ZXN0X2NvbmZpZ19nbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewot CXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSJkZDNmZDc4OS1lNzgzLTQyMDQtOGNk MC1iNjcxYmJjY2IwY2YiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu dXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9m KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVn cyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5t dXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3Jl Z3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291 bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmln X3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZp Z190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Yy5uYW1lID0gImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiI7Ci0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljLm5hbWUgPSAiZGQzZmQ3ODktZTc4My00MjA0LThjZDAtYjY3MWJiY2NiMGNmIjsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9 IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNo b3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9oc3cuYwppbmRleCBjYzY1MjZmZGQyYmQuLjcwMzIyNzc4NzZkYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9oc3cuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCkBAIC05NCwyNiArOTQsMjYgQEAgc2hvd19yZW5k ZXJfYmFzaWNfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsIGNoYXIgKmIKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2hzdyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcudXVpZCwKIAkJIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiIsCi0JCXNp emVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ19yZW5kZXJf YmFzaWM7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJS QVlfU0laRShtdXhfY29uZmlnX3JlbmRlcl9iYXNpYyk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfcmVuZGVy X2Jhc2ljKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz ID0gYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmln X3JlbmRlcl9iYXNpYyk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3Jl Z3MgPSBiX2NvdW50ZXJfY29uZmlnX3JlbmRlcl9iYXNpYzsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdf cmVuZGVyX2Jhc2ljKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVn cyA9IGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYzsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19yZW5kZXJf YmFzaWMpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVf Y29uZmlnX3JlbmRlcl9iYXNpYzsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3Jl Z3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ19yZW5kZXJfYmFzaWMpOwogCi0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNDAzZDg4MzIt MWEyNy00YWE2LWE2NGUtZjUzODljZTdiMjEyIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5h dHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0 MDNkODgzMi0xYTI3LTRhYTYtYTY0ZS1mNTM4OWNlN2IyMTIiOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfcmVuZGVyX2Jh c2ljX2lkOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm5hbWUgPSAiaWQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyLm1vZGUgPSAwNDQ0OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5zaG93ID0gc2hvd19yZW5kZXJfYmFzaWNfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9pY2wuYwppbmRleCBiYWE1MTQyN2E1NDMuLmJjYTIzZjE1MDYyNiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9pY2wuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX2ljbC5jCkBAIC03NCwyNiArNzQsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0 cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpi dWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2woc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJ CSJhMjkxNjY1ZS0yNDRiLTRiNzYtOWI5YS0wMWRlOWQzYzgwNjgiLAotCQlzaXplb2YoZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQp KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhf Y29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVu ID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlf U0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3Vu dGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25m aWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0g QVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImEyOTE2NjVlLTI0NGItNGI3Ni05Yjlh LTAxZGU5ZDNjODA2OCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiYTI5MTY2NWUtMjQ0Yi00 Yjc2LTliOWEtMDFkZTlkM2M4MDY4IjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Y19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93 X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2tibGd0Mi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDIuYwppbmRleCAx NjhlNDlhYjBkNGQuLjJlMWQxMmY3OGM5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9rYmxndDIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ti bGd0Mi5jCkBAIC02NSwyNiArNjUsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2Ug KmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBp OTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19rYmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVp ZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSJiYWEzYzdl NC01MmI2LTRiODUtODAxZS00NjVhOTRiNzQ2ZGQiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlk ID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rl c3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlf U0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291 bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9 IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu ZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9v YTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0la RShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImJhYTNjN2U0LTUyYjYtNGI4NS04MDFlLTQ2NWE5NGI3 NDZkZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJz ID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUt NDY1YTk0Yjc0NmRkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu YXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0 dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2Ff aWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9rYmxndDMuYwppbmRleCA2ZmZhNTUzYzM4 OGUuLjA3YTg1NjdiZDViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9v YV9rYmxndDMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jCkBA IC02NSwyNiArNjUsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZf bG9hZF90ZXN0X2NvbmZpZ19rYmxndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJs Y3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSJmMTc5MmYzMi02ZGIyLTRi NTAtYjRiMi01NTcxMjhmMTY4OGQiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcudXVpZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJ c2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5t dXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhf Y29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29u ZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdz ID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29h KTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5uYW1lID0gImYxNzkyZjMyLTZkYjItNGI1MC1iNGIyLTU1NzEyOGYxNjg4ZCI7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZjE3OTJmMzItNmRiMi00YjUwLWI0YjItNTU3MTI4ZjE2 ODhkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0g JmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJp ZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDIuYwppbmRleCA3Y2U2ZWU4NTFkNDMuLmZhNDYz YTkyZjViYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5jCkBAIC02NCwyNiAr NjQsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0 X2NvbmZpZ19za2xndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0 cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCiAJCSIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2Zi1k YWZkNzRhNDA3ZDEiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVp ZCkpOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5pZCA9IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9 IG11eF9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhf cmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rl c3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Mg PSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rf b2EpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3Vu dGVyX2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRl cl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rl c3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFS UkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190 ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5u YW1lID0gIjE2NTE5NDlmLTBhYzAtNGNiMS1hMDZmLWRhZmQ3NGE0MDdkMSI7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljLm5hbWUgPSAiMTY1MTk0OWYtMGFjMC00Y2IxLWEwNmYtZGFmZDc0YTQwN2QxIjsKKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19p ZC5hdHRyOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0 NDQ7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cg PSBzaG93X3Rlc3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9za2xndDMuYwppbmRleCAwODZjYTI2MzFlMWMuLjljOTQ5N2Q3YTlkNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jCkBAIC02NSwyNiArNjUsMjYgQEAg c2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdHRyLCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19z a2xndDMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnV1aWQsCiAJCSIyYjk4NTgwMy1kM2M5LTQ2MjktOGE0Zi02MzRiZmVjYmEw ZTgiLAotCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9 IDE7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25m aWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4g PSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwog Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZp Z190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xl biA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUo ZmxleF9ldV9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxl eF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsK IAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjJi OTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCI7Ci0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuYXR0cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5h bWUgPSAiMmI5ODU4MDMtZDNjOS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IjsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5hdHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBd ID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwor CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rl c3Rfb2FfaWQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0 dHIubmFtZSA9ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9za2xndDQuYwppbmRleCBiMjkxYTZlYjhhODcuLjY1ZWJjNmI4ZGQ3MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9za2xndDQuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jCkBAIC02NSwyNiArNjUsMjYgQEAgc2hvd190ZXN0 X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCiB2b2lkCiBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cmxjcHkoZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcudXVpZCwKKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnV1aWQsCiAJCSI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiLAotCQlz aXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnV1aWQpKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7CiAKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9v YTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4 X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu bXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2E7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Nf bGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29h OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9j b25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0g ZmxleF9ldV9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4 X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKIAotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjg4MmZhNDMzLTFm NGEtNGE2Ny1hOTYyLWM3NDE4ODhmZTVmNSI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0 cnM7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiODgy ZmE0MzMtMWY0YS00YTY3LWE5NjItYzc0MTg4OGZlNWY1IjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5h dHRyczsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9 ICJpZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bW9kZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCmluZGV4 IGM0OTk1ZDVhMTZkMi4uNDMyYTNjMDhjZmJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwpA QCAtMzY0LDYgKzM2NCw4IEBAIHN0cnVjdCBwZXJmX29wZW5fcHJvcGVydGllcyB7CiAJaW50IG9h X3BlcmlvZF9leHBvbmVudDsKIH07CiAKK3N0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBvYV9w b2xsX2NoZWNrX3RpbWVyX2NiKHN0cnVjdCBocnRpbWVyICpocnRpbWVyKTsKKwogc3RhdGljIHZv aWQgZnJlZV9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ ICAgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWcpCiB7CkBAIC0zOTIsOCArMzk0LDgg QEAgc3RhdGljIGludCBnZXRfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAlpbnQgcmV0OwogCiAJaWYgKG1ldHJpY3Nfc2V0ID09IDEpIHsKLQkJKm91dF9jb25m aWcgPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWc7Ci0JCWF0b21pY19pbmMoJmRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnJlZl9jb3VudCk7CisJCSpvdXRfY29uZmlnID0gJmRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnOworCQlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5yZWZfY291bnQpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTQxMiwxMyArNDE0 LDE2IEBAIHN0YXRpYyBpbnQgZ2V0X29hX2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHUzMiBnZW44X29hX2h3X3RhaWxf cmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdTMyIGdlbjhf b2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwogCXJl dHVybiBJOTE1X1JFQUQoR0VOOF9PQVRBSUxQVFIpICYgR0VOOF9PQVRBSUxQVFJfTUFTSzsKIH0K IAotc3RhdGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCitzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAl1MzIgb2FzdGF0dXMxID0gSTkxNV9SRUFEKEdFTjdf T0FTVEFUVVMxKTsKIAogCXJldHVybiBvYXN0YXR1czEgJiBHRU43X09BU1RBVFVTMV9UQUlMX01B U0s7CkBAIC00MjYsNyArNDMxLDcgQEAgc3RhdGljIHUzMiBnZW43X29hX2h3X3RhaWxfcmVhZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIC8qKgogICogb2FfYnVmZmVyX2No ZWNrX3VubG9ja2VkIC0gY2hlY2sgZm9yIGRhdGEgYW5kIHVwZGF0ZSB0YWlsIHB0ciBzdGF0ZQot ICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICogQHN0cmVhbTogaTkxNSBzdHJl YW0gaW5zdGFuY2UKICAqCiAgKiBUaGlzIGlzIGVpdGhlciBjYWxsZWQgdmlhIGZvcHMgKGZvciBi bG9ja2luZyByZWFkcyBpbiB1c2VyIGN0eCkgb3IgdGhlIHBvbGwKICAqIGNoZWNrIGhydGltZXIg KGF0b21pYyBjdHgpIHRvIGNoZWNrIHRoZSBPQSBidWZmZXIgdGFpbCBwb2ludGVyIGFuZCBjaGVj awpAQCAtNDQ4LDkgKzQ1MywxMCBAQCBzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqCiAgKiBSZXR1cm5zOiAldHJ1ZSBp ZiB0aGUgT0EgYnVmZmVyIGNvbnRhaW5zIGRhdGEsIGVsc2UgJWZhbHNlCiAgKi8KLXN0YXRpYyBi b29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCitzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKLQlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVy Zi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9h X2J1ZmZlci5mb3JtYXRfc2l6ZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGlu dCBhZ2VkX2lkeDsKIAl1MzIgaGVhZCwgaHdfdGFpbCwgYWdlZF90YWlsLCBhZ2luZ190YWlsOwpA QCAtNDYwLDE5ICs0NjYsMTkgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2Vk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkgKiBjb3VsZCByZXN1bHQgaW4g YW4gT0EgYnVmZmVyIHJlc2V0IHdoaWNoIG1pZ2h0IHJlc2V0IHRoZSBoZWFkLAogCSAqIHRhaWxz W10gYW5kIGFnZWRfdGFpbCBzdGF0ZS4KIAkgKi8KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNh dmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBOQjogVGhlIGhl YWQgd2Ugb2JzZXJ2ZSBoZXJlIG1pZ2h0IGVmZmVjdGl2ZWx5IGJlIGEgbGl0dGxlIG91dCBvZgog CSAqIGRhdGUgKGJldHdlZW4gaGVhZCBhbmQgdGFpbHNbYWdlZF9pZHhdLm9mZnNldCBpZiB0aGVy ZSBpcyBjdXJyZW50bHkKIAkgKiBhIHJlYWQoKSBpbiBwcm9ncmVzcy4KIAkgKi8KLQloZWFkID0g ZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQ7CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVm ZmVyLmhlYWQ7CiAKLQlhZ2VkX2lkeCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2Vk X3RhaWxfaWR4OwotCWFnZWRfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWls c1thZ2VkX2lkeF0ub2Zmc2V0OwotCWFnaW5nX3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9i dWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQ7CisJYWdlZF9pZHggPSBzdHJlYW0tPm9hX2J1 ZmZlci5hZ2VkX3RhaWxfaWR4OworCWFnZWRfdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxz W2FnZWRfaWR4XS5vZmZzZXQ7CisJYWdpbmdfdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRhaWxz WyFhZ2VkX2lkeF0ub2Zmc2V0OwogCi0JaHdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9wcy5v YV9od190YWlsX3JlYWQoZGV2X3ByaXYpOworCWh3X3RhaWwgPSBkZXZfcHJpdi0+cGVyZi5vcHMu b2FfaHdfdGFpbF9yZWFkKHN0cmVhbSk7CiAKIAkvKiBUaGUgdGFpbCBwb2ludGVyIGluY3JlYXNl cyBpbiA2NCBieXRlIGluY3JlbWVudHMsCiAJICogbm90IGluIHJlcG9ydF9zaXplIHN0ZXBzLi4u CkBAIC00OTIsMTYgKzQ5OCwxNiBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2Nr ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIGF2YWlsYWJsZSkgd2l0 aG91dCBuZWVkaW5nIHRvIHdhaXQgZm9yIGEgbGF0ZXIgaHJ0aW1lciBjYWxsYmFjay4KIAkgKi8K IAlpZiAoYWdpbmdfdGFpbCAhPSBJTlZBTElEX1RBSUxfUFRSICYmCi0JICAgICgobm93IC0gZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPgorCSAgICAoKG5vdyAt IHN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPgogCSAgICAgT0FfVEFJTF9NQVJH SU5fTlNFQykpIHsKIAogCQlhZ2VkX2lkeCBePSAxOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9i dWZmZXIuYWdlZF90YWlsX2lkeCA9IGFnZWRfaWR4OworCQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2Vk X3RhaWxfaWR4ID0gYWdlZF9pZHg7CiAKIAkJYWdlZF90YWlsID0gYWdpbmdfdGFpbDsKIAogCQkv KiBNYXJrIHRoYXQgd2UgbmVlZCBhIG5ldyBwb2ludGVyIHRvIHN0YXJ0IGFnaW5nLi4uICovCi0J CWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9IElO VkFMSURfVEFJTF9QVFI7CisJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zm c2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKIAkJYWdpbmdfdGFpbCA9IElOVkFMSURfVEFJTF9QVFI7 CiAJfQogCkBAIC01MTYsNyArNTIyLDcgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3Vu bG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoYWdpbmdfdGFp bCA9PSBJTlZBTElEX1RBSUxfUFRSICYmCiAJICAgIChhZ2VkX3RhaWwgPT0gSU5WQUxJRF9UQUlM X1BUUiB8fAogCSAgICAgT0FfVEFLRU4oaHdfdGFpbCwgYWdlZF90YWlsKSA+PSByZXBvcnRfc2l6 ZSkpIHsKLQkJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZm ZXIudm1hOworCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZtYTsK IAkJdTMyIGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHZtYSk7CiAKIAkJLyogQmUgcGFy YW5vaWQgYW5kIGRvIGEgYm91bmRzIGNoZWNrIG9uIHRoZSBwb2ludGVyIHJlYWQgYmFjawpAQCAt NTI1LDE2ICs1MzEsMTYgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICovCiAJCWlmIChod190YWlsID49 IGd0dF9vZmZzZXQgJiYKIAkJICAgIGh3X3RhaWwgPCAoZ3R0X29mZnNldCArIE9BX0JVRkZFUl9T SVpFKSkgewotCQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0u b2Zmc2V0ID0KKwkJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0ID0K IAkJCQlhZ2luZ190YWlsID0gaHdfdGFpbDsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5hZ2luZ190aW1lc3RhbXAgPSBub3c7CisJCQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1l c3RhbXAgPSBub3c7CiAJCX0gZWxzZSB7CiAJCQlEUk1fRVJST1IoIklnbm9yaW5nIHNwdXJpb3Vz IG91dCBvZiByYW5nZSBPQSBidWZmZXIgdGFpbCBwb2ludGVyID0gJXVcbiIsCiAJCQkJICBod190 YWlsKTsKIAkJfQogCX0KIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAlyZXR1cm4gYWdlZF90YWls ID09IElOVkFMSURfVEFJTF9QVFIgPwogCQlmYWxzZSA6IE9BX1RBS0VOKGFnZWRfdGFpbCwgaGVh ZCkgPj0gcmVwb3J0X3NpemU7CkBAIC01OTcsOCArNjAzLDcgQEAgc3RhdGljIGludCBhcHBlbmRf b2Ffc2FtcGxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCQkgICAgc2l6ZV90 ICpvZmZzZXQsCiAJCQkgICAgY29uc3QgdTggKnJlcG9ydCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBvcnRfc2l6ZSA9 IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKKwlpbnQgcmVwb3J0X3Np emUgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcGVy Zl9yZWNvcmRfaGVhZGVyIGhlYWRlcjsKIAl1MzIgc2FtcGxlX2ZsYWdzID0gc3RyZWFtLT5zYW1w bGVfZmxhZ3M7CiAKQEAgLTY1MCw5ICs2NTUsOSBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29h X3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCQkgIHNpemVfdCAq b2Zmc2V0KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ ZGV2X3ByaXY7Ci0JaW50IHJlcG9ydF9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVy LmZvcm1hdF9zaXplOwotCXU4ICpvYV9idWZfYmFzZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci52YWRkcjsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJaW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9i dWZmZXIuZm9ybWF0X3NpemU7CisJdTggKm9hX2J1Zl9iYXNlID0gc3RyZWFtLT5vYV9idWZmZXIu dmFkZHI7CisJdTMyIGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVm ZmVyLnZtYSk7CiAJdTMyIG1hc2sgPSAoT0FfQlVGRkVSX1NJWkUgLSAxKTsKIAlzaXplX3Qgc3Rh cnRfb2Zmc2V0ID0gKm9mZnNldDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNjY0LDEzICs2 NjksMTMgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0sCiAJaWYgKFdBUk5fT04oIXN0cmVhbS0+ZW5hYmxlZCkpCiAJCXJl dHVybiAtRUlPOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1 ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCi0JaGVhZCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5oZWFkOwotCWFnZWRfdGFpbF9pZHggPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu YWdlZF90YWlsX2lkeDsKLQl0YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxz W2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKKwloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsK KwlhZ2VkX3RhaWxfaWR4ID0gc3RyZWFtLT5vYV9idWZmZXIuYWdlZF90YWlsX2lkeDsKKwl0YWls ID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbYWdlZF90YWlsX2lkeF0ub2Zmc2V0OwogCi0Jc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2Nr LCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZmZXIucHRy X2xvY2ssIGZsYWdzKTsKIAogCS8qCiAJICogQW4gaW52YWxpZCB0YWlsIHBvaW50ZXIgaGVyZSBt ZWFucyB3ZSdyZSBzdGlsbCB3YWl0aW5nIGZvciB0aGUgcG9sbApAQCAtNzM0LDEyICs3MzksMTIg QEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0sCiAJCXJlYXNvbiA9ICgocmVwb3J0MzJbMF0gPj4gT0FSRVBPUlRfUkVBU09O X1NISUZUKSAmCiAJCQkgIE9BUkVQT1JUX1JFQVNPTl9NQVNLKTsKIAkJaWYgKHJlYXNvbiA9PSAw KSB7Ci0JCQlpZiAoX19yYXRlbGltaXQoJmRldl9wcml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9y dF9ycykpCisJCQlpZiAoX19yYXRlbGltaXQoJmRldl9wcml2LT5wZXJmLnNwdXJpb3VzX3JlcG9y dF9ycykpCiAJCQkJRFJNX05PVEUoIlNraXBwaW5nIHNwdXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9y dFxuIik7CiAJCQljb250aW51ZTsKIAkJfQogCi0JCWN0eF9pZCA9IHJlcG9ydDMyWzJdICYgZGV2 X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21hc2s7CisJCWN0eF9pZCA9IHJlcG9ydDMy WzJdICYgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzazsKIAogCQkvKgogCQkgKiBTcXVhc2gg d2hhdGV2ZXIgaXMgaW4gdGhlIENUWF9JRCBmaWVsZCBpZiBpdCdzIG1hcmtlZCBhcwpAQCAtNzQ5 LDcgKzc1NCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkx NV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkgKiBOb3RlOiB0aGF0IHdlIGRvbid0IGNsZWFyIHRo ZSB2YWxpZF9jdHhfYml0IHNvIHVzZXJzcGFjZSBjYW4KIAkJICogdW5kZXJzdGFuZCB0aGF0IHRo ZSBJRCBoYXMgYmVlbiBzcXVhc2hlZCBieSB0aGUga2VybmVsLgogCQkgKi8KLQkJaWYgKCEocmVw b3J0MzJbMF0gJiBkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlkX2N0eF9iaXQpKQorCQlpZiAo IShyZXBvcnQzMlswXSAmIGRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCkpCiAJCQlj dHhfaWQgPSByZXBvcnQzMlsyXSA9IElOVkFMSURfQ1RYX0lEOwogCiAJCS8qCkBAIC03ODMsMTgg Kzc4OCwxNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJICogc3dpdGNoZXMgc2luY2UgaXQncyBub3QtdW5jb21t b24gZm9yIHBlcmlvZGljIHNhbXBsZXMgdG8KIAkJICogaWRlbnRpZnkgYSBzd2l0Y2ggYmVmb3Jl IGFueSAnY29udGV4dCBzd2l0Y2gnIHJlcG9ydC4KIAkJICovCi0JCWlmICghZGV2X3ByaXYtPnBl cmYub2EuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4IHx8Ci0JCSAgICBkZXZfcHJpdi0+cGVyZi5vYS5z cGVjaWZpY19jdHhfaWQgPT0gY3R4X2lkIHx8Ci0JCSAgICAoZGV2X3ByaXYtPnBlcmYub2Eub2Ff YnVmZmVyLmxhc3RfY3R4X2lkID09Ci0JCSAgICAgZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNf Y3R4X2lkKSB8fAorCQlpZiAoIWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCB8 fAorCQkgICAgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgPT0gY3R4X2lkIHx8CisJCSAgICBzdHJl YW0tPm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9PSBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCB8fAog CQkgICAgcmVhc29uICYgT0FSRVBPUlRfUkVBU09OX0NUWF9TV0lUQ0gpIHsKIAogCQkJLyoKIAkJ CSAqIFdoaWxlIGZpbHRlcmluZyBmb3IgYSBzaW5nbGUgY29udGV4dCB3ZSBhdm9pZAogCQkJICog bGVha2luZyB0aGUgSURzIG9mIG90aGVyIGNvbnRleHRzLgogCQkJICovCi0JCQlpZiAoZGV2X3By aXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4ICYmCi0JCQkgICAgZGV2X3ByaXYtPnBl cmYub2Euc3BlY2lmaWNfY3R4X2lkICE9IGN0eF9pZCkgeworCQkJaWYgKGRldl9wcml2LT5wZXJm LmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCAmJgorCQkJICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lk ICE9IGN0eF9pZCkgewogCQkJCXJlcG9ydDMyWzJdID0gSU5WQUxJRF9DVFhfSUQ7CiAJCQl9CiAK QEAgLTgwMyw3ICs4MDcsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCWlmIChyZXQpCiAJCQkJYnJlYWs7CiAK LQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9IGN0eF9pZDsKKwkJ CXN0cmVhbS0+b2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gY3R4X2lkOwogCQl9CiAKIAkJLyoKQEAg LTgxNyw3ICs4MjEsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAl9CiAKIAlpZiAoc3RhcnRfb2Zmc2V0ICE9ICpv ZmZzZXQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZm ZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCQkvKgogCQkgKiBXZSByZW1vdmVkIHRoZSBndHRfb2Zm c2V0IGZvciB0aGUgY29weSBsb29wIGFib3ZlLCBpbmRleGluZwpAQCAtODI2LDkgKzgzMCw5IEBA IHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAogCQloZWFkICs9IGd0dF9vZmZzZXQ7CiAKIAkJSTkxNV9XUklURShHRU44X09B SEVBRFBUUiwgaGVhZCAmIEdFTjhfT0FIRUFEUFRSX01BU0spOwotCQlkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CisJCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBoZWFk OwogCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9h X2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC04NjMsNyAr ODY3LDcgQEAgc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwKIAl1MzIgb2FzdGF0dXM7CiAJaW50IHJldDsKIAotCWlmIChXQVJOX09OKCFkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpKQorCWlmIChXQVJOX09OKCFzdHJlYW0tPm9h X2J1ZmZlci52YWRkcikpCiAJCXJldHVybiAtRUlPOwogCiAJb2FzdGF0dXMgPSBJOTE1X1JFQUQo R0VOOF9PQVNUQVRVUyk7CkBAIC04ODksMTAgKzg5MywxMCBAQCBzdGF0aWMgaW50IGdlbjhfb2Ff cmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJcmV0dXJuIHJldDsKIAog CQlEUk1fREVCVUcoIk9BIGJ1ZmZlciBvdmVyZmxvdyAoZXhwb25lbnQgPSAlZCk6IGZvcmNlIHJl c3RhcnRcbiIsCi0JCQkgIGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudCk7CisJCQkg IHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50KTsKIAotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2Ff ZGlzYWJsZShzdHJlYW0pOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlKHN0cmVh bSk7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7CisJCWRldl9wcml2 LT5wZXJmLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKIAogCQkvKgogCQkgKiBOb3RlOiAub2FfZW5h YmxlKCkgaXMgZXhwZWN0ZWQgdG8gcmUtaW5pdCB0aGUgb2FidWZmZXIgYW5kCkBAIC05MzksOSAr OTQzLDkgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0sCiAJCQkJICBzaXplX3QgKm9mZnNldCkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBvcnRf c2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKLQl1OCAqb2Ff YnVmX2Jhc2UgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHI7Ci0JdTMyIGd0dF9v ZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEp OworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOworCXU4 ICpvYV9idWZfYmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOworCXUzMiBndHRfb2Zmc2V0 ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXUzMiBtYXNrID0g KE9BX0JVRkZFUl9TSVpFIC0gMSk7CiAJc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTk1MywxMyArOTU3LDEzIEBAIHN0YXRpYyBpbnQgZ2Vu N19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCWlm IChXQVJOX09OKCFzdHJlYW0tPmVuYWJsZWQpKQogCQlyZXR1cm4gLUVJTzsKIAotCXNwaW5fbG9j a19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsK KwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsK IAotCWhlYWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKLQlhZ2VkX3RhaWxf aWR4ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Ci0JdGFpbCA9 IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7 CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhlYWQ7CisJYWdlZF90YWlsX2lkeCA9IHN0cmVh bS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7CisJdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRh aWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl dl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBB biBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1lYW5zIHdlJ3JlIHN0aWxsIHdhaXRpbmcgZm9y IHRoZSBwb2xsCiAJICogaHJ0aW1lciBjYWxsYmFjayB0byBnaXZlIHVzIGEgcG9pbnRlcgpAQCAt MTAxMiw3ICsxMDE2LDcgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVj dCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCSAqIGNvcHlpbmcgaXQgdG8gdXNlcnNwYWNl Li4uCiAJCSAqLwogCQlpZiAocmVwb3J0MzJbMF0gPT0gMCkgewotCQkJaWYgKF9fcmF0ZWxpbWl0 KCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMpKQorCQkJaWYgKF9fcmF0ZWxp bWl0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMpKQogCQkJCURSTV9OT1RFKCJT a2lwcGluZyBzcHVyaW91cywgaW52YWxpZCBPQSByZXBvcnRcbiIpOwogCQkJY29udGludWU7CiAJ CX0KQEAgLTEwMzEsNyArMTAzNSw3IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0 cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCX0KIAogCWlmIChzdGFydF9vZmZz ZXQgIT0gKm9mZnNldCkgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eu b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0t Pm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJCS8qIFdlIHJlbW92ZWQgdGhlIGd0dF9v ZmZzZXQgZm9yIHRoZSBjb3B5IGxvb3AgYWJvdmUsIGluZGV4aW5nCiAJCSAqIHJlbGF0aXZlIHRv IG9hX2J1Zl9iYXNlIHNvIHB1dCBiYWNrIGhlcmUuLi4KQEAgLTEwNDEsOSArMTA0NSw5IEBAIHN0 YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAq c3RyZWFtLAogCQlJOTE1X1dSSVRFKEdFTjdfT0FTVEFUVVMyLAogCQkJICAgKChoZWFkICYgR0VO N19PQVNUQVRVUzJfSEVBRF9NQVNLKSB8CiAJCQkgICAgR0VON19PQVNUQVRVUzJfTUVNX1NFTEVD VF9HR1RUKSk7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5oZWFkID0gaGVhZDsKKwkJ c3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CiAKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAJ fQogCiAJcmV0dXJuIHJldDsKQEAgLTEwNzQsNyArMTA3OCw3IEBAIHN0YXRpYyBpbnQgZ2VuN19v YV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJdTMyIG9hc3RhdHVzMTsK IAlpbnQgcmV0OwogCi0JaWYgKFdBUk5fT04oIWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52 YWRkcikpCisJaWYgKFdBUk5fT04oIXN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyKSkKIAkJcmV0dXJu IC1FSU87CiAKIAlvYXN0YXR1czEgPSBJOTE1X1JFQUQoR0VON19PQVNUQVRVUzEpOwpAQCAtMTA4 NCw3ICsxMDg4LDcgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKIAkgKiBtYXkgYmUgdXBkYXRlZCBhc3luY2hyb25vdXNseSkgc28gd2Ug aWdub3JlIHN0YXR1cyBiaXRzCiAJICogdGhhdCBoYXZlIGFscmVhZHkgYmVlbiByZXBvcnRlZCB0 byB1c2Vyc3BhY2UuCiAJICovCi0Jb2FzdGF0dXMxICY9IH5kZXZfcHJpdi0+cGVyZi5vYS5nZW43 X2xhdGNoZWRfb2FzdGF0dXMxOworCW9hc3RhdHVzMSAmPSB+ZGV2X3ByaXYtPnBlcmYuZ2VuN19s YXRjaGVkX29hc3RhdHVzMTsKIAogCS8qIFdlIHRyZWF0IE9BQlVGRkVSX09WRVJGTE9XIGFzIGEg c2lnbmlmaWNhbnQgZXJyb3I6CiAJICoKQEAgLTExMTMsMTAgKzExMTcsMTAgQEAgc3RhdGljIGlu dCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCXJldHVy biByZXQ7CiAKIAkJRFJNX0RFQlVHKCJPQSBidWZmZXIgb3ZlcmZsb3cgKGV4cG9uZW50ID0gJWQp OiBmb3JjZSByZXN0YXJ0XG4iLAotCQkJICBkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25l bnQpOworCQkJICBzdHJlYW0tPnBlcmlvZF9leHBvbmVudCk7CiAKLQkJZGV2X3ByaXYtPnBlcmYu b2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Vu YWJsZShzdHJlYW0pOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZShzdHJlYW0pOwor CQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CiAKIAkJb2FzdGF0dXMxID0g STkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKIAl9CkBAIC0xMTI2LDcgKzExMzAsNyBAQCBzdGF0 aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJ CSAgICAgICBEUk1fSTkxNV9QRVJGX1JFQ09SRF9PQV9SRVBPUlRfTE9TVCk7CiAJCWlmIChyZXQp CiAJCQlyZXR1cm4gcmV0OwotCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW43X2xhdGNoZWRfb2FzdGF0 dXMxIHw9CisJCWRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgfD0KIAkJCUdF TjdfT0FTVEFUVVMxX1JFUE9SVF9MT1NUOwogCX0KIApAQCAtMTE0OSwxNCArMTE1MywxMiBAQCBz dGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAog ICovCiBzdGF0aWMgaW50IGk5MTVfb2Ffd2FpdF91bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0 cmVhbS0+ZGV2X3ByaXY7Ci0KIAkvKiBXZSB3b3VsZCB3YWl0IGluZGVmaW5pdGVseSBpZiBwZXJp b2RpYyBzYW1wbGluZyBpcyBub3QgZW5hYmxlZCAqLwotCWlmICghZGV2X3ByaXYtPnBlcmYub2Eu cGVyaW9kaWMpCisJaWYgKCFzdHJlYW0tPnBlcmlvZGljKQogCQlyZXR1cm4gLUVJTzsKIAotCXJl dHVybiB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSwK LQkJCQkJb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKGRldl9wcml2KSk7CisJcmV0dXJuIHdhaXRf ZXZlbnRfaW50ZXJydXB0aWJsZShzdHJlYW0tPnBvbGxfd3EsCisJCQkJCW9hX2J1ZmZlcl9jaGVj a191bmxvY2tlZChzdHJlYW0pKTsKIH0KIAogLyoqCkBAIC0xMTczLDkgKzExNzUsNyBAQCBzdGF0 aWMgdm9pZCBpOTE1X29hX3BvbGxfd2FpdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt LAogCQkJICAgICAgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkgICAgICBwb2xsX3RhYmxlICp3YWl0 KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3By aXY7Ci0KLQlwb2xsX3dhaXQoZmlsZSwgJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfd3EsIHdhaXQp OworCXBvbGxfd2FpdChmaWxlLCAmc3RyZWFtLT5wb2xsX3dxLCB3YWl0KTsKIH0KIAogLyoqCkBA IC0xMTk3LDEzICsxMTk3LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9yZWFkKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCXJldHVybiBkZXZfcHJpdi0+cGVyZi5vYS5vcHMu cmVhZChzdHJlYW0sIGJ1ZiwgY291bnQsIG9mZnNldCk7CisJcmV0dXJuIGRldl9wcml2LT5wZXJm Lm9wcy5yZWFkKHN0cmVhbSwgYnVmLCBjb3VudCwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIHN0cnVj dCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKLQkJCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCitzdGF0aWMgc3Ry dWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0pCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CisJc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCA9IHN0cmVhbS0+Y3R4OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAlpbnQgZXJyOwogCkBAIC0xMjIxLDcgKzEyMjIsNyBAQCBzdGF0aWMgc3RydWN0IGludGVs X2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQkgKi8KIAkJZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwogCQlpZiAoZXJyID09IDApIHsK LQkJCWk5MTUtPnBlcmYub2EucGlubmVkX2N0eCA9IGNlOworCQkJc3RyZWFtLT5waW5uZWRfY3R4 ID0gY2U7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEyMzEsNyArMTIzMiw3IEBAIHN0YXRpYyBz dHJ1Y3QgaW50ZWxfY29udGV4dCAqb2FfcGluX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAotCXJldHVybiBp OTE1LT5wZXJmLm9hLnBpbm5lZF9jdHg7CisJcmV0dXJuIHN0cmVhbS0+cGlubmVkX2N0eDsKIH0K IAogLyoqCkBAIC0xMjQ5LDcgKzEyNTAsNyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4 X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAotCWNlID0gb2FfcGluX2NvbnRleHQoaTkxNSwgc3RyZWFtLT5jdHgpOworCWNlID0gb2Ff cGluX2NvbnRleHQoc3RyZWFtKTsKIAlpZiAoSVNfRVJSKGNlKSkKIAkJcmV0dXJuIFBUUl9FUlIo Y2UpOwogCkBAIC0xMjU5LDggKzEyNjAsOCBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4 X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCSAqIE9uIEhhc3dlbGwgd2Ug ZG9uJ3QgZG8gYW55IHBvc3QgcHJvY2Vzc2luZyBvZiB0aGUgcmVwb3J0cwogCQkgKiBhbmQgZG9u J3QgbmVlZCB0byB1c2UgdGhlIG1hc2suCiAJCSAqLwotCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmlj X2N0eF9pZCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKLQkJaTkxNS0+cGVyZi5vYS5z cGVjaWZpY19jdHhfaWRfbWFzayA9IDA7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0gaTkx NV9nZ3R0X29mZnNldChjZS0+c3RhdGUpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNr ID0gMDsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMjc4LDMzICsxMjc5LDM2IEBAIHN0YXRpYyBpbnQg b2FfZ2V0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkJ CSAqIGRyb3BwZWQgYnkgR3VDLiBUaGV5IHdvbid0IGJlIHBhcnQgb2YgdGhlIGNvbnRleHQKIAkJ CSAqIElEIGluIHRoZSBPQSByZXBvcnRzLCBzbyBzcXVhc2ggdGhvc2UgbG93ZXIgYml0cy4KIAkJ CSAqLwotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgPQorCQkJc3RyZWFtLT5zcGVj aWZpY19jdHhfaWQgPQogCQkJCWxvd2VyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSA+PiAxMjsKIAog CQkJLyoKIAkJCSAqIEd1QyB1c2VzIHRoZSB0b3AgYml0IHRvIHNpZ25hbCBwcm94eSBzdWJtaXNz aW9uLCBzbwogCQkJICogaWdub3JlIHRoYXQgYml0LgogCQkJICovCi0JCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21hc2sg PQogCQkJCSgxVSA8PCAoR0VOOF9DVFhfSURfV0lEVEggLSAxKSkgLSAxOwogCQl9IGVsc2Ugewot CQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayA9CisJCQlzdHJlYW0tPnNwZWNp ZmljX2N0eF9pZF9tYXNrID0KIAkJCQkoMVUgPDwgR0VOOF9DVFhfSURfV0lEVEgpIC0gMTsKLQkJ CWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4 X2lkID0KIAkJCQl1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0JCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZCAmPQotCQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21h c2s7CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJCXN0cmVhbS0+c3BlY2lmaWNf Y3R4X2lkX21hc2s7CiAJCX0KIAkJYnJlYWs7CiAKIAljYXNlIDExOiB7Ci0JCWk5MTUtPnBlcmYu b2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPQotCQkJKCgxVSA8PCBHRU4xMV9TV19DVFhfSURfV0lE VEgpIC0gMSkgPDwgKEdFTjExX1NXX0NUWF9JRF9TSElGVCAtIDMyKSB8Ci0JCQkoKDFVIDw8IEdF TjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkgLSAxKSA8PCAoR0VOMTFfRU5HSU5FX0lOU1RBTkNF X1NISUZUIC0gMzIpIHwKLQkJCSgoMSA8PCBHRU4xMV9FTkdJTkVfQ0xBU1NfV0lEVEgpIC0gMSkg PDwgKEdFTjExX0VOR0lORV9DTEFTU19TSElGVCAtIDMyKTsKLQkJaTkxNS0+cGVyZi5vYS5zcGVj aWZpY19jdHhfaWQgPSB1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0JCWk5MTUtPnBlcmYu b2Euc3BlY2lmaWNfY3R4X2lkICY9Ci0JCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9t YXNrOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJCSgoMVUgPDwgR0VOMTFf U1dfQ1RYX0lEX1dJRFRIKSAtIDEpCisJCQkJPDwgKEdFTjExX1NXX0NUWF9JRF9TSElGVCAtIDMy KSB8CisJCQkoKDFVIDw8IEdFTjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkgLSAxKQorCQkJCTw8 IChHRU4xMV9FTkdJTkVfSU5TVEFOQ0VfU0hJRlQgLSAzMikgfAorCQkJKCgxIDw8IEdFTjExX0VO R0lORV9DTEFTU19XSURUSCkgLSAxKQorCQkJCTw8IChHRU4xMV9FTkdJTkVfQ0xBU1NfU0hJRlQg LSAzMik7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0gdXBwZXJfMzJfYml0cyhjZS0+bHJj X2Rlc2MpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJc3RyZWFtLT5zcGVjaWZp Y19jdHhfaWRfbWFzazsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMzEzLDggKzEzMTcsOCBAQCBzdGF0 aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0pCiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiZmlsdGVyaW5nIG9uIGN0eF9pZD0weCV4IGN0 eF9pZF9tYXNrPTB4JXhcbiIsCi0JCQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQsCi0J CQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayk7CisJCQkgc3RyZWFtLT5zcGVj aWZpY19jdHhfaWQsCisJCQkgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayk7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTEzMzEsMTAgKzEzMzUsMTAgQEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRl cl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9IElOVkFM SURfQ1RYX0lEOwotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrID0gMDsK KwlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9IElOVkFMSURfQ1RYX0lEOworCXN0cmVhbS0+c3Bl Y2lmaWNfY3R4X2lkX21hc2sgPSAwOwogCi0JY2UgPSBmZXRjaF9hbmRfemVybygmZGV2X3ByaXYt PnBlcmYub2EucGlubmVkX2N0eCk7CisJY2UgPSBmZXRjaF9hbmRfemVybygmc3RyZWFtLT5waW5u ZWRfY3R4KTsKIAlpZiAoY2UpIHsKIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwogCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKQEAgLTEzNDMsMzQgKzEzNDcsMzQg QEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSkKIH0KIAogc3RhdGljIHZvaWQKLWZyZWVfb2FfYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQorZnJlZV9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSkKIHsKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlpOTE1 X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmaTkxNS0+cGVyZi5vYS5vYV9idWZmZXIudm1hLAorCW11 dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWk5MTVfdm1hX3VucGluX2FuZF9y ZWxlYXNlKCZzdHJlYW0tPm9hX2J1ZmZlci52bWEsCiAJCQkJICAgSTkxNV9WTUFfUkVMRUFTRV9N QVApOwotCiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWk5MTUt PnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKKwlzdHJlYW0tPm9hX2J1ZmZlci52YWRk ciA9IE5VTEw7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rlc3Ryb3koc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCi0JQlVHX09OKHN0cmVhbSAhPSBkZXZfcHJp di0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKTsKKwlCVUdfT04oc3RyZWFtICE9IGRldl9wcml2 LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pOwogCiAJLyoKIAkgKiBVbnNldCBleGNsdXNpdmVfc3Ry ZWFtIGZpcnN0LCBpdCB3aWxsIGJlIGNoZWNrZWQgd2hpbGUgZGlzYWJsaW5nCiAJICogdGhlIG1l dHJpYyBzZXQgb24gZ2VuOCsuCiAJICovCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwotCWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOwot CWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoZGV2X3ByaXYpOworCWRl dl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOworCWRldl9wcml2LT5wZXJmLm9w cy5kaXNhYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5k cm0uc3RydWN0X211dGV4KTsKIAotCWZyZWVfb2FfYnVmZmVyKGRldl9wcml2KTsKKwlmcmVlX29h X2J1ZmZlcihzdHJlYW0pOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2 LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2 LCBzdHJlYW0tPndha2VyZWYpOwpAQCAtMTM4MCw0MSArMTM4NCw0MiBAQCBzdGF0aWMgdm9pZCBp OTE1X29hX3N0cmVhbV9kZXN0cm95KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAK IAlwdXRfb2FfY29uZmlnKGRldl9wcml2LCBzdHJlYW0tPm9hX2NvbmZpZyk7CiAKLQlpZiAoZGV2 X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCkgeworCWlmIChkZXZfcHJp di0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMubWlzc2VkKSB7CiAJCURSTV9OT1RFKCIlZCBzcHVy aW91cyBPQSByZXBvcnQgbm90aWNlcyBzdXBwcmVzc2VkIGR1ZSB0byByYXRlbGltaXRpbmdcbiIs Ci0JCQkgZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CisJCQkg ZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CiAJfQogfQogCi1zdGF0 aWMgdm9pZCBnZW43X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKK3N0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0 dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwog Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9j aywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9j aywgZmxhZ3MpOwogCiAJLyogUHJlLURldkJEVzogT0FCVUZGRVIgbXVzdCBiZSBzZXQgd2l0aCBj b3VudGVycyBvZmYsCiAJICogYmVmb3JlIE9BU1RBVFVTMSwgYnV0IGFmdGVyIE9BU1RBVFVTMgog CSAqLwogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzIsCiAJCSAgIGd0dF9vZmZzZXQgfCBHRU43 X09BU1RBVFVTMl9NRU1fU0VMRUNUX0dHVFQpOyAvKiBoZWFkICovCi0JZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLmhlYWQgPSBndHRfb2Zmc2V0OworCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQg PSBndHRfb2Zmc2V0OwogCiAJSTkxNV9XUklURShHRU43X09BQlVGRkVSLCBndHRfb2Zmc2V0KTsK IAogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfCBPQUJVRkZFUl9TSVpF XzE2TSk7IC8qIHRhaWwgKi8KIAogCS8qIE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBw b2ludGVycyB0byByZWFkIGZyb20uLi4gKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu dGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKLQlkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKKwlzdHJlYW0tPm9h X2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOworCXN0cmVhbS0+b2Ff YnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CiAKLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdz KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywg ZmxhZ3MpOwogCiAJLyogT24gSGFzd2VsbCB3ZSBoYXZlIHRvIHRyYWNrIHdoaWNoIE9BU1RBVFVT MSBmbGFncyB3ZSd2ZQogCSAqIGFscmVhZHkgc2VlbiBzaW5jZSB0aGV5IGNhbid0IGJlIGNsZWFy ZWQgd2hpbGUgcGVyaW9kaWMKIAkgKiBzYW1wbGluZyBpcyBlbmFibGVkLgogCSAqLwotCWRldl9w cml2LT5wZXJmLm9hLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOworCWRldl9wcml2LT5wZXJm LmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOwogCiAJLyogTkI6IGFsdGhvdWdoIHRoZSBPQSBi dWZmZXIgd2lsbCBpbml0aWFsbHkgYmUgYWxsb2NhdGVkCiAJICogemVyb2VkIHZpYSBzaG1mcyAo YW5kIHNvIHRoaXMgbWVtc2V0IGlzIHJlZHVuZGFudCB3aGVuCkBAIC0xNDI3LDI0ICsxNDMyLDI1 IEBAIHN0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCSAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJl aW5nIHdyaXR0ZW4gdG8gemVyb2VkCiAJICogbWVtb3J5Li4uCiAJICovCi0JbWVtc2V0KGRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOworCW1lbXNl dChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOwogCiAJLyogTWF5 YmUgbWFrZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUK IAkgKiBjb25jdXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+ cGVyZi5vYS5wb2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1z dGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVy Zl9zdHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQo ZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVf Z2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOwogCiAJSTkxNV9XUklURShHRU44X09BU1RBVFVTLCAwKTsKIAlJOTE1X1dS SVRFKEdFTjhfT0FIRUFEUFRSLCBndHRfb2Zmc2V0KTsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9i dWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CisJc3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGd0dF9v ZmZzZXQ7CiAKIAlJOTE1X1dSSVRFKEdFTjhfT0FCVUZGRVJfVURXLCAwKTsKIApAQCAtMTQ2MSwx NyArMTQ2NywxNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEdFTjhfT0FUQUlMUFRSLCBndHRf b2Zmc2V0ICYgR0VOOF9PQVRBSUxQVFJfTUFTSyk7CiAKIAkvKiBNYXJrIHRoYXQgd2UgbmVlZCB1 cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9tLi4uICovCi0JZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7Ci0JZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7 CisJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsK KwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwog CiAJLyoKIAkgKiBSZXNldCBzdGF0ZSB1c2VkIHRvIHJlY29nbmlzZSBjb250ZXh0IHN3aXRjaGVz LCBhZmZlY3Rpbmcgd2hpY2gKIAkgKiByZXBvcnRzIHdlIHdpbGwgZm9yd2FyZCB0byB1c2Vyc3Bh Y2Ugd2hpbGUgZmlsdGVyaW5nIGZvciBhIHNpbmdsZQogCSAqIGNvbnRleHQuCiAJICovCi0JZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gSU5WQUxJRF9DVFhfSUQ7CisJ c3RyZWFtLT5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBJTlZBTElEX0NUWF9JRDsKIAotCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywg ZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9s b2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIE5COiBhbHRob3VnaCB0aGUgT0EgYnVmZmVyIHdpbGwg aW5pdGlhbGx5IGJlIGFsbG9jYXRlZApAQCAtMTQ4NSwyMiArMTQ5MSwyMyBAQCBzdGF0aWMgdm9p ZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkgKiB0aGUgYXNzdW1wdGlvbiB0aGF0IG5ldyByZXBvcnRzIGFyZSBiZWluZyB3cml0dGVuIHRv IHplcm9lZAogCSAqIG1lbW9yeS4uLgogCSAqLwotCW1lbXNldChkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKKwltZW1zZXQoc3RyZWFtLT5vYV9i dWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKIAogCS8qCiAJICogTWF5YmUgbWFrZSAt PnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkgKiBjb25j dXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5w b2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1zdGF0aWMgaW50 IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0 aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQog ewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1h OwogCWludCByZXQ7CiAKLQlpZiAoV0FSTl9PTihkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu dm1hKSkKKwlpZiAoV0FSTl9PTihzdHJlYW0tPm9hX2J1ZmZlci52bWEpKQogCQlyZXR1cm4gLUVO T0RFVjsKIAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+ ZHJtKTsKQEAgLTE1MjUsMTggKzE1MzIsMTggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXQgPSBQVFJfRVJSKHZtYSk7 CiAJCWdvdG8gZXJyX3VucmVmOwogCX0KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1h ID0gdm1hOworCXN0cmVhbS0+b2FfYnVmZmVyLnZtYSA9IHZtYTsKIAotCWRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci52YWRkciA9CisJc3RyZWFtLT5vYV9idWZmZXIudmFkZHIgPQogCQlpOTE1 X2dlbV9vYmplY3RfcGluX21hcChibywgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIoZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKSkgewotCQlyZXQgPSBQVFJfRVJSKGRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7CisJaWYgKElTX0VSUihzdHJlYW0tPm9hX2J1ZmZl ci52YWRkcikpIHsKKwkJcmV0ID0gUFRSX0VSUihzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAJ CWdvdG8gZXJyX3VucGluOwogCX0KIAogCURSTV9ERUJVR19EUklWRVIoIk9BIEJ1ZmZlciBpbml0 aWFsaXplZCwgZ3R0IG9mZnNldCA9IDB4JXgsIHZhZGRyID0gJXBcbiIsCi0JCQkgaTkxNV9nZ3R0 X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKSwKLQkJCSBkZXZfcHJpdi0+ cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpOworCQkJIGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5v YV9idWZmZXIudm1hKSwKKwkJCSBzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAKIAlnb3RvIHVu bG9jazsKIApAQCAtMTU0Niw4ICsxNTUzLDggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogZXJyX3VucmVmOgogCWk5MTVfZ2Vt X29iamVjdF9wdXQoYm8pOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0g TlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hID0gTlVMTDsKKwlzdHJlYW0t Pm9hX2J1ZmZlci52YWRkciA9IE5VTEw7CisJc3RyZWFtLT5vYV9idWZmZXIudm1hID0gTlVMTDsK IAogdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpA QCAtMTYxNyw4ICsxNjI0LDEwIEBAIHN0YXRpYyBpbnQgaHN3X2VuYWJsZV9tZXRyaWNfc2V0KHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2 b2lkIGhzd19kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQorc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAlJOTE1X1dSSVRFKEdFTjZfVUNHQ1RMMSwgKEk5MTVfUkVB RChHRU42X1VDR0NUTDEpICYKIAkJCQkgIH5HRU42X0NTVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUp KTsKIAlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCAoSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RM KSB8CkBAIC0xNjM2LDEzICsxNjQ1LDE0IEBAIHN0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21ldHJp Y19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogaW4gdGhlIGNhc2Ug dGhhdCB0aGUgT0EgdW5pdCBoYXMgYmVlbiBkaXNhYmxlZC4KICAqLwogc3RhdGljIHZvaWQKLWdl bjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCitn ZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0 cmVhbSwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkgICAgICAgdTMy ICpyZWdfc3RhdGUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9j b25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjZS0+Z2VtX2NvbnRl eHQtPmk5MTU7Ci0JdTMyIGN0eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJmLm9hLmN0eF9vYWN0eGN0 cmxfb2Zmc2V0OwotCXUzMiBjdHhfZmxleGV1MCA9IGk5MTUtPnBlcmYub2EuY3R4X2ZsZXhldTBf b2Zmc2V0OworCXUzMiBjdHhfb2FjdHhjdHJsID0gaTkxNS0+cGVyZi5jdHhfb2FjdHhjdHJsX29m ZnNldDsKKwl1MzIgY3R4X2ZsZXhldTAgPSBpOTE1LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldDsK IAkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3QgY29udGln dW91cyAqLwogCWk5MTVfcmVnX3QgZmxleF9yZWdzW10gPSB7CiAJCUVVX1BFUkZfQ05UTDAsCkBA IC0xNjU2LDggKzE2NjYsOCBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0 IGludGVsX2NvbnRleHQgKmNlLAogCWludCBpOwogCiAJQ1RYX1JFRyhyZWdfc3RhdGUsIGN0eF9v YWN0eGN0cmwsIEdFTjhfT0FDVFhDT05UUk9MLAotCQkoaTkxNS0+cGVyZi5vYS5wZXJpb2RfZXhw b25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJKGk5MTUtPnBlcmYub2Eu cGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJKHN0cmVhbS0+cGVyaW9k X2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJlYW0tPnBl cmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8CiAJCUdFTjhfT0FfQ09VTlRFUl9S RVNVTUUpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsgaSsrKSB7 CkBAIC0xNjczLDEwICsxNjgzLDEyIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAKIAkJaWYgKG9hX2NvbmZpZykgewogCQkJdTMyIGo7 CisJCQlzdHJ1Y3QgaTkxNV9vYV9yZWcgcmVnOwogCiAJCQlmb3IgKGogPSAwOyBqIDwgb2FfY29u ZmlnLT5mbGV4X3JlZ3NfbGVuOyBqKyspIHsKLQkJCQlpZiAoaTkxNV9tbWlvX3JlZ19vZmZzZXQo b2FfY29uZmlnLT5mbGV4X3JlZ3Nbal0uYWRkcikgPT0gbW1pbykgewotCQkJCQl2YWx1ZSA9IG9h X2NvbmZpZy0+ZmxleF9yZWdzW2pdLnZhbHVlOworCQkJCXJlZyA9IG9hX2NvbmZpZy0+ZmxleF9y ZWdzW2pdOworCQkJCWlmIChpOTE1X21taW9fcmVnX29mZnNldChyZWcuYWRkcikgPT0gbW1pbykg eworCQkJCQl2YWx1ZSA9IHJlZy52YWx1ZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQpAQCAt MTcxNCw5ICsxNzI2LDEwIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UsCiAgKgogICogTm90ZTogaXQncyBvbmx5IHRoZSBSQ1MvUmVuZGVy IGNvbnRleHQgdGhhdCBoYXMgYW55IE9BIHN0YXRlLgogICovCi1zdGF0aWMgaW50IGdlbjhfY29u ZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitz dGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9h X2NvbmZpZykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0t PmRldl9wcml2OwogCXVuc2lnbmVkIGludCBtYXBfdHlwZSA9IGk5MTVfY29oZXJlbnRfbWFwX3R5 cGUoZGV2X3ByaXYpOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnE7CkBAIC0xNzcwLDcgKzE3ODMsMTAgQEAgc3RhdGljIGludCBnZW44X2Nv bmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQkJY2UtPnN0YXRlLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKIAkJCXJlZ3MgKz0gTFJDX1NUQVRF X1BOICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpyZWdzKTsKIAotCQkJZ2VuOF91cGRhdGVfcmVnX3N0 YXRlX3VubG9ja2VkKGNlLCByZWdzLCBvYV9jb25maWcpOworCQkJZ2VuOF91cGRhdGVfcmVnX3N0 YXRlX3VubG9ja2VkKHN0cmVhbSwKKwkJCQkJCSAgICAgICBjZSwKKwkJCQkJCSAgICAgICByZWdz LAorCQkJCQkJICAgICAgIG9hX2NvbmZpZyk7CiAKIAkJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9t YXAoY2UtPnN0YXRlLT5vYmopOwogCQl9CkBAIC0xODIwLDkgKzE4MzYsOSBAQCBzdGF0aWMgaW50 IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkK IAkgKiBSUFRfSUQgZmllbGQuCiAJICovCiAJaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgOSwg MTEpKSB7Ci0JCUk5MTVfV1JJVEUoR0VOOF9PQV9ERUJVRywKLQkJCSAgIF9NQVNLRURfQklUX0VO QUJMRShHRU45X09BX0RFQlVHX0RJU0FCTEVfQ0xLX1JBVElPX1JFUE9SVFMgfAotCQkJCQkgICAg ICBHRU45X09BX0RFQlVHX0lOQ0xVREVfQ0xLX1JBVElPKSk7CisJCXUzMiB2YWwgPSBHRU45X09B X0RFQlVHX0RJU0FCTEVfQ0xLX1JBVElPX1JFUE9SVFMgfAorCQkJICBHRU45X09BX0RFQlVHX0lO Q0xVREVfQ0xLX1JBVElPOworCQlJOTE1X1dSSVRFKEdFTjhfT0FfREVCVUcsIF9NQVNLRURfQklU X0VOQUJMRSh2YWwpKTsKIAl9CiAKIAkvKgpAQCAtMTgzMCw3ICsxODQ2LDcgQEAgc3RhdGljIGlu dCBnZW44X2VuYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0p CiAJICogdG8gbWFrZSBzdXJlIGFsbCBzbGljZXMvc3Vic2xpY2VzIGFyZSBPTiBiZWZvcmUgd3Jp dGluZyB0byBOT0EKIAkgKiByZWdpc3RlcnMuCiAJICovCi0JcmV0ID0gZ2VuOF9jb25maWd1cmVf YWxsX2NvbnRleHRzKGRldl9wcml2LCBvYV9jb25maWcpOworCXJldCA9IGdlbjhfY29uZmlndXJl X2FsbF9jb250ZXh0cyhzdHJlYW0sIG9hX2NvbmZpZyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIApAQCAtMTg0MiwxOSArMTg1OCwyMyBAQCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJp Y19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlyZXR1cm4gMDsKIH0KIAot c3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQorc3RhdGljIHZvaWQgZ2VuOF9kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCiAJLyogUmVzZXQgYWxsIGNvbnRleHRzJyBz bGljZXMvc3Vic2xpY2VzIGNvbmZpZ3VyYXRpb25zLiAqLwotCWdlbjhfY29uZmlndXJlX2FsbF9j b250ZXh0cyhkZXZfcHJpdiwgTlVMTCk7CisJZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0 cmVhbSwgTlVMTCk7CiAKIAlJOTE1X1dSSVRFKEdEVF9DSElDS0VOX0JJVFMsIChJOTE1X1JFQUQo R0RUX0NISUNLRU5fQklUUykgJgogCQkJCSAgICAgIH5HVF9OT0FfRU5BQkxFKSk7CiB9CiAKLXN0 YXRpYyB2b2lkIGdlbjEwX2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBnZW4xMF9kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCiAJLyogUmVzZXQgYWxsIGNvbnRleHRzJyBz bGljZXMvc3Vic2xpY2VzIGNvbmZpZ3VyYXRpb25zLiAqLwotCWdlbjhfY29uZmlndXJlX2FsbF9j b250ZXh0cyhkZXZfcHJpdiwgTlVMTCk7CisJZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0 cmVhbSwgTlVMTCk7CiAKIAkvKiBNYWtlIHN1cmUgd2UgZGlzYWJsZSBub2EgdG8gc2F2ZSBwb3dl ci4gKi8KIAlJOTE1X1dSSVRFKFJQTV9DT05GSUcxLApAQCAtMTg2NSwxMCArMTg4NSwxMCBAQCBz dGF0aWMgdm9pZCBnZW43X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3By aXY7CiAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHN0cmVhbS0+Y3R4OwotCXUzMiBj dHhfaWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQ7Ci0JYm9vbCBwZXJpb2Rp YyA9IGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZGljOwotCXUzMiBwZXJpb2RfZXhwb25lbnQgPSBk ZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQ7Ci0JdTMyIHJlcG9ydF9mb3JtYXQgPSBk ZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0OworCXUzMiBjdHhfaWQgPSBzdHJlYW0t PnNwZWNpZmljX2N0eF9pZDsKKwlib29sIHBlcmlvZGljID0gc3RyZWFtLT5wZXJpb2RpYzsKKwl1 MzIgcGVyaW9kX2V4cG9uZW50ID0gc3RyZWFtLT5wZXJpb2RfZXhwb25lbnQ7CisJdTMyIHJlcG9y dF9mb3JtYXQgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7CiAKIAkvKgogCSAqIFJlc2V0IGJ1 ZiBwb2ludGVycyBzbyB3ZSBkb24ndCBmb3J3YXJkIHJlcG9ydHMgZnJvbSBiZWZvcmUgbm93LgpA QCAtMTg3OSw3ICsxODk5LDcgQEAgc3RhdGljIHZvaWQgZ2VuN19vYV9lbmFibGUoc3RydWN0IGk5 MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGNlcnRh aW4gZmllbGRzIGFyZSB3cml0dGVuIHRvIHplcm9lZAogCSAqIG1lbW9yeSB3aGljaCB0aGlzIGhl bHBzIG1haW50YWlucy4KIAkgKi8KLQlnZW43X2luaXRfb2FfYnVmZmVyKGRldl9wcml2KTsKKwln ZW43X2luaXRfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIAlJOTE1X1dSSVRFKEdFTjdfT0FDT05UUk9M LAogCQkgICAoY3R4X2lkICYgR0VON19PQUNPTlRST0xfQ1RYX01BU0spIHwKQEAgLTE4OTQsNyAr MTkxNCw3IEBAIHN0YXRpYyB2b2lkIGdlbjdfb2FfZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0pCiBzdGF0aWMgdm9pZCBnZW44X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHN0cmVhbS0+ZGV2X3ByaXY7Ci0JdTMyIHJlcG9ydF9mb3JtYXQgPSBkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIuZm9ybWF0OworCXUzMiByZXBvcnRfZm9ybWF0ID0gc3RyZWFtLT5vYV9idWZm ZXIuZm9ybWF0OwogCiAJLyoKIAkgKiBSZXNldCBidWYgcG9pbnRlcnMgc28gd2UgZG9uJ3QgZm9y d2FyZCByZXBvcnRzIGZyb20gYmVmb3JlIG5vdy4KQEAgLTE5MDUsNyArMTkyNSw3IEBAIHN0YXRp YyB2b2lkIGdlbjhfb2FfZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJ ICogb24gdGhlIGFzc3VtcHRpb24gdGhhdCBjZXJ0YWluIGZpZWxkcyBhcmUgd3JpdHRlbiB0byB6 ZXJvZWQKIAkgKiBtZW1vcnkgd2hpY2ggdGhpcyBoZWxwcyBtYWludGFpbnMuCiAJICovCi0JZ2Vu OF9pbml0X29hX2J1ZmZlcihkZXZfcHJpdik7CisJZ2VuOF9pbml0X29hX2J1ZmZlcihzdHJlYW0p OwogCiAJLyoKIAkgKiBOb3RlOiB3ZSBkb24ndCByZWx5IG9uIHRoZSBoYXJkd2FyZSB0byBwZXJm b3JtIHNpbmdsZSBjb250ZXh0CkBAIC0xOTMwLDEwICsxOTUwLDEwIEBAIHN0YXRpYyB2b2lkIGk5 MTVfb2Ffc3RyZWFtX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAK LQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CisJZGV2X3ByaXYtPnBl cmYub3BzLm9hX2VuYWJsZShzdHJlYW0pOwogCi0JaWYgKGRldl9wcml2LT5wZXJmLm9hLnBlcmlv ZGljKQotCQlocnRpbWVyX3N0YXJ0KCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX2NoZWNrX3RpbWVy LAorCWlmIChzdHJlYW0tPnBlcmlvZGljKQorCQlocnRpbWVyX3N0YXJ0KCZzdHJlYW0tPnBvbGxf Y2hlY2tfdGltZXIsCiAJCQkgICAgICBuc190b19rdGltZShQT0xMX1BFUklPRCksCiAJCQkgICAg ICBIUlRJTUVSX01PREVfUkVMX1BJTk5FRCk7CiB9CkBAIC0xOTcyLDEwICsxOTkyLDEwIEBAIHN0 YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rpc2FibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0t PmRldl9wcml2OwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsK KwlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZShzdHJlYW0pOwogCi0JaWYgKGRldl9wcml2 LT5wZXJmLm9hLnBlcmlvZGljKQotCQlocnRpbWVyX2NhbmNlbCgmZGV2X3ByaXYtPnBlcmYub2Eu cG9sbF9jaGVja190aW1lcik7CisJaWYgKHN0cmVhbS0+cGVyaW9kaWMpCisJCWhydGltZXJfY2Fu Y2VsKCZzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW1fb3BzIGk5MTVfb2Ffc3RyZWFtX29wcyA9IHsKQEAgLTIwMjcsNyAr MjA0Nyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoIWRldl9wcml2 LT5wZXJmLm9hLm9wcy5lbmFibGVfbWV0cmljX3NldCkgeworCWlmICghZGV2X3ByaXYtPnBlcmYu b3BzLmVuYWJsZV9tZXRyaWNfc2V0KSB7CiAJCURSTV9ERUJVRygiT0EgdW5pdCBub3Qgc3VwcG9y dGVkXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQpAQCAtMjAzNiw3ICsyMDU2LDcgQEAgc3Rh dGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0sCiAJICogY291bnRlciByZXBvcnRzIGFuZCBtYXJzaGFsIHRvIHRoZSBhcHByb3ByaWF0ZSBj bGllbnQKIAkgKiB3ZSBjdXJyZW50bHkgb25seSBhbGxvdyBleGNsdXNpdmUgYWNjZXNzCiAJICov Ci0JaWYgKGRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0pIHsKKwlpZiAoZGV2X3By aXYtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbSkgewogCQlEUk1fREVCVUcoIk9BIHVuaXQgYWxyZWFk eSBpbiB1c2VcbiIpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KQEAgLTIwNDYsNDMgKzIwNjYsMjMg QEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0sCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCS8qIFdlIHNldCB1cCBzb21lIHJh dGVsaW1pdCBzdGF0ZSB0byBwb3RlbnRpYWxseSB0aHJvdHRsZSBhbnkgX05PVEVTCi0JICogYWJv dXQgc3B1cmlvdXMsIGludmFsaWQgT0EgcmVwb3J0cyB3aGljaCB3ZSBkb24ndCBmb3J3YXJkIHRv Ci0JICogdXNlcnNwYWNlLgotCSAqCi0JICogVGhlIGluaXRpYWxpemF0aW9uIGlzIGFzc29jaWF0 ZWQgd2l0aCBvcGVuaW5nIHRoZSBzdHJlYW0gKG5vdCBkcml2ZXIKLQkgKiBpbml0KSBjb25zaWRl cmluZyB3ZSBwcmludCBhIF9OT1RFIGFib3V0IGFueSB0aHJvdHRsaW5nIHdoZW4gY2xvc2luZwot CSAqIHRoZSBzdHJlYW0gaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIGRyaXZlciBfZmluaSB3aGlj aCBubyBvbmUgd291bGQKLQkgKiBldmVyIHNlZS4KLQkgKgotCSAqIFVzaW5nIHRoZSBzYW1lIGxp bWl0aW5nIGZhY3RvcnMgYXMgcHJpbnRrX3JhdGVsaW1pdCgpCi0JICovCi0JcmF0ZWxpbWl0X3N0 YXRlX2luaXQoJmRldl9wcml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycywKLQkJCSAgICAg NSAqIEhaLCAxMCk7Ci0JLyogU2luY2Ugd2UgdXNlIGEgRFJNX05PVEUgZm9yIHNwdXJpb3VzIHJl cG9ydHMgaXQgd291bGQgYmUKLQkgKiBpbmNvbnNpc3RlbnQgdG8gbGV0IF9fcmF0ZWxpbWl0KCkg YXV0b21hdGljYWxseSBwcmludCBhIHdhcm5pbmcgZm9yCi0JICogdGhyb3R0bGluZy4KLQkgKi8K LQlyYXRlbGltaXRfc2V0X2ZsYWdzKCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRf cnMsCi0JCQkgICAgUkFURUxJTUlUX01TR19PTl9SRUxFQVNFKTsKLQogCXN0cmVhbS0+c2FtcGxl X3NpemUgPSBzaXplb2Yoc3RydWN0IGRybV9pOTE1X3BlcmZfcmVjb3JkX2hlYWRlcik7CiAKLQlm b3JtYXRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1hdHNbcHJvcHMtPm9hX2Zvcm1h dF0uc2l6ZTsKKwlmb3JtYXRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hX2Zvcm1hdHNbcHJvcHMt Pm9hX2Zvcm1hdF0uc2l6ZTsKIAogCXN0cmVhbS0+c2FtcGxlX2ZsYWdzIHw9IFNBTVBMRV9PQV9S RVBPUlQ7CiAJc3RyZWFtLT5zYW1wbGVfc2l6ZSArPSBmb3JtYXRfc2l6ZTsKIAotCWRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZSA9IGZvcm1hdF9zaXplOwotCWlmIChXQVJO X09OKGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZSA9PSAwKSkKKwlzdHJl YW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZSA9IGZvcm1hdF9zaXplOworCWlmIChXQVJOX09OKHN0 cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplID09IDApKQogCQlyZXR1cm4gLUVJTlZBTDsKIAot CWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXQgPQotCQlkZXZfcHJpdi0+cGVyZi5v YS5vYV9mb3JtYXRzW3Byb3BzLT5vYV9mb3JtYXRdLmZvcm1hdDsKKwlzdHJlYW0tPm9hX2J1ZmZl ci5mb3JtYXQgPQorCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzW3Byb3BzLT5vYV9mb3JtYXRd LmZvcm1hdDsKIAotCWRldl9wcml2LT5wZXJmLm9hLnBlcmlvZGljID0gcHJvcHMtPm9hX3Blcmlv ZGljOwotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYykKLQkJZGV2X3ByaXYtPnBlcmYu b2EucGVyaW9kX2V4cG9uZW50ID0gcHJvcHMtPm9hX3BlcmlvZF9leHBvbmVudDsKKwlzdHJlYW0t PnBlcmlvZGljID0gcHJvcHMtPm9hX3BlcmlvZGljOworCWlmIChzdHJlYW0tPnBlcmlvZGljKQor CQlzdHJlYW0tPnBlcmlvZF9leHBvbmVudCA9IHByb3BzLT5vYV9wZXJpb2RfZXhwb25lbnQ7CiAK IAlpZiAoc3RyZWFtLT5jdHgpIHsKIAkJcmV0ID0gb2FfZ2V0X3JlbmRlcl9jdHhfaWQoc3RyZWFt KTsKQEAgLTIxMTMsNyArMjExMyw3IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJlYW1faW5pdChz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCXN0cmVhbS0+d2FrZXJlZiA9IGludGVs X3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldCgm ZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7CiAKLQlyZXQgPSBhbGxvY19vYV9idWZm ZXIoZGV2X3ByaXYpOworCXJldCA9IGFsbG9jX29hX2J1ZmZlcihzdHJlYW0pOwogCWlmIChyZXQp CiAJCWdvdG8gZXJyX29hX2J1Zl9hbGxvYzsKIApAQCAtMjEyMiw5ICsyMTIyLDkgQEAgc3RhdGlj IGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0s CiAJCWdvdG8gZXJyX2xvY2s7CiAKIAlzdHJlYW0tPm9wcyA9ICZpOTE1X29hX3N0cmVhbV9vcHM7 Ci0JZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSA9IHN0cmVhbTsKKwlkZXZfcHJp di0+cGVyZi5leGNsdXNpdmVfc3RyZWFtID0gc3RyZWFtOwogCi0JcmV0ID0gZGV2X3ByaXYtPnBl cmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7CisJcmV0ID0gZGV2X3ByaXYtPnBl cmYub3BzLmVuYWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7CiAJaWYgKHJldCkgewogCQlEUk1fREVC VUcoIlVuYWJsZSB0byBlbmFibGUgbWV0cmljIHNldFxuIik7CiAJCWdvdG8gZXJyX2VuYWJsZTsK QEAgLTIxMzIsMTUgKzIxMzIsMjEgQEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAKIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5kcm0uc3RydWN0X211dGV4KTsKIAorCWhydGltZXJfaW5pdCgmc3RyZWFtLT5wb2xsX2NoZWNr X3RpbWVyLAorCQkgICAgIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7CisJc3Ry ZWFtLT5wb2xsX2NoZWNrX3RpbWVyLmZ1bmN0aW9uID0gb2FfcG9sbF9jaGVja190aW1lcl9jYjsK Kwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzdHJlYW0tPnBvbGxfd3EpOworCXNwaW5fbG9ja19pbml0 KCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jayk7CisKIAlyZXR1cm4gMDsKIAogZXJyX2VuYWJs ZToKLQlkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKLQlkZXZfcHJp di0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0KGRldl9wcml2KTsKKwlkZXZfcHJpdi0+ cGVyZi5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKKwlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJs ZV9tZXRyaWNfc2V0KHN0cmVhbSk7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVj dF9tdXRleCk7CiAKIGVycl9sb2NrOgotCWZyZWVfb2FfYnVmZmVyKGRldl9wcml2KTsKKwlmcmVl X29hX2J1ZmZlcihzdHJlYW0pOwogCiBlcnJfb2FfYnVmX2FsbG9jOgogCXB1dF9vYV9jb25maWco ZGV2X3ByaXYsIHN0cmVhbS0+b2FfY29uZmlnKTsKQEAgLTIxNjQsOSArMjE3MCwxMiBAQCB2b2lk IGk5MTVfb2FfaW5pdF9yZWdfc3RhdGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAog CWlmIChlbmdpbmUtPmNsYXNzICE9IFJFTkRFUl9DTEFTUykKIAkJcmV0dXJuOwogCi0Jc3RyZWFt ID0gZW5naW5lLT5pOTE1LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW07CisJc3RyZWFtID0gZW5n aW5lLT5pOTE1LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW07CiAJaWYgKHN0cmVhbSkKLQkJZ2VuOF91 cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKGNlLCByZWdzLCBzdHJlYW0tPm9hX2NvbmZpZyk7CisJ CWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJlYW0sCisJCQkJCSAgICAgICBjZSwK KwkJCQkJICAgICAgIHJlZ3MsCisJCQkJCSAgICAgICBzdHJlYW0tPm9hX2NvbmZpZyk7CiB9CiAK IC8qKgpAQCAtMjI4Miw3ICsyMjkxLDcgQEAgc3RhdGljIHNzaXplX3QgaTkxNV9wZXJmX3JlYWQo c3RydWN0IGZpbGUgKmZpbGUsCiAJCS8qIE1heWJlIG1ha2UgLT5wb2xsaW4gcGVyLXN0cmVhbSBz dGF0ZSBpZiB3ZSBzdXBwb3J0IG11bHRpcGxlCiAJCSAqIGNvbmN1cnJlbnQgc3RyZWFtcyBpbiB0 aGUgZnV0dXJlLgogCQkgKi8KLQkJZGV2X3ByaXYtPnBlcmYub2EucG9sbGluID0gZmFsc2U7CisJ CXN0cmVhbS0+cG9sbGluID0gZmFsc2U7CiAJfQogCiAJcmV0dXJuIHJldDsKQEAgLTIyOTAsMTMg KzIyOTksMTMgQEAgc3RhdGljIHNzaXplX3QgaTkxNV9wZXJmX3JlYWQoc3RydWN0IGZpbGUgKmZp bGUsCiAKIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBvYV9wb2xsX2NoZWNrX3RpbWVyX2Ni KHN0cnVjdCBocnRpbWVyICpocnRpbWVyKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9Ci0JCWNvbnRhaW5lcl9vZihocnRpbWVyLCB0eXBlb2YoKmRldl9wcml2KSwKLQkJ CSAgICAgcGVyZi5vYS5wb2xsX2NoZWNrX3RpbWVyKTsKKwlzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtID0gY29udGFpbmVyX29mKGhydGltZXIsCisJCQkJCQkgICAgICAgdHlwZW9mKCpz dHJlYW0pLAorCQkJCQkJICAgICAgIHBvbGxfY2hlY2tfdGltZXIpOwogCi0JaWYgKG9hX2J1ZmZl cl9jaGVja191bmxvY2tlZChkZXZfcHJpdikpIHsKLQkJZGV2X3ByaXYtPnBlcmYub2EucG9sbGlu ID0gdHJ1ZTsKLQkJd2FrZV91cCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSk7CisJaWYgKG9h X2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJlYW0pKSB7CisJCXN0cmVhbS0+cG9sbGluID0gdHJ1 ZTsKKwkJd2FrZV91cCgmc3RyZWFtLT5wb2xsX3dxKTsKIAl9CiAKIAlocnRpbWVyX2ZvcndhcmRf bm93KGhydGltZXIsIG5zX3RvX2t0aW1lKFBPTExfUEVSSU9EKSk7CkBAIC0yMzM1LDcgKzIzNDQs NyBAQCBzdGF0aWMgX19wb2xsX3QgaTkxNV9wZXJmX3BvbGxfbG9ja2VkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKiB0aGUgaHJ0aW1lci9vYV9wb2xsX2NoZWNrX3RpbWVy X2NiIHRvIG5vdGlmeSB1cyB3aGVuIHRoZXJlIGFyZQogCSAqIHNhbXBsZXMgdG8gcmVhZC4KIAkg Ki8KLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucG9sbGluKQorCWlmIChzdHJlYW0tPnBvbGxpbikK IAkJZXZlbnRzIHw9IEVQT0xMSU47CiAKIAlyZXR1cm4gZXZlbnRzOwpAQCAtMjY2OCw4ICsyNjc3 LDEwIEBAIGk5MTVfcGVyZl9vcGVuX2lvY3RsX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB1NjQgb2FfZXhwb25lbnRfdG9fbnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgZXhwb25lbnQpCiB7CisJc3RydWN0IGludGVsX3J1 bnRpbWVfaW5mbyAqcmkgPSBSVU5USU1FX0lORk8oZGV2X3ByaXYpOworCiAJcmV0dXJuIGRpdjY0 X3U2NCgxMDAwMDAwMDAwVUxMICogKDJVTEwgPDwgZXhwb25lbnQpLAotCQkJIDEwMDBVTEwgKiBS VU5USU1FX0lORk8oZGV2X3ByaXYpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeik7CisJCQkg MTAwMFVMTCAqIHJpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeik7CiB9CiAKIC8qKgpAQCAt Mjc1Myw3ICsyNzY0LDcgQEAgc3RhdGljIGludCByZWFkX3Byb3BlcnRpZXNfdW5sb2NrZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkgIHZhbHVlKTsKIAkJCQlyZXR1 cm4gLUVJTlZBTDsKIAkJCX0KLQkJCWlmICghZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0c1t2 YWx1ZV0uc2l6ZSkgeworCQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzW3ZhbHVlXS5z aXplKSB7CiAJCQkJRFJNX0RFQlVHKCJVbnN1cHBvcnRlZCBPQSByZXBvcnQgZm9ybWF0ICVsbHVc biIsCiAJCQkJCSAgdmFsdWUpOwogCQkJCXJldHVybiAtRUlOVkFMOwpAQCAtMjg5Nyw3ICsyOTA4 LDcgQEAgdm9pZCBpOTE1X3BlcmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCWlmICghZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqKQogCQlnb3RvIGV4aXQ7 CiAKLQlzeXNmc19hdHRyX2luaXQoJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyKTsKKwlzeXNmc19hdHRyX2luaXQoJmRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDExKSB7CiAJCWk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2ljbChkZXZfcHJpdik7CkBA IC0yOTMyLDE1ICsyOTQzLDE1IEBAIHZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3 KGRldl9wcml2KTsKIH0KIAotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9 PSAwKQorCWlmIChkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9PSAwKQogCQlnb3RvIHN5 c2ZzX2Vycm9yOwogCiAJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGRldl9wcml2LT5wZXJmLm1l dHJpY3Nfa29iaiwKLQkJCQkgJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpYyk7CisJCQkJICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMpOwog CWlmIChyZXQpCiAJCWdvdG8gc3lzZnNfZXJyb3I7CiAKLQlhdG9taWNfc2V0KCZkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5yZWZfY291bnQsIDEpOworCWF0b21pY19zZXQoJmRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnJlZl9jb3VudCwgMSk7CiAKIAlnb3RvIGV4aXQ7CiAKQEAgLTI5 NjcsNyArMjk3OCw3IEBAIHZvaWQgaTkxNV9wZXJmX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXR1cm47CiAKIAlzeXNmc19yZW1vdmVfZ3JvdXAoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLAotCQkJICAgJmRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYyk7CisJCQkgICAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljKTsKIAogCWtvYmplY3RfcHV0KGRldl9wcml2LT5wZXJmLm1ldHJpY3Nfa29i aik7CiAJZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqID0gTlVMTDsKQEAgLTI5OTMsNyArMzAw NCw4IEBAIHN0YXRpYyBib29sIGdlbjhfaXNfdmFsaWRfZmxleF9hZGRyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCiAJcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0 aWMgYm9vbCBnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9hZGRyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIGFkZHIpCitzdGF0aWMgYm9vbCBnZW43X2lzX3ZhbGlkX2JfY291 bnRlcl9hZGRyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJIHUzMiBh ZGRyKQogewogCXJldHVybiAoYWRkciA+PSBpOTE1X21taW9fcmVnX29mZnNldChPQVNUQVJUVFJJ RzEpICYmCiAJCWFkZHIgPD0gaTkxNV9tbWlvX3JlZ19vZmZzZXQoT0FTVEFSVFRSSUc4KSkgfHwK QEAgLTMwNzgsNyArMzA5MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9vYV9yZWcgKmFsbG9jX29h X3JlZ3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICghYWNjZXNzX29r KHJlZ3MsIG5fcmVncyAqIHNpemVvZih1MzIpICogMikpCiAJCXJldHVybiBFUlJfUFRSKC1FRkFV TFQpOwogCi0JLyogTm8gaXNfdmFsaWQgZnVuY3Rpb24gbWVhbnMgd2UncmUgbm90IGFsbG93aW5n IGFueSByZWdpc3RlciB0byBiZSBwcm9ncmFtbWVkLiAqLworCS8qIE5vIGlzX3ZhbGlkIGZ1bmN0 aW9uIG1lYW5zIHdlJ3JlIG5vdCBhbGxvd2luZyBhbnkgcmVnaXN0ZXIgdG8gYmUKKwkgKiBwcm9n cmFtbWVkLgorCSAqLwogCUdFTV9CVUdfT04oIWlzX3ZhbGlkKTsKIAlpZiAoIWlzX3ZhbGlkKQog CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKQEAgLTMyMTEsNyArMzIyNSw3IEBAIGludCBpOTE1 X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCW9hX2NvbmZpZy0+bXV4X3JlZ3NfbGVuID0gYXJncy0+bl9tdXhfcmVnczsKIAlvYV9jb25m aWctPm11eF9yZWdzID0KIAkJYWxsb2Nfb2FfcmVncyhkZXZfcHJpdiwKLQkJCSAgICAgIGRldl9w cml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnLAorCQkJICAgICAgZGV2X3ByaXYtPnBl cmYub3BzLmlzX3ZhbGlkX211eF9yZWcsCiAJCQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ bXV4X3JlZ3NfcHRyKSwKIAkJCSAgICAgIGFyZ3MtPm5fbXV4X3JlZ3MpOwogCkBAIC0zMjI0LDcg KzMyMzgsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKIAlvYV9jb25maWctPmJfY291bnRlcl9yZWdzX2xlbiA9IGFy Z3MtPm5fYm9vbGVhbl9yZWdzOwogCW9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3MgPQogCQlhbGxv Y19vYV9yZWdzKGRldl9wcml2LAotCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3Zh bGlkX2JfY291bnRlcl9yZWcsCisJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRf Yl9jb3VudGVyX3JlZywKIAkJCSAgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5ib29sZWFuX3Jl Z3NfcHRyKSwKIAkJCSAgICAgIGFyZ3MtPm5fYm9vbGVhbl9yZWdzKTsKIApAQCAtMzI0Myw3ICsz MjU3LDcgQEAgaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCiAJCW9hX2NvbmZpZy0+ZmxleF9yZWdzX2xlbiA9IGFyZ3MtPm5f ZmxleF9yZWdzOwogCQlvYV9jb25maWctPmZsZXhfcmVncyA9CiAJCQlhbGxvY19vYV9yZWdzKGRl dl9wcml2LAotCQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3Jl ZywKKwkJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcsCiAJCQkJ ICAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmZsZXhfcmVnc19wdHIpLAogCQkJCSAgICAgIGFy Z3MtPm5fZmxleF9yZWdzKTsKIApAQCAtMzMwMCw3ICszMzE0LDggQEAgaW50IGk5MTVfcGVyZl9h ZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiB9CiAK IC8qKgotICogaTkxNV9wZXJmX3JlbW92ZV9jb25maWdfaW9jdGwgLSBEUk0gaW9jdGwoKSBmb3Ig dXNlcnNwYWNlIHRvIHJlbW92ZSBhbiBPQSBjb25maWcKKyAqIGk5MTVfcGVyZl9yZW1vdmVfY29u ZmlnX2lvY3RsIC0gRFJNIGlvY3RsKCkgZm9yIHVzZXJzcGFjZSB0byByZW1vdmUgYW4gT0EKKyAq IGNvbmZpZwogICogQGRldjogZHJtIGRldmljZQogICogQGRhdGE6IGlvY3RsIGRhdGEgKHBvaW50 ZXIgdG8gdTY0IGludGVnZXIpIGNvcGllZCBmcm9tIHVzZXJzcGFjZQogICogQGZpbGU6IGRybSBm aWxlCkBAIC0zNDA5LDIxICszNDI0LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgY3RsX3RhYmxlIGRldl9y b290W10gPSB7CiAgKi8KIHZvaWQgaTkxNV9wZXJmX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogeworCXN0cnVjdCBpbnRlbF9ydW50aW1lX2luZm8gKnJpOworCiAJaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxp ZF9iX2NvdW50ZXJfcmVnID0KKwkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2JfY291bnRl cl9yZWcgPQogCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKLQkJZGV2X3ByaXYtPnBl cmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcgPQorCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFs aWRfbXV4X3JlZyA9CiAJCQloc3dfaXNfdmFsaWRfbXV4X2FkZHI7Ci0JCWRldl9wcml2LT5wZXJm Lm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9IE5VTEw7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9w cy5lbmFibGVfbWV0cmljX3NldCA9IGhzd19lbmFibGVfbWV0cmljX3NldDsKLQkJZGV2X3ByaXYt PnBlcmYub2Eub3BzLmRpc2FibGVfbWV0cmljX3NldCA9IGhzd19kaXNhYmxlX21ldHJpY19zZXQ7 Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9lbmFibGUgPSBnZW43X29hX2VuYWJsZTsKLQkJ ZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUgPSBnZW43X29hX2Rpc2FibGU7Ci0JCWRl dl9wcml2LT5wZXJmLm9hLm9wcy5yZWFkID0gZ2VuN19vYV9yZWFkOwotCQlkZXZfcHJpdi0+cGVy Zi5vYS5vcHMub2FfaHdfdGFpbF9yZWFkID0KKwkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlk X2ZsZXhfcmVnID0gTlVMTDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLmVuYWJsZV9tZXRyaWNfc2V0 ID0gaHN3X2VuYWJsZV9tZXRyaWNfc2V0OworCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9t ZXRyaWNfc2V0ID0gaHN3X2Rpc2FibGVfbWV0cmljX3NldDsKKwkJZGV2X3ByaXYtPnBlcmYub3Bz Lm9hX2VuYWJsZSA9IGdlbjdfb2FfZW5hYmxlOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlz YWJsZSA9IGdlbjdfb2FfZGlzYWJsZTsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLnJlYWQgPSBnZW43 X29hX3JlYWQ7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9od190YWlsX3JlYWQgPQogCQkJZ2Vu N19vYV9od190YWlsX3JlYWQ7CiAKLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0cyA9IGhz d19vYV9mb3JtYXRzOworCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzID0gaHN3X29hX2Zvcm1h dHM7CiAJfSBlbHNlIGlmIChIQVNfTE9HSUNBTF9SSU5HX0NPTlRFWFRTKGRldl9wcml2KSkgewog CQkvKiBOb3RlOiB0aGF0IGFsdGhvdWdoIHdlIGNvdWxkIHRoZW9yZXRpY2FsbHkgYWxzbyBzdXBw b3J0IHRoZQogCQkgKiBsZWdhY3kgcmluZ2J1ZmZlciBtb2RlIG9uIEJEVyAoYW5kIGVhcmxpZXIg aXRlcmF0aW9ucyBvZgpAQCAtMzQzMSw3NSArMzQ0OCw5MyBAQCB2b2lkIGk5MTVfcGVyZl9pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJICogd29ydGggdGhlIGNvbXBs ZXhpdHkgdG8gbWFpbnRhaW4gbm93IHRoYXQgQkRXKyBlbmFibGUKIAkJICogZXhlY2xpc3QgbW9k ZSBieSBkZWZhdWx0LgogCQkgKi8KLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfZm9ybWF0cyA9IGdl bjhfcGx1c19vYV9mb3JtYXRzOworCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzID0gZ2VuOF9w bHVzX29hX2Zvcm1hdHM7CiAKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJsZSA9IGdl bjhfb2FfZW5hYmxlOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZGlzYWJsZSA9IGdlbjhf b2FfZGlzYWJsZTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQgPSBnZW44X29hX3JlYWQ7 Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190YWlsX3JlYWQgPSBnZW44X29hX2h3X3Rh aWxfcmVhZDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2VuYWJsZSA9IGdlbjhfb2FfZW5hYmxl OworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZSA9IGdlbjhfb2FfZGlzYWJsZTsKKwkJ ZGV2X3ByaXYtPnBlcmYub3BzLnJlYWQgPSBnZW44X29hX3JlYWQ7CisJCWRldl9wcml2LT5wZXJm Lm9wcy5vYV9od190YWlsX3JlYWQgPSBnZW44X29hX2h3X3RhaWxfcmVhZDsKIAogCQlpZiAoSVNf R0VOX1JBTkdFKGRldl9wcml2LCA4LCA5KSkgewotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlz X3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2Jf Y291bnRlcl9yZWcgPQogCQkJCWdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2FkZHI7Ci0JCQlkZXZf cHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5v cHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJZ2VuOF9pc192YWxpZF9tdXhfYWRkcjsKLQkJCWRl dl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVy Zi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPQogCQkJCWdlbjhfaXNfdmFsaWRfZmxleF9hZGRyOwog CiAJCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKLQkJCQlkZXZfcHJpdi0+cGVyZi5v YS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlk X211eF9yZWcgPQogCQkJCQljaHZfaXNfdmFsaWRfbXV4X2FkZHI7CiAJCQl9CiAKLQkJCWRldl9w cml2LT5wZXJmLm9hLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGdlbjhfZW5hYmxlX21ldHJpY19z ZXQ7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gZ2VuOF9k aXNhYmxlX21ldHJpY19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19z ZXQgPQorCQkJCWdlbjhfZW5hYmxlX21ldHJpY19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMu ZGlzYWJsZV9tZXRyaWNfc2V0ID0KKwkJCQlnZW44X2Rpc2FibGVfbWV0cmljX3NldDsKIAogCQkJ aWYgKElTX0dFTihkZXZfcHJpdiwgOCkpIHsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2Fj dHhjdHJsX29mZnNldCA9IDB4MTIwOwotCQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUw X29mZnNldCA9IDB4MmNlOworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0cmxfb2Zmc2V0 ID0gMHgxMjA7CisJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHgyY2U7 CiAKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8MjUpOwor CQkJCWRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgxIDw8IDI1KTsKIAkJCX0g ZWxzZSB7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEy ODsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDNkZTsKKwkJ CQlkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI4OworCQkJCWRldl9w cml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOwogCi0JCQkJZGV2X3ByaXYtPnBl cmYub2EuZ2VuOF92YWxpZF9jdHhfYml0ID0gKDE8PDE2KTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5n ZW44X3ZhbGlkX2N0eF9iaXQgPSAoMSA8PCAxNik7CiAJCQl9CiAJCX0gZWxzZSBpZiAoSVNfR0VO X1JBTkdFKGRldl9wcml2LCAxMCwgMTEpKSB7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNf dmFsaWRfYl9jb3VudGVyX3JlZyA9CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfYl9j b3VudGVyX3JlZyA9CiAJCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJfYWRkcjsKLQkJCWRldl9w cml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnID0KKwkJCWRldl9wcml2LT5wZXJmLm9w cy5pc192YWxpZF9tdXhfcmVnID0KIAkJCQlnZW4xMF9pc192YWxpZF9tdXhfYWRkcjsKLQkJCWRl dl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9CisJCQlkZXZfcHJpdi0+cGVy Zi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPQogCQkJCWdlbjhfaXNfdmFsaWRfZmxleF9hZGRyOwog Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBnZW44X2VuYWJs ZV9tZXRyaWNfc2V0OwotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmRpc2FibGVfbWV0cmljX3Nl dCA9IGdlbjEwX2Rpc2FibGVfbWV0cmljX3NldDsKKwkJCWRldl9wcml2LT5wZXJmLm9wcy5lbmFi bGVfbWV0cmljX3NldCA9CisJCQkJZ2VuOF9lbmFibGVfbWV0cmljX3NldDsKKwkJCWRldl9wcml2 LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPQorCQkJCWdlbjEwX2Rpc2FibGVfbWV0cmlj X3NldDsKIAotCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEy ODsKLQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOworCQkJ ZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyODsKKwkJCWRldl9wcml2 LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2RlOwogCi0JCQlkZXZfcHJpdi0+cGVyZi5v YS5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8MTYpOworCQkJZGV2X3ByaXYtPnBlcmYuZ2VuOF92 YWxpZF9jdHhfYml0ID0gKDEgPDwgMTYpOwogCQl9CiAJfQogCi0JaWYgKGRldl9wcml2LT5wZXJm Lm9hLm9wcy5lbmFibGVfbWV0cmljX3NldCkgewotCQlocnRpbWVyX2luaXQoJmRldl9wcml2LT5w ZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIsCi0JCQkJQ0xPQ0tfTU9OT1RPTklDLCBIUlRJTUVSX01P REVfUkVMKTsKLQkJZGV2X3ByaXYtPnBlcmYub2EucG9sbF9jaGVja190aW1lci5mdW5jdGlvbiA9 IG9hX3BvbGxfY2hlY2tfdGltZXJfY2I7Ci0JCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2 LT5wZXJmLm9hLnBvbGxfd3EpOwotCisJaWYgKGRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0 cmljX3NldCkgewogCQlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnBlcmYuc3RyZWFtcyk7CiAJ CW11dGV4X2luaXQoJmRldl9wcml2LT5wZXJmLmxvY2spOwotCQlzcGluX2xvY2tfaW5pdCgmZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrKTsKIAorCQlyaSA9IFJVTlRJTUVfSU5G TyhkZXZfcHJpdik7CiAJCW9hX3NhbXBsZV9yYXRlX2hhcmRfbGltaXQgPSAxMDAwICoKLQkJCShS VU5USU1FX0lORk8oZGV2X3ByaXYpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeiAvIDIpOwor CQkJKHJpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2toeiAvIDIpOwogCQlkZXZfcHJpdi0+cGVy Zi5zeXNjdGxfaGVhZGVyID0gcmVnaXN0ZXJfc3lzY3RsX3RhYmxlKGRldl9yb290KTsKIAogCQlt dXRleF9pbml0KCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2xvY2spOwogCQlpZHJfaW5pdCgmZGV2 X3ByaXYtPnBlcmYubWV0cmljc19pZHIpOwogCisJCS8qIFdlIHNldCB1cCBzb21lIHJhdGVsaW1p dCBzdGF0ZSB0byBwb3RlbnRpYWxseSB0aHJvdHRsZSBhbnkKKwkJICogX05PVEVTIGFib3V0IHNw dXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9ydHMgd2hpY2ggd2UgZG9uJ3QKKwkJICogZm9yd2FyZCB0 byB1c2Vyc3BhY2UuCisJCSAqCisJCSAqIFdlIHByaW50IGEgX05PVEUgYWJvdXQgYW55IHRocm90 dGxpbmcgd2hlbiBjbG9zaW5nIHRoZQorCQkgKiBzdHJlYW0gaW5zdGVhZCBvZiB3YWl0aW5nIHVu dGlsIGRyaXZlciBfZmluaSB3aGljaCBubyBvbmUKKwkJICogd291bGQgZXZlciBzZWUuCisJCSAq CisJCSAqIFVzaW5nIHRoZSBzYW1lIGxpbWl0aW5nIGZhY3RvcnMgYXMgcHJpbnRrX3JhdGVsaW1p dCgpCisJCSAqLworCQlyYXRlbGltaXRfc3RhdGVfaW5pdCgmZGV2X3ByaXYtPnBlcmYuc3B1cmlv dXNfcmVwb3J0X3JzLAorCQkJCSAgICAgNSAqIEhaLCAxMCk7CisJCS8qIFNpbmNlIHdlIHVzZSBh IERSTV9OT1RFIGZvciBzcHVyaW91cyByZXBvcnRzIGl0IHdvdWxkIGJlCisJCSAqIGluY29uc2lz dGVudCB0byBsZXQgX19yYXRlbGltaXQoKSBhdXRvbWF0aWNhbGx5IHByaW50IGEKKwkJICogd2Fy bmluZyBmb3IgdGhyb3R0bGluZy4KKwkJICovCisJCXJhdGVsaW1pdF9zZXRfZmxhZ3MoJmRldl9w cml2LT5wZXJmLnNwdXJpb3VzX3JlcG9ydF9ycywKKwkJCQkgICAgUkFURUxJTUlUX01TR19PTl9S RUxFQVNFKTsKKwogCQlkZXZfcHJpdi0+cGVyZi5pbml0aWFsaXplZCA9IHRydWU7CiAJfQogfQpA QCAtMzUyOCw3ICszNTYzLDcgQEAgdm9pZCBpOTE1X3BlcmZfZmluaShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShkZXZfcHJpdi0+ cGVyZi5zeXNjdGxfaGVhZGVyKTsKIAotCW1lbXNldCgmZGV2X3ByaXYtPnBlcmYub2Eub3BzLCAw LCBzaXplb2YoZGV2X3ByaXYtPnBlcmYub2Eub3BzKSk7CisJbWVtc2V0KCZkZXZfcHJpdi0+cGVy Zi5vcHMsIDAsIHNpemVvZihkZXZfcHJpdi0+cGVyZi5vcHMpKTsKIAogCWRldl9wcml2LT5wZXJm LmluaXRpYWxpemVkID0gZmFsc2U7CiB9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==