From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 35D8F6E195 for ; Thu, 13 Aug 2020 08:58:02 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Thu, 13 Aug 2020 10:56:50 +0200 Message-Id: <20200813085657.20658-24-zbigniew.kempczynski@intel.com> In-Reply-To: <20200813085657.20658-1-zbigniew.kempczynski@intel.com> References: <20200813085657.20658-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v28 23/30] tests/gem_render_copy: remove libdrm dependency List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Chris Wilson List-ID: VXNlIGludGVsX2JiIC8gaW50ZWxfYnVmIHRvIHJlbW92ZSBsaWJkcm0gZGVwZW5kZW5jeS4KClNp Z25lZC1vZmYtYnk6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lA aW50ZWwuY29tPgpDYzogRG9taW5payBHcnplZ29yemVrIDxkb21pbmlrLmdyemVnb3J6ZWtAaW50 ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQog dGVzdHMvaTkxNS9nZW1fcmVuZGVyX2NvcHkuYyB8IDMxMyArKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCAxOTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fcmVuZGVyX2NvcHkuYyBiL3Rl c3RzL2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMKaW5kZXggMWUxZTc5YjkuLjdmNDI1ZGNkIDEwMDY0 NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2Vt X3JlbmRlcl9jb3B5LmMKQEAgLTQ3LDggKzQ3LDcgQEAKICNpbmNsdWRlICJpOTE1L2dlbS5oIgog I2luY2x1ZGUgImlndC5oIgogI2luY2x1ZGUgImlndF94ODYuaCIKLSNpbmNsdWRlICJpbnRlbF9i dWZtZ3IuaCIKLSNpbmNsdWRlICJyZW5kZXJjb3B5X2J1Zm1nci5oIgorI2luY2x1ZGUgImludGVs X2J1Zm9wcy5oIgogCiBJR1RfVEVTVF9ERVNDUklQVElPTigiQmFzaWMgdGVzdCBmb3IgdGhlIHJl bmRlcl9jb3B5KCkgZnVuY3Rpb24uIik7CiAKQEAgLTU4LDExICs1NywxMCBAQCBJR1RfVEVTVF9E RVNDUklQVElPTigiQmFzaWMgdGVzdCBmb3IgdGhlIHJlbmRlcl9jb3B5KCkgZnVuY3Rpb24uIik7 CiB0eXBlZGVmIHN0cnVjdCB7CiAJaW50IGRybV9mZDsKIAl1aW50MzJfdCBkZXZpZDsKLQlkcm1f aW50ZWxfYnVmbWdyICpidWZtZ3I7Ci0Jc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsK KwlzdHJ1Y3QgYnVmX29wcyAqYm9wczsKKwlzdHJ1Y3QgaW50ZWxfYmIgKmliYjsKIAlpZ3RfcmVu ZGVyX2NvcHlmdW5jX3QgcmVuZGVyX2NvcHk7CiAJaWd0X3ZlYm94X2NvcHlmdW5jX3QgdmVib3hf Y29weTsKLQlzdHJ1Y3QgcmVuZGVyY29weV9idWZtZ3IgKmJtZ3I7CiB9IGRhdGFfdDsKIHN0YXRp YyBpbnQgb3B0X2R1bXBfcG5nID0gZmFsc2U7CiBzdGF0aWMgaW50IGNoZWNrX2FsbF9waXhlbHMg PSBmYWxzZTsKQEAgLTg3LDU5ICs4NSwzMiBAQCBzdGF0aWMgdm9pZCAqYWxsb2NfYWxpZ25lZCh1 aW50NjRfdCBzaXplKQogfQogCiBzdGF0aWMgdm9pZAotY29weV9mcm9tX2xpbmVhcl9idWYoZGF0 YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqc3JjLCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KQorY29w eV9mcm9tX2xpbmVhcl9idWYoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaW50ZWxfYnVmICpzcmMsIHN0 cnVjdCBpbnRlbF9idWYgKmRzdCkKIHsKLQl2b2lkICpsaW5lYXI7Ci0KIAlpZ3RfYXNzZXJ0KHNy Yy0+dGlsaW5nID09IEk5MTVfVElMSU5HX05PTkUpOwogCi0JZ2VtX3NldF9kb21haW4oZGF0YS0+ ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsCisJZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBz cmMtPmhhbmRsZSwKIAkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9DUFUsIDApOwotCWxpbmVhciA9 IF9fZ2VtX21tYXBfb2Zmc2V0X19jcHUoZGF0YS0+ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsIDAs Ci0JCQkJCXNyYy0+Ym8tPnNpemUsIFBST1RfUkVBRCk7Ci0JaWYgKCFsaW5lYXIpCi0JCWxpbmVh ciA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsIDAsCi0JCQkJ ICAgICAgIHNyYy0+Ym8tPnNpemUsIFBST1RfUkVBRCk7Ci0KLQlsaW5lYXJfdG9faWd0X2J1Zihk YXRhLT5ibWdyLCBkc3QsIGxpbmVhcik7Ci0KLQltdW5tYXAobGluZWFyLCBzcmMtPmJvLT5zaXpl KTsKLX0KLQotc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfd3JpdGVfdG9fcG5nKGRhdGFfdCAqZGF0 YSwgc3RydWN0IGlndF9idWYgKmJ1ZiwKLQkJCQkgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQot ewotCWNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZTsKLQljYWlyb19zdGF0dXNfdCByZXQ7Ci0Jdm9p ZCAqbGluZWFyOwotCi0JbGluZWFyID0gYWxsb2NfYWxpZ25lZChidWYtPmJvLT5zaXplKTsKLQlp Z3RfYnVmX3RvX2xpbmVhcihkYXRhLT5ibWdyLCBidWYsIGxpbmVhcik7CisJaW50ZWxfYnVmX2Nw dV9tYXAoc3JjLCBmYWxzZSk7CiAKLQlzdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh dGVfZm9yX2RhdGEobGluZWFyLAotCQkJCQkJICAgICAgQ0FJUk9fRk9STUFUX1JHQjI0LAotCQkJ CQkJICAgICAgaWd0X2J1Zl93aWR0aChidWYpLAotCQkJCQkJICAgICAgaWd0X2J1Zl9oZWlnaHQo YnVmKSwKLQkJCQkJCSAgICAgIGJ1Zi0+c3VyZmFjZVswXS5zdHJpZGUpOwotCXJldCA9IGNhaXJv X3N1cmZhY2Vfd3JpdGVfdG9fcG5nKHN1cmZhY2UsIG1ha2VfZmlsZW5hbWUoZmlsZW5hbWUpKTsK LQlpZ3RfYXNzZXJ0KHJldCA9PSBDQUlST19TVEFUVVNfU1VDQ0VTUyk7Ci0JY2Fpcm9fc3VyZmFj ZV9kZXN0cm95KHN1cmZhY2UpOworCWxpbmVhcl90b19pbnRlbF9idWYoZGF0YS0+Ym9wcywgZHN0 LCBzcmMtPnB0cik7CiAKLQlmcmVlKGxpbmVhcik7CisJaW50ZWxfYnVmX3VubWFwKHNyYyk7CiB9 CiAKLXN0YXRpYyB2b2lkICpsaW5lYXJfY29weV9jY3MoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0 X2J1ZiAqYnVmKQorc3RhdGljIHZvaWQgKmxpbmVhcl9jb3B5X2NjcyhkYXRhX3QgKmRhdGEsIHN0 cnVjdCBpbnRlbF9idWYgKmJ1ZikKIHsKIAl2b2lkICpjY3NfZGF0YSwgKmxpbmVhcjsKIAlpbnQg Z2VuID0gaW50ZWxfZ2VuKGRhdGEtPmRldmlkKTsKLQlpbnQgY2NzX3NpemUgPSBpZ3RfYnVmX2lu dGVsX2Njc193aWR0aChnZW4sIGJ1ZikgKgotCQlpZ3RfYnVmX2ludGVsX2Njc19oZWlnaHQoZ2Vu LCBidWYpOworCWludCBjY3Nfc2l6ZSA9IGludGVsX2J1Zl9jY3Nfd2lkdGgoZ2VuLCBidWYpICoK KwkJaW50ZWxfYnVmX2Njc19oZWlnaHQoZ2VuLCBidWYpOworCWludCBib19zaXplID0gaW50ZWxf YnVmX2JvX3NpemUoYnVmKTsKIAogCWNjc19kYXRhID0gYWxsb2NfYWxpZ25lZChjY3Nfc2l6ZSk7 Ci0JbGluZWFyID0gYWxsb2NfYWxpZ25lZChidWYtPmJvLT5zaXplKTsKLQltZW1zZXQobGluZWFy LCAwLCBidWYtPmJvLT5zaXplKTsKKwlsaW5lYXIgPSBhbGxvY19hbGlnbmVkKGJvX3NpemUpOwor CW1lbXNldChsaW5lYXIsIDAsIGJvX3NpemUpOwogCi0JaWd0X2J1Zl90b19saW5lYXIoZGF0YS0+ Ym1nciwgYnVmLCBsaW5lYXIpOworCWludGVsX2J1Zl90b19saW5lYXIoZGF0YS0+Ym9wcywgYnVm LCBsaW5lYXIpOwogCWlndF9tZW1jcHlfZnJvbV93YyhjY3NfZGF0YSwgbGluZWFyICsgYnVmLT5j Y3NbMF0ub2Zmc2V0LCBjY3Nfc2l6ZSk7CiAKIAlmcmVlKGxpbmVhcik7CkBAIC0xNDcsMzEgKzEx OCw3IEBAIHN0YXRpYyB2b2lkICpsaW5lYXJfY29weV9jY3MoZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg aWd0X2J1ZiAqYnVmKQogCXJldHVybiBjY3NfZGF0YTsKIH0KIAotc3RhdGljIHZvaWQgc2NyYXRj aF9idWZfY2NzX3dyaXRlX3RvX3BuZyhkYXRhX3QgKmRhdGEsCi0JCQkJCSBzdHJ1Y3QgaWd0X2J1 ZiAqYnVmLAotCQkJCQkgY29uc3QgY2hhciAqZmlsZW5hbWUpCi17Ci0JY2Fpcm9fc3VyZmFjZV90 ICpzdXJmYWNlOwotCWNhaXJvX3N0YXR1c190IHJldDsKLQl2b2lkICpsaW5lYXI7Ci0JaW50IGdl biA9IGludGVsX2dlbihkYXRhLT5kZXZpZCk7Ci0JdW5zaWduZWQgaW50IGNjc193aWR0aCA9IGln dF9idWZfaW50ZWxfY2NzX3dpZHRoKGdlbiwgYnVmKTsKLQl1bnNpZ25lZCBpbnQgY2NzX2hlaWdo dCA9IGlndF9idWZfaW50ZWxfY2NzX2hlaWdodChnZW4sIGJ1Zik7Ci0KLQlsaW5lYXIgPSBsaW5l YXJfY29weV9jY3MoZGF0YSwgYnVmKTsKLQotCXN1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNl X2NyZWF0ZV9mb3JfZGF0YShsaW5lYXIsCi0JCQkJCQkgICAgICBDQUlST19GT1JNQVRfQTgsCi0J CQkJCQkgICAgICBjY3Nfd2lkdGgsIGNjc19oZWlnaHQsCi0JCQkJCQkgICAgICBidWYtPmNjc1sw XS5zdHJpZGUpOwotCXJldCA9IGNhaXJvX3N1cmZhY2Vfd3JpdGVfdG9fcG5nKHN1cmZhY2UsIG1h a2VfZmlsZW5hbWUoZmlsZW5hbWUpKTsKLQlpZ3RfYXNzZXJ0KHJldCA9PSBDQUlST19TVEFUVVNf U1VDQ0VTUyk7Ci0JY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1cmZhY2UpOwotCi0JZnJlZShsaW5l YXIpOwotfQotCi1zdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4oZGF0YV90ICpk YXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAorc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfZHJhd19w YXR0ZXJuKGRhdGFfdCAqZGF0YSwgc3RydWN0IGludGVsX2J1ZiAqYnVmLAogCQkJCSAgICAgaW50 IHgsIGludCB5LCBpbnQgdywgaW50IGgsCiAJCQkJICAgICBpbnQgY3gsIGludCBjeSwgaW50IGN3 LCBpbnQgY2gsCiAJCQkJICAgICBib29sIHVzZV9hbHRlcm5hdGVfY29sb3JzKQpAQCAtMTgxLDEy ICsxMjgsMTIgQEAgc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfZHJhd19wYXR0ZXJuKGRhdGFfdCAq ZGF0YSwgc3RydWN0IGlndF9idWYgKmJ1ZiwKIAljYWlyb190ICpjcjsKIAl2b2lkICpsaW5lYXI7 CiAKLQlsaW5lYXIgPSBhbGxvY19hbGlnbmVkKGJ1Zi0+Ym8tPnNpemUpOworCWxpbmVhciA9IGFs bG9jX2FsaWduZWQoYnVmLT5zdXJmYWNlWzBdLnNpemUpOwogCiAJc3VyZmFjZSA9IGNhaXJvX2lt YWdlX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYXRhKGxpbmVhciwKIAkJCQkJCSAgICAgIENBSVJPX0ZP Uk1BVF9SR0IyNCwKLQkJCQkJCSAgICAgIGlndF9idWZfd2lkdGgoYnVmKSwKLQkJCQkJCSAgICAg IGlndF9idWZfaGVpZ2h0KGJ1ZiksCisJCQkJCQkgICAgICBpbnRlbF9idWZfd2lkdGgoYnVmKSwK KwkJCQkJCSAgICAgIGludGVsX2J1Zl9oZWlnaHQoYnVmKSwKIAkJCQkJCSAgICAgIGJ1Zi0+c3Vy ZmFjZVswXS5zdHJpZGUpOwogCiAJY3IgPSBjYWlyb19jcmVhdGUoc3VyZmFjZSk7CkBAIC0yMjIs MjQgKzE2OSwyNCBAQCBzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4oZGF0YV90 ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAogCiAJY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHN1 cmZhY2UpOwogCi0JbGluZWFyX3RvX2lndF9idWYoZGF0YS0+Ym1nciwgYnVmLCBsaW5lYXIpOwor CWxpbmVhcl90b19pbnRlbF9idWYoZGF0YS0+Ym9wcywgYnVmLCBsaW5lYXIpOwogCiAJZnJlZShs aW5lYXIpOwogfQogCiBzdGF0aWMgdm9pZAogc2NyYXRjaF9idWZfY29weShkYXRhX3QgKmRhdGEs Ci0JCSBzdHJ1Y3QgaWd0X2J1ZiAqc3JjLCBpbnQgc3gsIGludCBzeSwgaW50IHcsIGludCBoLAot CQkgc3RydWN0IGlndF9idWYgKmRzdCwgaW50IGR4LCBpbnQgZHkpCisJCSBzdHJ1Y3QgaW50ZWxf YnVmICpzcmMsIGludCBzeCwgaW50IHN5LCBpbnQgdywgaW50IGgsCisJCSBzdHJ1Y3QgaW50ZWxf YnVmICpkc3QsIGludCBkeCwgaW50IGR5KQogewotCWludCB3aWR0aCA9IGlndF9idWZfd2lkdGgo ZHN0KTsKLQlpbnQgaGVpZ2h0ICA9IGlndF9idWZfaGVpZ2h0KGRzdCk7CisJaW50IHdpZHRoID0g aW50ZWxfYnVmX3dpZHRoKGRzdCk7CisJaW50IGhlaWdodCA9IGludGVsX2J1Zl9oZWlnaHQoZHN0 KTsKIAl1aW50MzJfdCAqbGluZWFyX2RzdDsKIAl1aW50MzJfdCAqbGluZWFyX3NyYzsKIAotCWln dF9hc3NlcnRfZXEoaWd0X2J1Zl93aWR0aChkc3QpLCBpZ3RfYnVmX3dpZHRoKHNyYykpOwotCWln dF9hc3NlcnRfZXEoaWd0X2J1Zl9oZWlnaHQoZHN0KSwgaWd0X2J1Zl9oZWlnaHQoc3JjKSk7Ci0J aWd0X2Fzc2VydF9lcShkc3QtPmJvLT5zaXplLCBzcmMtPmJvLT5zaXplKTsKKwlpZ3RfYXNzZXJ0 X2VxKGludGVsX2J1Zl93aWR0aChkc3QpLCBpbnRlbF9idWZfd2lkdGgoc3JjKSk7CisJaWd0X2Fz c2VydF9lcShpbnRlbF9idWZfaGVpZ2h0KGRzdCksIGludGVsX2J1Zl9oZWlnaHQoc3JjKSk7CisJ aWd0X2Fzc2VydF9lcShpbnRlbF9idWZfYm9fc2l6ZShkc3QpLCBpbnRlbF9idWZfYm9fc2l6ZShz cmMpKTsKIAlpZ3RfYXNzZXJ0X2VxKGRzdC0+YnBwLCBzcmMtPmJwcCk7CiAKIAl3ID0gbWluKHcs IHdpZHRoIC0gc3gpOwpAQCAtMjQ4LDEwICsxOTUsMTAgQEAgc2NyYXRjaF9idWZfY29weShkYXRh X3QgKmRhdGEsCiAJaCA9IG1pbihoLCBoZWlnaHQgLSBzeSk7CiAJaCA9IG1pbihoLCBoZWlnaHQg LSBkeSk7CiAKLQlsaW5lYXJfZHN0ID0gYWxsb2NfYWxpZ25lZChkc3QtPmJvLT5zaXplKTsKLQls aW5lYXJfc3JjID0gYWxsb2NfYWxpZ25lZChzcmMtPmJvLT5zaXplKTsKLQlpZ3RfYnVmX3RvX2xp bmVhcihkYXRhLT5ibWdyLCBzcmMsIGxpbmVhcl9zcmMpOwotCWlndF9idWZfdG9fbGluZWFyKGRh dGEtPmJtZ3IsIGRzdCwgbGluZWFyX2RzdCk7CisJbGluZWFyX2RzdCA9IGFsbG9jX2FsaWduZWQo aW50ZWxfYnVmX2JvX3NpemUoZHN0KSk7CisJbGluZWFyX3NyYyA9IGFsbG9jX2FsaWduZWQoaW50 ZWxfYnVmX2JvX3NpemUoc3JjKSk7CisJaW50ZWxfYnVmX3RvX2xpbmVhcihkYXRhLT5ib3BzLCBz cmMsIGxpbmVhcl9zcmMpOworCWludGVsX2J1Zl90b19saW5lYXIoZGF0YS0+Ym9wcywgZHN0LCBs aW5lYXJfZHN0KTsKIAogCWZvciAoaW50IHkgPSAwOyB5IDwgaDsgeSsrKSB7CiAJCW1lbWNweSgm bGluZWFyX2RzdFsoZHkreSkgKiB3aWR0aCArIGR4XSwKQEAgLTI2MCw1MCArMjA3LDUwIEBAIHNj cmF0Y2hfYnVmX2NvcHkoZGF0YV90ICpkYXRhLAogCX0KIAlmcmVlKGxpbmVhcl9zcmMpOwogCi0J bGluZWFyX3RvX2lndF9idWYoZGF0YS0+Ym1nciwgZHN0LCBsaW5lYXJfZHN0KTsKKwlsaW5lYXJf dG9faW50ZWxfYnVmKGRhdGEtPmJvcHMsIGRzdCwgbGluZWFyX2RzdCk7CiAJZnJlZShsaW5lYXJf ZHN0KTsKIH0KIAotc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfaW5pdChkYXRhX3QgKmRhdGEsIHN0 cnVjdCBpZ3RfYnVmICpidWYsCitzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9pbml0KGRhdGFfdCAq ZGF0YSwgc3RydWN0IGludGVsX2J1ZiAqYnVmLAogCQkJICAgICBpbnQgd2lkdGgsIGludCBoZWln aHQsCiAJCQkgICAgIHVpbnQzMl90IHJlcV90aWxpbmcsCiAJCQkgICAgIGVudW0gaTkxNV9jb21w cmVzc2lvbiBjb21wcmVzc2lvbikKIHsKIAlpbnQgYnBwID0gMzI7CiAKLQlpZ3RfYnVmX2luaXQo ZGF0YS0+Ym1nciwgYnVmLCB3aWR0aCwgaGVpZ2h0LCBicHAsIHJlcV90aWxpbmcsCi0JCSAgICAg Y29tcHJlc3Npb24pOworCWludGVsX2J1Zl9pbml0KGRhdGEtPmJvcHMsIGJ1Ziwgd2lkdGgsIGhl aWdodCwgYnBwLCAwLAorCQkgICAgICAgcmVxX3RpbGluZywgY29tcHJlc3Npb24pOwogCi0JaWd0 X2Fzc2VydChpZ3RfYnVmX3dpZHRoKGJ1ZikgPT0gd2lkdGgpOwotCWlndF9hc3NlcnQoaWd0X2J1 Zl9oZWlnaHQoYnVmKSA9PSBoZWlnaHQpOworCWlndF9hc3NlcnQoaW50ZWxfYnVmX3dpZHRoKGJ1 ZikgPT0gd2lkdGgpOworCWlndF9hc3NlcnQoaW50ZWxfYnVmX2hlaWdodChidWYpID09IGhlaWdo dCk7CiB9CiAKLXN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2Zpbmkoc3RydWN0IGlndF9idWYgKmJ1 ZikKK3N0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2Zpbmkoc3RydWN0IGludGVsX2J1ZiAqYnVmKQog ewotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShidWYtPmJvKTsKKwlpbnRlbF9idWZfY2xvc2Uo YnVmLT5ib3BzLCBidWYpOwogfQogCiBzdGF0aWMgdm9pZAogc2NyYXRjaF9idWZfY2hlY2soZGF0 YV90ICpkYXRhLAotCQkgIHN0cnVjdCBpZ3RfYnVmICpidWYsCi0JCSAgc3RydWN0IGlndF9idWYg KnJlZiwKKwkJICBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsCisJCSAgc3RydWN0IGludGVsX2J1ZiAq cmVmLAogCQkgIGludCB4LCBpbnQgeSkKIHsKLQlpbnQgd2lkdGggPSBpZ3RfYnVmX3dpZHRoKGJ1 Zik7CisJaW50IHdpZHRoID0gaW50ZWxfYnVmX3dpZHRoKGJ1Zik7CiAJdWludDMyX3QgYnVmX3Zh bCwgcmVmX3ZhbDsKIAl1aW50MzJfdCAqbGluZWFyOwogCi0JaWd0X2Fzc2VydF9lcShpZ3RfYnVm X3dpZHRoKGJ1ZiksIGlndF9idWZfd2lkdGgocmVmKSk7Ci0JaWd0X2Fzc2VydF9lcShpZ3RfYnVm X2hlaWdodChidWYpLCBpZ3RfYnVmX2hlaWdodChyZWYpKTsKLQlpZ3RfYXNzZXJ0X2VxKGJ1Zi0+ Ym8tPnNpemUsIHJlZi0+Ym8tPnNpemUpOworCWlndF9hc3NlcnRfZXEoaW50ZWxfYnVmX3dpZHRo KGJ1ZiksIGludGVsX2J1Zl93aWR0aChyZWYpKTsKKwlpZ3RfYXNzZXJ0X2VxKGludGVsX2J1Zl9o ZWlnaHQoYnVmKSwgaW50ZWxfYnVmX2hlaWdodChyZWYpKTsKKwlpZ3RfYXNzZXJ0X2VxKGJ1Zi0+ c3VyZmFjZVswXS5zaXplLCByZWYtPnN1cmZhY2VbMF0uc2l6ZSk7CiAKLQlsaW5lYXIgPSBhbGxv Y19hbGlnbmVkKGJ1Zi0+Ym8tPnNpemUpOwotCWlndF9idWZfdG9fbGluZWFyKGRhdGEtPmJtZ3Is IGJ1ZiwgbGluZWFyKTsKKwlsaW5lYXIgPSBhbGxvY19hbGlnbmVkKGJ1Zi0+c3VyZmFjZVswXS5z aXplKTsKKwlpbnRlbF9idWZfdG9fbGluZWFyKGRhdGEtPmJvcHMsIGJ1ZiwgbGluZWFyKTsKIAli dWZfdmFsID0gbGluZWFyW3kgKiB3aWR0aCArIHhdOwogCWZyZWUobGluZWFyKTsKIAotCWxpbmVh ciA9IGFsbG9jX2FsaWduZWQocmVmLT5iby0+c2l6ZSk7Ci0JaWd0X2J1Zl90b19saW5lYXIoZGF0 YS0+Ym1nciwgYnVmLCBsaW5lYXIpOworCWxpbmVhciA9IGFsbG9jX2FsaWduZWQocmVmLT5zdXJm YWNlWzBdLnNpemUpOworCWludGVsX2J1Zl90b19saW5lYXIoZGF0YS0+Ym9wcywgYnVmLCBsaW5l YXIpOwogCXJlZl92YWwgPSBsaW5lYXJbeSAqIHdpZHRoICsgeF07CiAJZnJlZShsaW5lYXIpOwog CkBAIC0zMTQsMjEgKzI2MSwyMSBAQCBzY3JhdGNoX2J1Zl9jaGVjayhkYXRhX3QgKmRhdGEsCiAK IHN0YXRpYyB2b2lkCiBzY3JhdGNoX2J1Zl9jaGVja19hbGwoZGF0YV90ICpkYXRhLAotCQkgICAg ICBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAotCQkgICAgICBzdHJ1Y3QgaWd0X2J1ZiAqcmVmKQorCQkg ICAgICBzdHJ1Y3QgaW50ZWxfYnVmICpidWYsCisJCSAgICAgIHN0cnVjdCBpbnRlbF9idWYgKnJl ZikKIHsKLQlpbnQgd2lkdGggPSBpZ3RfYnVmX3dpZHRoKGJ1Zik7Ci0JaW50IGhlaWdodCAgPSBp Z3RfYnVmX2hlaWdodChidWYpOworCWludCB3aWR0aCA9IGludGVsX2J1Zl93aWR0aChidWYpOwor CWludCBoZWlnaHQgPSBpbnRlbF9idWZfaGVpZ2h0KGJ1Zik7CiAJdWludDMyX3QgKmxpbmVhcl9i dWYsICpsaW5lYXJfcmVmOwogCi0JaWd0X2Fzc2VydF9lcShpZ3RfYnVmX3dpZHRoKGJ1ZiksIGln dF9idWZfd2lkdGgocmVmKSk7Ci0JaWd0X2Fzc2VydF9lcShpZ3RfYnVmX2hlaWdodChidWYpLCBp Z3RfYnVmX2hlaWdodChyZWYpKTsKLQlpZ3RfYXNzZXJ0X2VxKGJ1Zi0+Ym8tPnNpemUsIHJlZi0+ Ym8tPnNpemUpOworCWlndF9hc3NlcnRfZXEoaW50ZWxfYnVmX3dpZHRoKGJ1ZiksIGludGVsX2J1 Zl93aWR0aChyZWYpKTsKKwlpZ3RfYXNzZXJ0X2VxKGludGVsX2J1Zl9oZWlnaHQoYnVmKSwgaW50 ZWxfYnVmX2hlaWdodChyZWYpKTsKKwlpZ3RfYXNzZXJ0X2VxKGJ1Zi0+c3VyZmFjZVswXS5zaXpl LCByZWYtPnN1cmZhY2VbMF0uc2l6ZSk7CiAKLQlsaW5lYXJfYnVmID0gYWxsb2NfYWxpZ25lZChi dWYtPmJvLT5zaXplKTsKLQlsaW5lYXJfcmVmID0gYWxsb2NfYWxpZ25lZChyZWYtPmJvLT5zaXpl KTsKLQlpZ3RfYnVmX3RvX2xpbmVhcihkYXRhLT5ibWdyLCBidWYsIGxpbmVhcl9idWYpOwotCWln dF9idWZfdG9fbGluZWFyKGRhdGEtPmJtZ3IsIHJlZiwgbGluZWFyX3JlZik7CisJbGluZWFyX2J1 ZiA9IGFsbG9jX2FsaWduZWQoYnVmLT5zdXJmYWNlWzBdLnNpemUpOworCWxpbmVhcl9yZWYgPSBh bGxvY19hbGlnbmVkKHJlZi0+c3VyZmFjZVswXS5zaXplKTsKKwlpbnRlbF9idWZfdG9fbGluZWFy KGRhdGEtPmJvcHMsIGJ1ZiwgbGluZWFyX2J1Zik7CisJaW50ZWxfYnVmX3RvX2xpbmVhcihkYXRh LT5ib3BzLCByZWYsIGxpbmVhcl9yZWYpOwogCiAJZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7 IHkrKykgewogCQlmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKQEAgLTM0NiwxMSAr MjkzLDExIEBAIHNjcmF0Y2hfYnVmX2NoZWNrX2FsbChkYXRhX3QgKmRhdGEsCiB9CiAKIHN0YXRp YyB2b2lkIHNjcmF0Y2hfYnVmX2Njc19jaGVjayhkYXRhX3QgKmRhdGEsCi0JCQkJICBzdHJ1Y3Qg aWd0X2J1ZiAqYnVmKQorCQkJCSAgc3RydWN0IGludGVsX2J1ZiAqYnVmKQogewogCWludCBnZW4g PSBpbnRlbF9nZW4oZGF0YS0+ZGV2aWQpOwotCWludCBjY3Nfc2l6ZSA9IGlndF9idWZfaW50ZWxf Y2NzX3dpZHRoKGdlbiwgYnVmKSAqCi0JCWlndF9idWZfaW50ZWxfY2NzX2hlaWdodChnZW4sIGJ1 Zik7CisJaW50IGNjc19zaXplID0gaW50ZWxfYnVmX2Njc193aWR0aChnZW4sIGJ1ZikgKgorCQlp bnRlbF9idWZfY2NzX2hlaWdodChnZW4sIGJ1Zik7CiAJdWludDhfdCAqbGluZWFyOwogCWludCBp OwogCkBAIC0zNjgsMjYgKzMxNSwyMiBAQCBzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9jY3NfY2hl Y2soZGF0YV90ICpkYXRhLAogfQogCiBzdGF0aWMgdm9pZAotZHVtcF9pZ3RfYnVmX3RvX2ZpbGUo ZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLCBjb25zdCBjaGFyICpmaWxlbmFtZSkK K2R1bXBfaW50ZWxfYnVmX3RvX2ZpbGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaW50ZWxfYnVmICpi dWYsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogewogCUZJTEUgKm91dDsKLQl2b2lkICpsaW5lYXI7 CisJdm9pZCAqcHRyOworCXVpbnQzMl90IHNpemUgPSBpbnRlbF9idWZfYm9fc2l6ZShidWYpOwog Ci0JZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCisJZ2VtX3Nl dF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmhhbmRsZSwKIAkJICAgICAgIEk5MTVfR0VNX0RP TUFJTl9DUFUsIDApOworCXB0ciA9IGdlbV9tbWFwX19jcHVfY29oZXJlbnQoZGF0YS0+ZHJtX2Zk LCBidWYtPmhhbmRsZSwgMCwgc2l6ZSwgUFJPVF9SRUFEKTsKIAotCWxpbmVhciA9IF9fZ2VtX21t YXBfb2Zmc2V0X19jcHUoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCi0JCQkJCWJ1 Zi0+Ym8tPnNpemUsIFBST1RfUkVBRCk7Ci0JaWYgKCFsaW5lYXIpCi0JCWxpbmVhciA9IGdlbV9t bWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCi0JCQkJICAgICAgIGJ1 Zi0+Ym8tPnNpemUsIFBST1RfUkVBRCk7CiAJb3V0ID0gZm9wZW4oZmlsZW5hbWUsICJ3YiIpOwog CWlndF9hc3NlcnQob3V0KTsKLQlmd3JpdGUobGluZWFyLCBidWYtPmJvLT5zaXplLCAxLCBvdXQp OworCWZ3cml0ZShwdHIsIHNpemUsIDEsIG91dCk7CiAJZmNsb3NlKG91dCk7CiAKLQltdW5tYXAo bGluZWFyLCBidWYtPmJvLT5zaXplKTsKLQorCW11bm1hcChwdHIsIHNpemUpOwogfQogCiAjZGVm aW5lIFNPVVJDRV9NSVhFRF9USUxFRAkxCkBAIC0zOTgsOSArMzQxLDkgQEAgc3RhdGljIHZvaWQg dGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHNyY190aWxpbmcsIHVpbnQzMl90IGRzdF90aWxp bmcsCiAJCSBlbnVtIGk5MTVfY29tcHJlc3Npb24gZHN0X2NvbXByZXNzaW9uLAogCQkgaW50IGZs YWdzKQogewotCXN0cnVjdCBpZ3RfYnVmIHJlZiwgc3JjX3RpbGVkLCBzcmNfY2NzLCBkc3RfY2Nz LCBkc3Q7CisJc3RydWN0IGludGVsX2J1ZiByZWYsIHNyY190aWxlZCwgc3JjX2NjcywgZHN0X2Nj cywgZHN0OwogCXN0cnVjdCB7Ci0JCXN0cnVjdCBpZ3RfYnVmIGJ1ZjsKKwkJc3RydWN0IGludGVs X2J1ZiBidWY7CiAJCWNvbnN0IGNoYXIgKmZpbGVuYW1lOwogCQl1aW50MzJfdCB0aWxpbmc7CiAJ CWludCB4LCB5OwpAQCAtNDI2LDcgKzM2OSw2IEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpk YXRhLCB1aW50MzJfdCBzcmNfdGlsaW5nLCB1aW50MzJfdCBkc3RfdGlsaW5nLAogCQkJLnggPSAx LCAueSA9IDEsCiAJCX0sCiAJfTsKLQlpbnQgb3B0X2R1bXBfYXViID0gaWd0X2F1Yl9kdW1wX2Vu YWJsZWQoKTsKIAlpbnQgbnVtX3NyYyA9IEFSUkFZX1NJWkUoc3JjKTsKIAljb25zdCBib29sIHNy Y19taXhlZF90aWxlZCA9IGZsYWdzICYgU09VUkNFX01JWEVEX1RJTEVEOwogCWNvbnN0IGJvb2wg c3JjX2NvbXByZXNzZWQgPSBzcmNfY29tcHJlc3Npb24gIT0gSTkxNV9DT01QUkVTU0lPTl9OT05F OwpAQCAtNDk1LDE4ICs0MzcsMTMgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVp bnQzMl90IHNyY190aWxpbmcsIHVpbnQzMl90IGRzdF90aWxpbmcsCiAKIAlpZiAob3B0X2R1bXBf cG5nKSB7CiAJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3NyYzsgaSsrKQotCQkJc2NyYXRjaF9i dWZfd3JpdGVfdG9fcG5nKGRhdGEsICZzcmNbaV0uYnVmLCBzcmNbaV0uZmlsZW5hbWUpOworCQkJ aW50ZWxfYnVmX3dyaXRlX3RvX3BuZygmc3JjW2ldLmJ1ZiwKKwkJCQkJICAgICAgIG1ha2VfZmls ZW5hbWUoc3JjW2ldLmZpbGVuYW1lKSk7CiAJCWlmICghc3JjX21peGVkX3RpbGVkKQotCQkJc2Ny YXRjaF9idWZfd3JpdGVfdG9fcG5nKGRhdGEsICZzcmNfdGlsZWQsCi0JCQkJCQkgInNvdXJjZS10 aWxlZC5wbmciKTsKLQkJc2NyYXRjaF9idWZfd3JpdGVfdG9fcG5nKGRhdGEsICZkc3QsICJkZXN0 aW5hdGlvbi5wbmciKTsKLQkJc2NyYXRjaF9idWZfd3JpdGVfdG9fcG5nKGRhdGEsICZyZWYsICJy ZWZlcmVuY2UucG5nIik7Ci0JfQotCi0JaWYgKG9wdF9kdW1wX2F1YikgewotCQlkcm1faW50ZWxf YnVmbWdyX2dlbV9zZXRfYXViX2ZpbGVuYW1lKGRhdGEtPmJ1Zm1nciwKLQkJCQkJCSAgICAgICJy ZW5kZXJjb3B5LmF1YiIpOwotCQlkcm1faW50ZWxfYnVmbWdyX2dlbV9zZXRfYXViX2R1bXAoZGF0 YS0+YnVmbWdyLCB0cnVlKTsKKwkJCWludGVsX2J1Zl93cml0ZV90b19wbmcoJnNyY190aWxlZCwK KwkJCQkJICAgICAgIG1ha2VfZmlsZW5hbWUoInNvdXJjZS10aWxlZC5wbmciKSk7CisJCWludGVs X2J1Zl93cml0ZV90b19wbmcoJmRzdCwgbWFrZV9maWxlbmFtZSgiZGVzdGluYXRpb24ucG5nIikp OworCQlpbnRlbF9idWZfd3JpdGVfdG9fcG5nKCZyZWYsIG1ha2VfZmlsZW5hbWUoInJlZmVyZW5j ZS5wbmciKSk7CiAJfQogCiAJLyogVGhpcyB3aWxsIGNvcHkgdGhlIHNyYyB0byB0aGUgbWlkIHBv aW50IG9mIHRoZSBkc3QgYnVmZmVyLiBQcmVzdW1hYmx5CkBAIC01MTksNzUgKzQ1Niw3NiBAQCBz dGF0aWMgdm9pZCB0ZXN0KGRhdGFfdCAqZGF0YSwgdWludDMyX3Qgc3JjX3RpbGluZywgdWludDMy X3QgZHN0X3RpbGluZywKIAkgKi8KIAlpZiAoc3JjX21peGVkX3RpbGVkKSB7CiAJCWlmIChkc3Rf Y29tcHJlc3NlZCkKLQkJCWRhdGEtPnJlbmRlcl9jb3B5KGRhdGEtPmJhdGNoLCBOVUxMLAorCQkJ ZGF0YS0+cmVuZGVyX2NvcHkoZGF0YS0+aWJiLCAwLAogCQkJCQkgICZkc3QsIDAsIDAsIFdJRFRI LCBIRUlHSFQsCiAJCQkJCSAgJmRzdF9jY3MsIDAsIDApOwogCi0JCWZvciAoaW50IGkgPSAwOyBp IDwgbnVtX3NyYzsgaSsrKQotCQkJZGF0YS0+cmVuZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5VTEws CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3NyYzsgaSsrKSB7CisJCQlkYXRhLT5yZW5kZXJf Y29weShkYXRhLT5pYmIsIDAsCiAJCQkJCSAgJnNyY1tpXS5idWYsCiAJCQkJCSAgV0lEVEgvNCwg SEVJR0hULzQsIFdJRFRILzItMiwgSEVJR0hULzItMiwKIAkJCQkJICBkc3RfY29tcHJlc3NlZCA/ ICZkc3RfY2NzIDogJmRzdCwKIAkJCQkJICBzcmNbaV0ueCwgc3JjW2ldLnkpOworCQl9CiAKIAkJ aWYgKGRzdF9jb21wcmVzc2VkKQotCQkJZGF0YS0+cmVuZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5V TEwsCisJCQlkYXRhLT5yZW5kZXJfY29weShkYXRhLT5pYmIsIDAsCiAJCQkJCSAgJmRzdF9jY3Ms IDAsIDAsIFdJRFRILCBIRUlHSFQsCiAJCQkJCSAgJmRzdCwgMCwgMCk7CiAKIAl9IGVsc2Ugewog CQlpZiAoc3JjX2NvbXByZXNzaW9uID09IEk5MTVfQ09NUFJFU1NJT05fUkVOREVSKSB7Ci0JCQlk YXRhLT5yZW5kZXJfY29weShkYXRhLT5iYXRjaCwgTlVMTCwKKwkJCWRhdGEtPnJlbmRlcl9jb3B5 KGRhdGEtPmliYiwgMCwKIAkJCQkJICAmc3JjX3RpbGVkLCAwLCAwLCBXSURUSCwgSEVJR0hULAog CQkJCQkgICZzcmNfY2NzLAogCQkJCQkgIDAsIDApOwogCQkJaWYgKGR1bXBfY29tcHJlc3NlZF9z cmNfYnVmKSB7Ci0JCQkJZHVtcF9pZ3RfYnVmX3RvX2ZpbGUoZGF0YSwgJnNyY190aWxlZCwKLQkJ CQkJCSAgICAgInJlbmRlci1zcmNfdGlsZWQuYmluIik7Ci0JCQkJZHVtcF9pZ3RfYnVmX3RvX2Zp bGUoZGF0YSwgJnNyY19jY3MsCi0JCQkJCQkgICAgICJyZW5kZXItc3JjX2Njcy5iaW4iKTsKKwkJ CQlkdW1wX2ludGVsX2J1Zl90b19maWxlKGRhdGEsICZzcmNfdGlsZWQsCisJCQkJCQkgICAgICAg InJlbmRlci1zcmNfdGlsZWQuYmluIik7CisJCQkJZHVtcF9pbnRlbF9idWZfdG9fZmlsZShkYXRh LCAmc3JjX2NjcywKKwkJCQkJCSAgICAgICAicmVuZGVyLXNyY19jY3MuYmluIik7CiAJCQl9CiAJ CX0gZWxzZSBpZiAoc3JjX2NvbXByZXNzaW9uID09IEk5MTVfQ09NUFJFU1NJT05fTUVESUEpIHsK LQkJCWRhdGEtPnZlYm94X2NvcHkoZGF0YS0+YmF0Y2gsCisJCQlkYXRhLT52ZWJveF9jb3B5KGRh dGEtPmliYiwKIAkJCQkJICZzcmNfdGlsZWQsIFdJRFRILCBIRUlHSFQsCiAJCQkJCSAmc3JjX2Nj cyk7CiAJCQlpZiAoZHVtcF9jb21wcmVzc2VkX3NyY19idWYpIHsKLQkJCQlkdW1wX2lndF9idWZf dG9fZmlsZShkYXRhLCAmc3JjX3RpbGVkLAotCQkJCQkJICAgICAidmVib3gtc3JjX3RpbGVkLmJp biIpOwotCQkJCWR1bXBfaWd0X2J1Zl90b19maWxlKGRhdGEsICZzcmNfY2NzLAotCQkJCQkJICAg ICAidmVib3gtc3JjX2Njcy5iaW4iKTsKKwkJCQlkdW1wX2ludGVsX2J1Zl90b19maWxlKGRhdGEs ICZzcmNfdGlsZWQsCisJCQkJCQkgICAgICAgInZlYm94LXNyY190aWxlZC5iaW4iKTsKKwkJCQlk dW1wX2ludGVsX2J1Zl90b19maWxlKGRhdGEsICZzcmNfY2NzLAorCQkJCQkJICAgICAgICJ2ZWJv eC1zcmNfY2NzLmJpbiIpOwogCQkJfQogCQl9CiAKIAkJaWYgKGRzdF9jb21wcmVzc2lvbiA9PSBJ OTE1X0NPTVBSRVNTSU9OX1JFTkRFUikgewotCQkJZGF0YS0+cmVuZGVyX2NvcHkoZGF0YS0+YmF0 Y2gsIE5VTEwsCisJCQlkYXRhLT5yZW5kZXJfY29weShkYXRhLT5pYmIsIDAsCiAJCQkJCSAgc3Jj X2NvbXByZXNzZWQgPyAmc3JjX2NjcyA6ICZzcmNfdGlsZWQsCiAJCQkJCSAgMCwgMCwgV0lEVEgs IEhFSUdIVCwKIAkJCQkJICAmZHN0X2NjcywKIAkJCQkJICAwLCAwKTsKIAotCQkJZGF0YS0+cmVu ZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5VTEwsCisJCQlkYXRhLT5yZW5kZXJfY29weShkYXRhLT5p YmIsIDAsCiAJCQkJCSAgJmRzdF9jY3MsCiAJCQkJCSAgMCwgMCwgV0lEVEgsIEhFSUdIVCwKIAkJ CQkJICAmZHN0LAogCQkJCQkgIDAsIDApOwogCQl9IGVsc2UgaWYgKGRzdF9jb21wcmVzc2lvbiA9 PSBJOTE1X0NPTVBSRVNTSU9OX01FRElBKSB7Ci0JCQlkYXRhLT52ZWJveF9jb3B5KGRhdGEtPmJh dGNoLAorCQkJZGF0YS0+dmVib3hfY29weShkYXRhLT5pYmIsCiAJCQkJCSBzcmNfY29tcHJlc3Nl ZCA/ICZzcmNfY2NzIDogJnNyY190aWxlZCwKIAkJCQkJIFdJRFRILCBIRUlHSFQsCiAJCQkJCSAm ZHN0X2Njcyk7CiAKLQkJCWRhdGEtPnZlYm94X2NvcHkoZGF0YS0+YmF0Y2gsCisJCQlkYXRhLT52 ZWJveF9jb3B5KGRhdGEtPmliYiwKIAkJCQkJICZkc3RfY2NzLAogCQkJCQkgV0lEVEgsIEhFSUdI VCwKIAkJCQkJICZkc3QpOwogCQl9IGVsc2UgaWYgKGZvcmNlX3ZlYm94X2RzdF9jb3B5KSB7Ci0J CQlkYXRhLT52ZWJveF9jb3B5KGRhdGEtPmJhdGNoLAorCQkJZGF0YS0+dmVib3hfY29weShkYXRh LT5pYmIsCiAJCQkJCSBzcmNfY29tcHJlc3NlZCA/ICZzcmNfY2NzIDogJnNyY190aWxlZCwKIAkJ CQkJIFdJRFRILCBIRUlHSFQsCiAJCQkJCSAmZHN0KTsKIAkJfSBlbHNlIHsKLQkJCWRhdGEtPnJl bmRlcl9jb3B5KGRhdGEtPmJhdGNoLCBOVUxMLAorCQkJZGF0YS0+cmVuZGVyX2NvcHkoZGF0YS0+ aWJiLCAwLAogCQkJCQkgIHNyY19jb21wcmVzc2VkID8gJnNyY19jY3MgOiAmc3JjX3RpbGVkLAog CQkJCQkgIDAsIDAsIFdJRFRILCBIRUlHSFQsCiAJCQkJCSAgJmRzdCwKQEAgLTU5NiwyOSArNTM0 LDIyIEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCBzcmNfdGlsaW5n LCB1aW50MzJfdCBkc3RfdGlsaW5nLAogCX0KIAogCWlmIChvcHRfZHVtcF9wbmcpewotCQlzY3Jh dGNoX2J1Zl93cml0ZV90b19wbmcoZGF0YSwgJmRzdCwgInJlc3VsdC5wbmciKTsKKwkJaW50ZWxf YnVmX3dyaXRlX3RvX3BuZygmZHN0LCBtYWtlX2ZpbGVuYW1lKCJyZXN1bHQucG5nIikpOwogCQlp ZiAoc3JjX2NvbXByZXNzZWQpIHsKLQkJCXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3BuZyhkYXRhLCAm c3JjX2NjcywKLQkJCQkJCSAiY29tcHJlc3NlZC1zcmMucG5nIik7Ci0JCQlzY3JhdGNoX2J1Zl9j Y3Nfd3JpdGVfdG9fcG5nKGRhdGEsICZzcmNfY2NzLAotCQkJCQkJICAgICAiY29tcHJlc3NlZC1z cmMtY2NzLnBuZyIpOworCQkJaW50ZWxfYnVmX3dyaXRlX3RvX3BuZygmc3JjX2NjcywKKwkJCQkJ ICAgICAgIG1ha2VfZmlsZW5hbWUoImNvbXByZXNzZWQtc3JjLnBuZyIpKTsKKwkJCWludGVsX2J1 Zl93cml0ZV9hdXhfdG9fcG5nKCZzcmNfY2NzLAorCQkJCQkJICAgImNvbXByZXNzZWQtc3JjLWNj cy5wbmciKTsKIAkJfQogCQlpZiAoZHN0X2NvbXByZXNzZWQpIHsKLQkJCXNjcmF0Y2hfYnVmX3dy aXRlX3RvX3BuZyhkYXRhLCAmZHN0X2NjcywKLQkJCQkJCSAiY29tcHJlc3NlZC1kc3QucG5nIik7 Ci0JCQlzY3JhdGNoX2J1Zl9jY3Nfd3JpdGVfdG9fcG5nKGRhdGEsICZkc3RfY2NzLAotCQkJCQkJ ICAgICAiY29tcHJlc3NlZC1kc3QtY2NzLnBuZyIpOworCQkJaW50ZWxfYnVmX3dyaXRlX3RvX3Bu ZygmZHN0X2NjcywKKwkJCQkJICAgICAgIG1ha2VfZmlsZW5hbWUoImNvbXByZXNzZWQtZHN0LnBu ZyIpKTsKKwkJCWludGVsX2J1Zl93cml0ZV9hdXhfdG9fcG5nKCZkc3RfY2NzLAorCQkJCQkJICAg ImNvbXByZXNzZWQtZHN0LWNjcy5wbmciKTsKIAkJfQogCX0KIAotCWlmIChvcHRfZHVtcF9hdWIp IHsKLQkJZHJtX2ludGVsX2dlbV9ib19hdWJfZHVtcF9ibXAoZHN0LmJvLAotCQkJCQkgICAgICAw LCAwLCBpZ3RfYnVmX3dpZHRoKCZkc3QpLAotCQkJCQkgICAgICBpZ3RfYnVmX2hlaWdodCgmZHN0 KSwKLQkJCQkJICAgICAgQVVCX0RVTVBfQk1QX0ZPUk1BVF9BUkdCXzg4ODgsCi0JCQkJCSAgICAg IGRzdC5zdXJmYWNlWzBdLnN0cmlkZSwgMCk7Ci0JCWRybV9pbnRlbF9idWZtZ3JfZ2VtX3NldF9h dWJfZHVtcChkYXRhLT5idWZtZ3IsIGZhbHNlKTsKLQl9IGVsc2UgaWYgKGNoZWNrX2FsbF9waXhl bHMpIHsKKwlpZiAoY2hlY2tfYWxsX3BpeGVscykgewogCQlzY3JhdGNoX2J1Zl9jaGVja19hbGwo ZGF0YSwgJmRzdCwgJnJlZik7CiAJfSBlbHNlIHsKIAkJc2NyYXRjaF9idWZfY2hlY2soZGF0YSwg JmRzdCwgJnJlZiwgMTAsIDEwKTsKQEAgLTYzMSw2ICs1NjIsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0 KGRhdGFfdCAqZGF0YSwgdWludDMyX3Qgc3JjX3RpbGluZywgdWludDMyX3QgZHN0X3RpbGluZywK IAkJc2NyYXRjaF9idWZfY2NzX2NoZWNrKGRhdGEsICZkc3RfY2NzKTsKIAogCXNjcmF0Y2hfYnVm X2ZpbmkoJnJlZik7CisJaWYgKCFzcmNfbWl4ZWRfdGlsZWQpCisJCXNjcmF0Y2hfYnVmX2Zpbmko JnNyY190aWxlZCk7CiAJaWYgKGRzdF9jb21wcmVzc2VkKQogCQlzY3JhdGNoX2J1Zl9maW5pKCZk c3RfY2NzKTsKIAlpZiAoc3JjX2NvbXByZXNzZWQpCkBAIC02MzgsNiArNTcxLDkgQEAgc3RhdGlj IHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHNyY190aWxpbmcsIHVpbnQzMl90IGRz dF90aWxpbmcsCiAJc2NyYXRjaF9idWZfZmluaSgmZHN0KTsKIAlmb3IgKGludCBpID0gMDsgaSA8 IG51bV9zcmM7IGkrKykKIAkJc2NyYXRjaF9idWZfZmluaSgmc3JjW2ldLmJ1Zik7CisKKwkvKiBo YW5kbGVzIGdvbmUsIG5lZWQgdG8gY2xlYW4gdGhlIG9iamVjdHMgY2FjaGUgd2l0aGluIGludGVs X2JiICovCisJaW50ZWxfYmJfcmVzZXQoZGF0YS0+aWJiLCB0cnVlKTsKIH0KIAogc3RhdGljIGlu dCBvcHRfaGFuZGxlcihpbnQgb3B0LCBpbnQgb3B0X2luZGV4LCB2b2lkICpkYXRhKQpAQCAtNjQ5 LDYgKzU4NSw5IEBAIHN0YXRpYyBpbnQgb3B0X2hhbmRsZXIoaW50IG9wdCwgaW50IG9wdF9pbmRl eCwgdm9pZCAqZGF0YSkKIAljYXNlICdhJzoKIAkJY2hlY2tfYWxsX3BpeGVscyA9IHRydWU7CiAJ CWJyZWFrOworCWNhc2UgJ2MnOgorCQlkdW1wX2NvbXByZXNzZWRfc3JjX2J1ZiA9IHRydWU7CisJ CWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiBJR1RfT1BUX0hBTkRMRVJfRVJST1I7CiAJfQpA QCAtNjU5LDYgKzU5OCw3IEBAIHN0YXRpYyBpbnQgb3B0X2hhbmRsZXIoaW50IG9wdCwgaW50IG9w dF9pbmRleCwgdm9pZCAqZGF0YSkKIGNvbnN0IGNoYXIgKmhlbHBfc3RyID0KIAkiICAtZFx0RHVt cCBQTkdcbiIKIAkiICAtYVx0Q2hlY2sgYWxsIHBpeGVsc1xuIgorCSIgIC1jXHREdW1wIGNvbXBy ZXNzZWQgc3JjIHN1cmZhY2VcbiIKIAk7CiAKIHN0YXRpYyB2b2lkIGJ1Zl9tb2RlX3RvX3N0cih1 aW50MzJfdCB0aWxpbmcsIGJvb2wgbWl4ZWRfdGlsZWQsCkBAIC03MDUsNyArNjQ1LDcgQEAgc3Rh dGljIHZvaWQgYnVmX21vZGVfdG9fc3RyKHVpbnQzMl90IHRpbGluZywgYm9vbCBtaXhlZF90aWxl ZCwKIAkJIHRpbGluZ19zdHIsIGNvbXByZXNzaW9uX3N0clswXSA/ICItIiA6ICIiLCBjb21wcmVz c2lvbl9zdHIpOwogfQogCi1pZ3RfbWFpbl9hcmdzKCJkYSIsIE5VTEwsIGhlbHBfc3RyLCBvcHRf aGFuZGxlciwgTlVMTCkKK2lndF9tYWluX2FyZ3MoImRhYyIsIE5VTEwsIGhlbHBfc3RyLCBvcHRf aGFuZGxlciwgTlVMTCkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3RfZGVzYyB7CiAJCWlu dCBzcmNfdGlsaW5nOwpAQCAtODQ5LDIwICs3ODksMTQgQEAgaWd0X21haW5fYXJncygiZGEiLCBO VUxMLCBoZWxwX3N0ciwgb3B0X2hhbmRsZXIsIE5VTEwpCiAJCWRhdGEuZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKIAkJaWd0X3JlcXVpcmVfZ2VtKGRhdGEuZHJtX2Zk KTsKIAotCQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS5kcm1f ZmQsIDQwOTYpOwotCQlpZ3RfYXNzZXJ0KGRhdGEuYnVmbWdyKTsKLQogCQlkYXRhLnJlbmRlcl9j b3B5ID0gaWd0X2dldF9yZW5kZXJfY29weWZ1bmMoZGF0YS5kZXZpZCk7CiAJCWlndF9yZXF1aXJl X2YoZGF0YS5yZW5kZXJfY29weSwKIAkJCSAgICAgICJubyByZW5kZXItY29weSBmdW5jdGlvblxu Iik7CiAKIAkJZGF0YS52ZWJveF9jb3B5ID0gaWd0X2dldF92ZWJveF9jb3B5ZnVuYyhkYXRhLmRl dmlkKTsKIAotCQlkYXRhLmJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoZGF0YS5idWZt Z3IsIGRhdGEuZGV2aWQpOwotCQlpZ3RfYXNzZXJ0KGRhdGEuYmF0Y2gpOwotCi0JCWRhdGEuYm1n ciA9IHJlbmRlcmNvcHlfYnVmbWdyX2NyZWF0ZShkYXRhLmRybV9mZCwgZGF0YS5idWZtZ3IpOwot CQlpZ3RfYXNzZXJ0KGRhdGEuYm1ncik7CisJCWRhdGEuYm9wcyA9IGJ1Zl9vcHNfY3JlYXRlKGRh dGEuZHJtX2ZkKTsKKwkJZGF0YS5pYmIgPSBpbnRlbF9iYl9jcmVhdGUoZGF0YS5kcm1fZmQsIDQw OTYpOwogCiAJCWlndF9mb3JrX2hhbmdfZGV0ZWN0b3IoZGF0YS5kcm1fZmQpOwogCX0KQEAgLTkx NSw4ICs4NDksNyBAQCBpZ3RfbWFpbl9hcmdzKCJkYSIsIE5VTEwsIGhlbHBfc3RyLCBvcHRfaGFu ZGxlciwgTlVMTCkKIAogCWlndF9maXh0dXJlIHsKIAkJaWd0X3N0b3BfaGFuZ19kZXRlY3Rvcigp OwotCQlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGRhdGEuYmF0Y2gpOwotCQlkcm1faW50ZWxfYnVm bWdyX2Rlc3Ryb3koZGF0YS5idWZtZ3IpOwotCQlyZW5kZXJjb3B5X2J1Zm1ncl9kZXN0cm95KGRh dGEuYm1ncik7CisJCWludGVsX2JiX2Rlc3Ryb3koZGF0YS5pYmIpOworCQlidWZfb3BzX2Rlc3Ry b3koZGF0YS5ib3BzKTsKIAl9CiB9Ci0tIAoyLjI2LjAKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=