From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 14A7A895C4 for ; Tue, 4 Jun 2019 13:00:01 +0000 (UTC) From: Arkadiusz Hiler Date: Tue, 4 Jun 2019 15:59:52 +0300 Message-Id: <20190604125955.28806-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/4] tests/gem_exec_balancer: Manually calculate VLA struct sizes 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 List-ID: VkxBIGluIHN0cnVjdHMgKHN0cnVjdCB7IGludCBhcnJheVtjb3VudF0gfSkgaXMgYSBHQ0MgZXh0 ZW5zaW9uLCBzbwpsZXQncyBhdm9pZCB1c2luZyBpdC4KCkNjOiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KQ2M6IFNpbW9uIFNlciA8c2ltb24uc2VyQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29t PgotLS0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYyB8IDIzMCArKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwg MTAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5j ZXIuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYwppbmRleCAzM2IxN2ZjNS4uYzFj MGEyZjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYmFsYW5jZXIuYworKysgYi90 ZXN0cy9pOTE1L2dlbV9leGVjX2JhbGFuY2VyLmMKQEAgLTMyLDYgKzMyLDI2IEBAIElHVF9URVNU X0RFU0NSSVBUSU9OKCJFeGVyY2lzZSBpbi1rZXJuZWwgbG9hZC1iYWxhbmNpbmciKTsKIAogI2Rl ZmluZSBJTlNUQU5DRV9DT1VOVCAoMSA8PCBJOTE1X1BNVV9TQU1QTEVfSU5TVEFOQ0VfQklUUykK IAorc3RhdGljIHNpemVfdCBzaXplb2ZfbG9hZF9iYWxhbmNlKGludCBjb3VudCkKK3sKKwlyZXR1 cm4gb2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5jZSwKKwkJ CWVuZ2luZXNbY291bnRdKTsKK30KKworc3RhdGljIHNpemVfdCBzaXplb2ZfcGFyYW1fZW5naW5l cyhpbnQgY291bnQpCit7CisJcmV0dXJuIG9mZnNldG9mKHN0cnVjdCBpOTE1X2NvbnRleHRfcGFy YW1fZW5naW5lcywKKwkJCWVuZ2luZXNbY291bnRdKTsKK30KKworc3RhdGljIHNpemVfdCBzaXpl b2ZfZW5naW5lc19ib25kKGludCBjb3VudCkKK3sKKwlyZXR1cm4gb2Zmc2V0b2Yoc3RydWN0IGk5 MTVfY29udGV4dF9lbmdpbmVzX2JvbmQsCisJCQllbmdpbmVzW2NvdW50XSk7Cit9CisKKyNkZWZp bmUgYWxsb2NhMChzeikgKHsgc2l6ZV90IHN6X18gPSAoc3opOyBtZW1zZXQoYWxsb2NhKHN6X18p LCAwLCBzel9fKTsgfSkKKwogc3RhdGljIGJvb2wgaGFzX2NsYXNzX2luc3RhbmNlKGludCBpOTE1 LCB1aW50MTZfdCBjbGFzcywgdWludDE2X3QgaW5zdGFuY2UpCiB7CiAJaW50IGZkOwpAQCAtOTMs MTYgKzExMywxNyBAQCBzdGF0aWMgaW50IF9fc2V0X2VuZ2luZXMoaW50IGk5MTUsIHVpbnQzMl90 IGN0eCwKIAkJCSBjb25zdCBzdHJ1Y3QgaTkxNV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmNpLAog CQkJIHVuc2lnbmVkIGludCBjb3VudCkKIHsKLQlJOTE1X0RFRklORV9DT05URVhUX1BBUkFNX0VO R0lORVMoZW5naW5lcywgY291bnQpOworCXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5l cyAqZW5naW5lcyA9CisJCWFsbG9jYTAoc2l6ZW9mX3BhcmFtX2VuZ2luZXMoY291bnQpKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gcCA9IHsKIAkJLmN0eF9pZCA9IGN0eCwK IAkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsCi0JCS5zaXplID0gc2l6ZW9m KGVuZ2luZXMpLAotCQkudmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpCisJCS5zaXpl ID0gc2l6ZW9mX3BhcmFtX2VuZ2luZXMoY291bnQpLAorCQkudmFsdWUgPSB0b191c2VyX3BvaW50 ZXIoZW5naW5lcykKIAl9OwogCi0JZW5naW5lcy5leHRlbnNpb25zID0gMDsKLQltZW1jcHkoZW5n aW5lcy5lbmdpbmVzLCBjaSwgc2l6ZW9mKGVuZ2luZXMuZW5naW5lcykpOworCWVuZ2luZXMtPmV4 dGVuc2lvbnMgPSAwOworCW1lbWNweShlbmdpbmVzLT5lbmdpbmVzLCBjaSwgc2l6ZW9mKGVuZ2lu ZXMtPmVuZ2luZXMpKTsKIAogCXJldHVybiBfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAm cCk7CiB9CkBAIC0xMTksMzAgKzE0MCwzMCBAQCBzdGF0aWMgaW50IF9fc2V0X2xvYWRfYmFsYW5j ZXIoaW50IGk5MTUsIHVpbnQzMl90IGN0eCwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgY291bnQs CiAJCQkgICAgICAgdm9pZCAqZXh0KQogewotCUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19M T0FEX0JBTEFOQ0UoYmFsYW5jZXIsIGNvdW50KTsKLQlJOTE1X0RFRklORV9DT05URVhUX1BBUkFN X0VOR0lORVMoZW5naW5lcywgMSArIGNvdW50KTsKKwlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2lu ZXNfbG9hZF9iYWxhbmNlICpiYWxhbmNlciA9CisJCWFsbG9jYTAoc2l6ZW9mX2xvYWRfYmFsYW5j ZShjb3VudCkpOworCXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqZW5naW5lcyA9 CisJCWFsbG9jYTAoc2l6ZW9mX3BhcmFtX2VuZ2luZXMoY291bnQgKyAxKSk7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHAgPSB7CiAJCS5jdHhfaWQgPSBjdHgsCiAJCS5wYXJh bSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTLAotCQkuc2l6ZSA9IHNpemVvZihlbmdpbmVz KSwKLQkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZlbmdpbmVzKQorCQkuc2l6ZSA9IHNpemVv Zl9wYXJhbV9lbmdpbmVzKGNvdW50ICsgMSksCisJCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcihl bmdpbmVzKQogCX07CiAKLQltZW1zZXQoJmJhbGFuY2VyLCAwLCBzaXplb2YoYmFsYW5jZXIpKTsK LQliYWxhbmNlci5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfTE9BRF9CQUxB TkNFOwotCWJhbGFuY2VyLmJhc2UubmV4dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIoZXh0 KTsKKwliYWxhbmNlci0+YmFzZS5uYW1lID0gSTkxNV9DT05URVhUX0VOR0lORVNfRVhUX0xPQURf QkFMQU5DRTsKKwliYWxhbmNlci0+YmFzZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRl cihleHQpOwogCiAJaWd0X2Fzc2VydChjb3VudCk7Ci0JYmFsYW5jZXIubnVtX3NpYmxpbmdzID0g Y291bnQ7Ci0JbWVtY3B5KGJhbGFuY2VyLmVuZ2luZXMsIGNpLCBjb3VudCAqIHNpemVvZigqY2kp KTsKKwliYWxhbmNlci0+bnVtX3NpYmxpbmdzID0gY291bnQ7CisJbWVtY3B5KGJhbGFuY2VyLT5l bmdpbmVzLCBjaSwgY291bnQgKiBzaXplb2YoKmNpKSk7CiAKLQltZW1zZXQoJmVuZ2luZXMsIDAs IHNpemVvZihlbmdpbmVzKSk7Ci0JZW5naW5lcy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVy KCZiYWxhbmNlcik7Ci0JZW5naW5lcy5lbmdpbmVzWzBdLmVuZ2luZV9jbGFzcyA9CisJZW5naW5l cy0+ZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcihiYWxhbmNlcik7CisJZW5naW5lcy0+ZW5n aW5lc1swXS5lbmdpbmVfY2xhc3MgPQogCQlJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEOwotCWVu Z2luZXMuZW5naW5lc1swXS5lbmdpbmVfaW5zdGFuY2UgPQorCWVuZ2luZXMtPmVuZ2luZXNbMF0u ZW5naW5lX2luc3RhbmNlID0KIAkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FOwotCW1l bWNweShlbmdpbmVzLmVuZ2luZXMgKyAxLCBjaSwgY291bnQgKiBzaXplb2YoKmNpKSk7CisJbWVt Y3B5KGVuZ2luZXMtPmVuZ2luZXMgKyAxLCBjaSwgY291bnQgKiBzaXplb2YoKmNpKSk7CiAKIAly ZXR1cm4gX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogfQpAQCAtMTg1LDExICsy MDYsMTMgQEAgc3RhdGljIHVpbnQzMl90IGJhdGNoX2NyZWF0ZShpbnQgaTkxNSkKIAogc3RhdGlj IHZvaWQgaW52YWxpZF9iYWxhbmNlcihpbnQgaTkxNSkKIHsKLQlJOTE1X0RFRklORV9DT05URVhU X0VOR0lORVNfTE9BRF9CQUxBTkNFKGJhbGFuY2VyLCA2NCk7Ci0JSTkxNV9ERUZJTkVfQ09OVEVY VF9QQVJBTV9FTkdJTkVTKGVuZ2luZXMsIDY0KTsKKwlzdHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2lu ZXNfbG9hZF9iYWxhbmNlICpiYWxhbmNlciA9CisJCWFsbG9jYTAoc2l6ZW9mX2xvYWRfYmFsYW5j ZSg2NCkpOworCXN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqZW5naW5lcyA9CisJ CWFsbG9jYTAoc2l6ZW9mX3BhcmFtX2VuZ2luZXMoNjQpKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NvbnRleHRfcGFyYW0gcCA9IHsKIAkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lO RVMsCi0JCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigmZW5naW5lcykKKwkJLnZhbHVlID0gdG9f dXNlcl9wb2ludGVyKGVuZ2luZXMpCiAJfTsKIAl1aW50MzJfdCBoYW5kbGU7CiAJdm9pZCAqcHRy OwpAQCAtMjEyLDkxICsyMzUsODkgQEAgc3RhdGljIHZvaWQgaW52YWxpZF9iYWxhbmNlcihpbnQg aTkxNSkKIAogCQlwLmN0eF9pZCA9IGdlbV9jb250ZXh0X2NyZWF0ZShpOTE1KTsKIAkJcC5zaXpl ID0gKHNpemVvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMpICsKLQkJCSAgKGNv dW50ICsgMSkgKiBzaXplb2YoKmVuZ2luZXMuZW5naW5lcykpOworCQkJICAoY291bnQgKyAxKSAq IHNpemVvZigqZW5naW5lcy0+ZW5naW5lcykpOwogCi0JCW1lbXNldCgmZW5naW5lcywgMCwgc2l6 ZW9mKGVuZ2luZXMpKTsKLQkJZW5naW5lcy5lbmdpbmVzWzBdLmVuZ2luZV9jbGFzcyA9IEk5MTVf RU5HSU5FX0NMQVNTX0lOVkFMSUQ7Ci0JCWVuZ2luZXMuZW5naW5lc1swXS5lbmdpbmVfaW5zdGFu Y2UgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7Ci0JCW1lbWNweShlbmdpbmVzLmVu Z2luZXMgKyAxLCBjaSwgY291bnQgKiBzaXplb2YoKmNpKSk7CisJCWVuZ2luZXMtPmVuZ2luZXNb MF0uZW5naW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKKwkJZW5naW5lcy0+ ZW5naW5lc1swXS5lbmdpbmVfaW5zdGFuY2UgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05P TkU7CisJCW1lbWNweShlbmdpbmVzLT5lbmdpbmVzICsgMSwgY2ksIGNvdW50ICogc2l6ZW9mKCpj aSkpOwogCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogCi0JCWVuZ2luZXMuZXh0 ZW5zaW9ucyA9IC0xdWxsOworCQllbmdpbmVzLT5leHRlbnNpb25zID0gLTF1bGw7CiAJCWlndF9h c3NlcnRfZXEoX19nZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApLCAtRUZBVUxUKTsKIAot CQllbmdpbmVzLmV4dGVuc2lvbnMgPSAxdWxsOworCQllbmdpbmVzLT5leHRlbnNpb25zID0gMXVs bDsKIAkJaWd0X2Fzc2VydF9lcShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCksIC1F RkFVTFQpOwogCi0JCW1lbXNldCgmYmFsYW5jZXIsIDAsIHNpemVvZihiYWxhbmNlcikpOwotCQli YWxhbmNlci5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfTE9BRF9CQUxBTkNF OwotCQliYWxhbmNlci5udW1fc2libGluZ3MgPSBjb3VudDsKLQkJbWVtY3B5KGJhbGFuY2VyLmVu Z2luZXMsIGNpLCBjb3VudCAqIHNpemVvZigqY2kpKTsKKwkJYmFsYW5jZXItPmJhc2UubmFtZSA9 IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9MT0FEX0JBTEFOQ0U7CisJCWJhbGFuY2VyLT5udW1f c2libGluZ3MgPSBjb3VudDsKKwkJbWVtY3B5KGJhbGFuY2VyLT5lbmdpbmVzLCBjaSwgY291bnQg KiBzaXplb2YoKmNpKSk7CiAKLQkJZW5naW5lcy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVy KCZiYWxhbmNlcik7CisJCWVuZ2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIoYmFs YW5jZXIpOwogCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogCi0JCWJhbGFuY2Vy LmVuZ2luZV9pbmRleCA9IDE7CisJCWJhbGFuY2VyLT5lbmdpbmVfaW5kZXggPSAxOwogCQlpZ3Rf YXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVFWElTVCk7CiAK LQkJYmFsYW5jZXIuZW5naW5lX2luZGV4ID0gY291bnQ7CisJCWJhbGFuY2VyLT5lbmdpbmVfaW5k ZXggPSBjb3VudDsKIAkJaWd0X2Fzc2VydF9lcShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1 LCAmcCksIC1FRVhJU1QpOwogCi0JCWJhbGFuY2VyLmVuZ2luZV9pbmRleCA9IGNvdW50ICsgMTsK KwkJYmFsYW5jZXItPmVuZ2luZV9pbmRleCA9IGNvdW50ICsgMTsKIAkJaWd0X2Fzc2VydF9lcShf X2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCksIC1FSU5WQUwpOwogCi0JCWJhbGFuY2Vy LmVuZ2luZV9pbmRleCA9IDA7CisJCWJhbGFuY2VyLT5lbmdpbmVfaW5kZXggPSAwOwogCQlnZW1f Y29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogCi0JCWJhbGFuY2VyLmJhc2UubmV4dF9leHRl bnNpb24gPSB0b191c2VyX3BvaW50ZXIoJmJhbGFuY2VyKTsKKwkJYmFsYW5jZXItPmJhc2UubmV4 dF9leHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIoYmFsYW5jZXIpOwogCQlpZ3RfYXNzZXJ0X2Vx KF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVFWElTVCk7CiAKLQkJYmFsYW5j ZXIuYmFzZS5uZXh0X2V4dGVuc2lvbiA9IC0xdWxsOworCQliYWxhbmNlci0+YmFzZS5uZXh0X2V4 dGVuc2lvbiA9IC0xdWxsOwogCQlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFt KGk5MTUsICZwKSwgLUVGQVVMVCk7CiAKIAkJaGFuZGxlID0gZ2VtX2NyZWF0ZShpOTE1LCA0MDk2 ICogMyk7CiAJCXB0ciA9IGdlbV9tbWFwX19ndHQoaTkxNSwgaGFuZGxlLCA0MDk2ICogMywgUFJP VF9XUklURSk7CiAJCWdlbV9jbG9zZShpOTE1LCBoYW5kbGUpOwogCi0JCW1lbXNldCgmZW5naW5l cywgMCwgc2l6ZW9mKGVuZ2luZXMpKTsKLQkJZW5naW5lcy5lbmdpbmVzWzBdLmVuZ2luZV9jbGFz cyA9IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQ7Ci0JCWVuZ2luZXMuZW5naW5lc1swXS5lbmdp bmVfaW5zdGFuY2UgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkU7Ci0JCWVuZ2luZXMu ZW5naW5lc1sxXS5lbmdpbmVfY2xhc3MgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElEOwotCQll bmdpbmVzLmVuZ2luZXNbMV0uZW5naW5lX2luc3RhbmNlID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5W QUxJRF9OT05FOwotCQltZW1jcHkoZW5naW5lcy5lbmdpbmVzICsgMiwgY2ksIGNvdW50ICogc2l6 ZW9mKGNpKSk7CisJCW1lbXNldChlbmdpbmVzLCAwLCBzaXplb2ZfcGFyYW1fZW5naW5lcyg2NCkp OworCQllbmdpbmVzLT5lbmdpbmVzWzBdLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNT X0lOVkFMSUQ7CisJCWVuZ2luZXMtPmVuZ2luZXNbMF0uZW5naW5lX2luc3RhbmNlID0gSTkxNV9F TkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FOworCQllbmdpbmVzLT5lbmdpbmVzWzFdLmVuZ2luZV9j bGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQ7CisJCWVuZ2luZXMtPmVuZ2luZXNbMV0u ZW5naW5lX2luc3RhbmNlID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FOworCQltZW1j cHkoZW5naW5lcy0+ZW5naW5lcyArIDIsIGNpLCBjb3VudCAqIHNpemVvZihjaSkpOwogCQlwLnNp emUgPSAoc2l6ZW9mKHN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcykgKwotCQkJICAo Y291bnQgKyAyKSAqIHNpemVvZigqZW5naW5lcy5lbmdpbmVzKSk7CisJCQkgIChjb3VudCArIDIp ICogc2l6ZW9mKCplbmdpbmVzLT5lbmdpbmVzKSk7CiAJCWdlbV9jb250ZXh0X3NldF9wYXJhbShp OTE1LCAmcCk7CiAKLQkJYmFsYW5jZXIuYmFzZS5uZXh0X2V4dGVuc2lvbiA9IDA7Ci0JCWJhbGFu Y2VyLmVuZ2luZV9pbmRleCA9IDE7Ci0JCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9p bnRlcigmYmFsYW5jZXIpOworCQliYWxhbmNlci0+YmFzZS5uZXh0X2V4dGVuc2lvbiA9IDA7CisJ CWJhbGFuY2VyLT5lbmdpbmVfaW5kZXggPSAxOworCQllbmdpbmVzLT5leHRlbnNpb25zID0gdG9f dXNlcl9wb2ludGVyKGJhbGFuY2VyKTsKIAkJZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZw KTsKIAotCQltZW1jcHkocHRyICsgNDA5NiAtIDgsICZiYWxhbmNlciwgc2l6ZW9mKGJhbGFuY2Vy KSk7Ci0JCW1lbWNweShwdHIgKyA4MTkyIC0gOCwgJmJhbGFuY2VyLCBzaXplb2YoYmFsYW5jZXIp KTsKLQkJYmFsYW5jZXIuZW5naW5lX2luZGV4ID0gMDsKKwkJbWVtY3B5KHB0ciArIDQwOTYgLSA4 LCBiYWxhbmNlciwgc2l6ZW9mX2xvYWRfYmFsYW5jZSg2NCkpOworCQltZW1jcHkocHRyICsgODE5 MiAtIDgsIGJhbGFuY2VyLCBzaXplb2ZfbG9hZF9iYWxhbmNlKDY0KSk7CisJCWJhbGFuY2VyLT5l bmdpbmVfaW5kZXggPSAwOwogCi0JCWVuZ2luZXMuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRl cihwdHIpICsgNDA5NiAtIDg7CisJCWVuZ2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50 ZXIocHRyKSArIDQwOTYgLSA4OwogCQlnZW1fY29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwog Ci0JCWJhbGFuY2VyLmJhc2UubmV4dF9leHRlbnNpb24gPSBlbmdpbmVzLmV4dGVuc2lvbnM7Ci0J CWVuZ2luZXMuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcigmYmFsYW5jZXIpOworCQliYWxh bmNlci0+YmFzZS5uZXh0X2V4dGVuc2lvbiA9IGVuZ2luZXMtPmV4dGVuc2lvbnM7CisJCWVuZ2lu ZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIoYmFsYW5jZXIpOwogCQlnZW1fY29udGV4 dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogCiAJCW11bm1hcChwdHIsIDQwOTYpOwogCQlpZ3RfYXNz ZXJ0X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7Ci0JCWVu Z2luZXMuZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgNDA5NiAtIDg7CisJCWVu Z2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIocHRyKSArIDQwOTYgLSA4OwogCQlp Z3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7 CiAKLQkJZW5naW5lcy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKHB0cikgKyA4MTkyIC0g ODsKKwkJZW5naW5lcy0+ZXh0ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgODE5MiAt IDg7CiAJCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CiAKLQkJYmFsYW5jZXIuYmFz ZS5uZXh0X2V4dGVuc2lvbiA9IGVuZ2luZXMuZXh0ZW5zaW9uczsKLQkJZW5naW5lcy5leHRlbnNp b25zID0gdG9fdXNlcl9wb2ludGVyKCZiYWxhbmNlcik7CisJCWJhbGFuY2VyLT5iYXNlLm5leHRf ZXh0ZW5zaW9uID0gZW5naW5lcy0+ZXh0ZW5zaW9uczsKKwkJZW5naW5lcy0+ZXh0ZW5zaW9ucyA9 IHRvX3VzZXJfcG9pbnRlcihiYWxhbmNlcik7CiAJCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1 LCAmcCk7CiAKIAkJbXVubWFwKHB0ciArIDgxOTIsIDQwOTYpOwogCQlpZ3RfYXNzZXJ0X2VxKF9f Z2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7Ci0JCWVuZ2luZXMuZXh0 ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgODE5MiAtIDg7CisJCWVuZ2luZXMtPmV4 dGVuc2lvbnMgPSB0b191c2VyX3BvaW50ZXIocHRyKSArIDgxOTIgLSA4OwogCQlpZ3RfYXNzZXJ0 X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3BhcmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7CiAKIAkJbXVu bWFwKHB0ciArIDQwOTYsIDQwOTYpOwpAQCAtMzA4LDYxICszMjksNjQgQEAgc3RhdGljIHZvaWQg aW52YWxpZF9iYWxhbmNlcihpbnQgaTkxNSkKIAogc3RhdGljIHZvaWQgaW52YWxpZF9ib25kcyhp bnQgaTkxNSkKIHsKLQlJOTE1X0RFRklORV9DT05URVhUX0VOR0lORVNfQk9ORChib25kc1sxNl0s IDEpOwotCUk5MTVfREVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUyhlbmdpbmVzLCAxKTsKKwlz dHJ1Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNfYm9uZCAqYm9uZHNbMTZdOworCXN0cnVjdCBpOTE1 X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqZW5naW5lcyA9CisJCWFsbG9jYTAoc2l6ZW9mX3BhcmFt X2VuZ2luZXMoMSkpOworCiAJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHAgPSB7 CiAJCS5jdHhfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUoaTkxNSksCiAJCS5wYXJhbSA9IEk5MTVf Q09OVEVYVF9QQVJBTV9FTkdJTkVTLAotCQkudmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2lu ZXMpLAotCQkuc2l6ZSA9IHNpemVvZihlbmdpbmVzKSwKKwkJLnZhbHVlID0gdG9fdXNlcl9wb2lu dGVyKGVuZ2luZXMpLAorCQkuc2l6ZSA9IHNpemVvZl9wYXJhbV9lbmdpbmVzKDEpLAogCX07CiAJ dWludDMyX3QgaGFuZGxlOwogCXZvaWQgKnB0cjsKIAotCW1lbXNldCgmZW5naW5lcywgMCwgc2l6 ZW9mKGVuZ2luZXMpKTsKKwljb25zdCBzaXplX3QgYm9uZF9zaXplID0gc2l6ZW9mX2VuZ2luZXNf Ym9uZCgxKTsKKwogCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CiAKLQltZW1zZXQo Ym9uZHMsIDAsIHNpemVvZihib25kcykpOwogCWZvciAoaW50IG4gPSAwOyBuIDwgQVJSQVlfU0la RShib25kcyk7IG4rKykgewotCQlib25kc1tuXS5iYXNlLm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5H SU5FU19FWFRfQk9ORDsKLQkJYm9uZHNbbl0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9Ci0JCQluID8g dG9fdXNlcl9wb2ludGVyKCZib25kc1tuIC0gMV0pIDogMDsKLQkJYm9uZHNbbl0ubnVtX2JvbmRz ID0gMTsKKwkJYm9uZHNbbl0gPSBhbGxvY2EwKGJvbmRfc2l6ZSk7CisJCWJvbmRzW25dLT5iYXNl Lm5hbWUgPSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfQk9ORDsKKwkJYm9uZHNbbl0tPmJhc2Uu bmV4dF9leHRlbnNpb24gPQorCQkJbiA/IHRvX3VzZXJfcG9pbnRlcihib25kc1tuIC0gMV0pIDog MDsKKwkJYm9uZHNbbl0tPm51bV9ib25kcyA9IDE7CiAJfQotCWVuZ2luZXMuZXh0ZW5zaW9ucyA9 IHRvX3VzZXJfcG9pbnRlcigmYm9uZHMpOworCWVuZ2luZXMtPmV4dGVuc2lvbnMgPSB0b191c2Vy X3BvaW50ZXIoYm9uZHMpOwogCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CiAKLQli b25kc1swXS5iYXNlLm5leHRfZXh0ZW5zaW9uID0gLTF1bGw7CisJYm9uZHNbMF0tPmJhc2UubmV4 dF9leHRlbnNpb24gPSAtMXVsbDsKIAlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfc2V0X3Bh cmFtKGk5MTUsICZwKSwgLUVGQVVMVCk7CiAKLQlib25kc1swXS5iYXNlLm5leHRfZXh0ZW5zaW9u ID0gdG9fdXNlcl9wb2ludGVyKCZib25kc1swXSk7CisJYm9uZHNbMF0tPmJhc2UubmV4dF9leHRl bnNpb24gPSB0b191c2VyX3BvaW50ZXIoYm9uZHNbMF0pOwogCWlndF9hc3NlcnRfZXEoX19nZW1f Y29udGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApLCAtRTJCSUcpOwogCi0JZW5naW5lcy5leHRlbnNp b25zID0gdG9fdXNlcl9wb2ludGVyKCZib25kc1sxXSk7CisJZW5naW5lcy0+ZXh0ZW5zaW9ucyA9 IHRvX3VzZXJfcG9pbnRlcihib25kc1sxXSk7CiAJaWd0X2Fzc2VydF9lcShfX2dlbV9jb250ZXh0 X3NldF9wYXJhbShpOTE1LCAmcCksIC1FMkJJRyk7Ci0JYm9uZHNbMF0uYmFzZS5uZXh0X2V4dGVu c2lvbiA9IDA7CisJYm9uZHNbMF0tPmJhc2UubmV4dF9leHRlbnNpb24gPSAwOwogCWdlbV9jb250 ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CiAKIAloYW5kbGUgPSBnZW1fY3JlYXRlKGk5MTUsIDQw OTYgKiAzKTsKIAlwdHIgPSBnZW1fbW1hcF9fZ3R0KGk5MTUsIGhhbmRsZSwgNDA5NiAqIDMsIFBS T1RfV1JJVEUpOwogCWdlbV9jbG9zZShpOTE1LCBoYW5kbGUpOwogCi0JbWVtY3B5KHB0ciArIDQw OTYsICZib25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7Ci0JZW5naW5lcy5leHRlbnNpb25zID0g dG9fdXNlcl9wb2ludGVyKHB0cikgKyA0MDk2OworCW1lbWNweShwdHIgKyA0MDk2LCBib25kc1sw XSwgYm9uZF9zaXplKTsKKwllbmdpbmVzLT5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKHB0 cikgKyA0MDk2OwogCWdlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCk7CiAKLQltZW1jcHko cHRyLCAmYm9uZHNbMF0sIHNpemVvZihib25kc1swXSkpOwotCWJvbmRzWzBdLmJhc2UubmV4dF9l eHRlbnNpb24gPSB0b191c2VyX3BvaW50ZXIocHRyKTsKLQltZW1jcHkocHRyICsgNDA5NiwgJmJv bmRzWzBdLCBzaXplb2YoYm9uZHNbMF0pKTsKKwltZW1jcHkocHRyLCBib25kc1swXSwgYm9uZF9z aXplKTsKKwlib25kc1swXS0+YmFzZS5uZXh0X2V4dGVuc2lvbiA9IHRvX3VzZXJfcG9pbnRlcihw dHIpOworCW1lbWNweShwdHIgKyA0MDk2LCBib25kc1swXSwgYm9uZF9zaXplKTsKIAlnZW1fY29u dGV4dF9zZXRfcGFyYW0oaTkxNSwgJnApOwogCiAJbXVubWFwKHB0ciwgNDA5Nik7CiAJaWd0X2Fz c2VydF9lcShfX2dlbV9jb250ZXh0X3NldF9wYXJhbShpOTE1LCAmcCksIC1FRkFVTFQpOwogCi0J Ym9uZHNbMF0uYmFzZS5uZXh0X2V4dGVuc2lvbiA9IDA7Ci0JbWVtY3B5KHB0ciArIDgxOTIsICZi b25kc1swXSwgc2l6ZW9mKGJvbmRzWzBdKSk7Ci0JYm9uZHNbMF0uYmFzZS5uZXh0X2V4dGVuc2lv biA9IHRvX3VzZXJfcG9pbnRlcihwdHIpICsgODE5MjsKLQltZW1jcHkocHRyICsgNDA5NiwgJmJv bmRzWzBdLCBzaXplb2YoYm9uZHNbMF0pKTsKKwlib25kc1swXS0+YmFzZS5uZXh0X2V4dGVuc2lv biA9IDA7CisJbWVtY3B5KHB0ciArIDgxOTIsIGJvbmRzWzBdLCBib25kX3NpemUpOworCWJvbmRz WzBdLT5iYXNlLm5leHRfZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKHB0cikgKyA4MTkyOwor CW1lbWNweShwdHIgKyA0MDk2LCBib25kc1swXSwgYm9uZF9zaXplKTsKIAlnZW1fY29udGV4dF9z ZXRfcGFyYW0oaTkxNSwgJnApOwogCiAJbXVubWFwKHB0ciArIDgxOTIsIDQwOTYpOwpAQCAtNTQz LDEwICs1NjcsMTIgQEAgc3RhdGljIHZvaWQgaW5kaXZpZHVhbChpbnQgaTkxNSkKIHN0YXRpYyB2 b2lkIGJvbmRlZChpbnQgaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQogI2RlZmluZSBDT1JLIDB4 MQogewotCUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19CT05EKGJvbmRzWzE2XSwgMSk7CisJ c3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2JvbmQgKmJvbmRzWzE2XTsKIAlzdHJ1Y3QgaTkx NV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKm1hc3Rlcl9lbmdpbmVzOwogCXVpbnQzMl90IG1hc3Rl cjsKIAorCXNpemVfdCBib25kX3NpemUgPSBzaXplb2ZfZW5naW5lc19ib25kKDEpOworCiAJLyoK IAkgKiBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FIHByb3ZpZGVzIGFuIGV4dGVuc2lvbiB0aGF0 IGFsbG93cyB1cwogCSAqIHRvIHNwZWNpZnkgd2hpY2ggZW5naW5lKHMpIHRvIHBhaXIgd2l0aCBh IHBhcmFsbGVsIChFWEVDX1NVQk1JVCkKQEAgLTU1NSwxMiArNTgxLDEyIEBAIHN0YXRpYyB2b2lk IGJvbmRlZChpbnQgaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQogCiAJbWFzdGVyID0gZ2VtX3F1 ZXVlX2NyZWF0ZShpOTE1KTsKIAotCW1lbXNldChib25kcywgMCwgc2l6ZW9mKGJvbmRzKSk7CiAJ Zm9yIChpbnQgbiA9IDA7IG4gPCBBUlJBWV9TSVpFKGJvbmRzKTsgbisrKSB7Ci0JCWJvbmRzW25d LmJhc2UubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9CT05EOwotCQlib25kc1tuXS5i YXNlLm5leHRfZXh0ZW5zaW9uID0KLQkJCW4gPyB0b191c2VyX3BvaW50ZXIoJmJvbmRzW24gLSAx XSkgOiAwOwotCQlib25kc1tuXS5udW1fYm9uZHMgPSAxOworCQlib25kc1tuXSA9IGFsbG9jYTAo Ym9uZF9zaXplKTsKKwkJYm9uZHNbbl0tPmJhc2UubmFtZSA9IEk5MTVfQ09OVEVYVF9FTkdJTkVT X0VYVF9CT05EOworCQlib25kc1tuXS0+YmFzZS5uZXh0X2V4dGVuc2lvbiA9CisJCQluID8gdG9f dXNlcl9wb2ludGVyKGJvbmRzW24gLSAxXSkgOiAwOworCQlib25kc1tuXS0+bnVtX2JvbmRzID0g MTsKIAl9CiAKIAlmb3IgKGludCBjbGFzcyA9IDA7IGNsYXNzIDwgMzI7IGNsYXNzKyspIHsKQEAg LTU4NCwxNCArNjEwLDE0IEBAIHN0YXRpYyB2b2lkIGJvbmRlZChpbnQgaTkxNSwgdW5zaWduZWQg aW50IGZsYWdzKQogCQlsaW1pdCA9IG1pbihjb3VudCwgbGltaXQpOwogCQlpZ3RfYXNzZXJ0KGxp bWl0IDw9IEFSUkFZX1NJWkUoYm9uZHMpKTsKIAkJZm9yIChuID0gMDsgbiA8IGxpbWl0OyBuKysp IHsKLQkJCWJvbmRzW25dLm1hc3RlciA9IG1hc3Rlcl9lbmdpbmVzW25dOwotCQkJYm9uZHNbbl0u ZW5naW5lc1swXSA9IHNpYmxpbmdzW25dOworCQkJYm9uZHNbbl0tPm1hc3RlciA9IG1hc3Rlcl9l bmdpbmVzW25dOworCQkJYm9uZHNbbl0tPmVuZ2luZXNbMF0gPSBzaWJsaW5nc1tuXTsKIAkJfQog CiAJCWN0eCA9IGdlbV9jb250ZXh0X2Nsb25lKGk5MTUsCiAJCQkJCW1hc3RlciwgSTkxNV9DT05U RVhUX0NMT05FX1ZNLAogCQkJCQlJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1NJTkdMRV9USU1F TElORSk7Ci0JCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGN0eCwgc2libGluZ3MsIGNvdW50LCAm Ym9uZHNbbGltaXQgLSAxXSk7CisJCXNldF9sb2FkX2JhbGFuY2VyKGk5MTUsIGN0eCwgc2libGlu Z3MsIGNvdW50LCBib25kc1tsaW1pdCAtIDFdKTsKIAogCQlvcmRlciA9IG1hbGxvYyhzaXplb2Yo Km9yZGVyKSAqIDggKiBsaW1pdCk7CiAJCWlndF9hc3NlcnQob3JkZXIpOwpAQCAtNjgxLDExICs3 MDcsMTIgQEAgc3RhdGljIHZvaWQgYm9uZGVkKGludCBpOTE1LCB1bnNpZ25lZCBpbnQgZmxhZ3Mp CiAKIHN0YXRpYyB2b2lkIGluZGljZXMoaW50IGk5MTUpCiB7Ci0JSTkxNV9ERUZJTkVfQ09OVEVY VF9QQVJBTV9FTkdJTkVTKGVuZ2luZXMsIEk5MTVfRVhFQ19SSU5HX01BU0sgKyAxKTsKKwlzdHJ1 Y3QgaTkxNV9jb250ZXh0X3BhcmFtX2VuZ2luZXMgKmVuZ2luZXMgPQorCQlhbGxvY2EwKHNpemVv Zl9wYXJhbV9lbmdpbmVzKEk5MTVfRVhFQ19SSU5HX01BU0sgKyAxKSk7CiAJc3RydWN0IGRybV9p OTE1X2dlbV9jb250ZXh0X3BhcmFtIHAgPSB7CiAJCS5jdHhfaWQgPSBnZW1fY29udGV4dF9jcmVh dGUoaTkxNSksCiAJCS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTLAotCQkudmFs dWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2luZXMpCisJCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRl cihlbmdpbmVzKQogCX07CiAKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBiYXRj aCA9IHsKQEAgLTcwOSwxNSArNzM2LDE0IEBAIHN0YXRpYyB2b2lkIGluZGljZXMoaW50IGk5MTUp CiAJCQljb250aW51ZTsKIAogCQlmb3IgKGludCBuID0gMDsgbiA8IGNvdW50OyBuKyspIHsKLQkJ CUk5MTVfREVGSU5FX0NPTlRFWFRfRU5HSU5FU19MT0FEX0JBTEFOQ0UoKmJhbGFuY2VyLAotCQkJ CQkJCQkgY291bnQpOworCQkJc3RydWN0IGk5MTVfY29udGV4dF9lbmdpbmVzX2xvYWRfYmFsYW5j ZSAqYmFsYW5jZXI7CiAKLQkJCWVuZ2luZXMuZW5naW5lc1tuZW5naW5lc10uZW5naW5lX2NsYXNz ID0KKwkJCWVuZ2luZXMtPmVuZ2luZXNbbmVuZ2luZXNdLmVuZ2luZV9jbGFzcyA9CiAJCQkJSTkx NV9FTkdJTkVfQ0xBU1NfSU5WQUxJRDsKLQkJCWVuZ2luZXMuZW5naW5lc1tuZW5naW5lc10uZW5n aW5lX2luc3RhbmNlID0KKwkJCWVuZ2luZXMtPmVuZ2luZXNbbmVuZ2luZXNdLmVuZ2luZV9pbnN0 YW5jZSA9CiAJCQkJSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FOwogCi0JCQliYWxhbmNl ciA9IGNhbGxvYyhzaXplb2YoKmJhbGFuY2VyKSwgMSk7CisJCQliYWxhbmNlciA9IGNhbGxvYyhz aXplb2ZfbG9hZF9iYWxhbmNlKDEpLCAxKTsKIAkJCWlndF9hc3NlcnQoYmFsYW5jZXIpOwogCiAJ CQliYWxhbmNlci0+YmFzZS5uYW1lID0KQEAgLTczNiw3ICs3NjIsNyBAQCBzdGF0aWMgdm9pZCBp bmRpY2VzKGludCBpOTE1KQogCX0KIAogCWlndF9yZXF1aXJlKGJhbGFuY2Vycyk7Ci0JZW5naW5l cy5leHRlbnNpb25zID0gdG9fdXNlcl9wb2ludGVyKGJhbGFuY2Vycyk7CisJZW5naW5lcy0+ZXh0 ZW5zaW9ucyA9IHRvX3VzZXJfcG9pbnRlcihiYWxhbmNlcnMpOwogCXAuc2l6ZSA9IChzaXplb2Yo c3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlKSAqIG5lbmdpbmVzICsKIAkJICBzaXpl b2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzKSk7CiAJZ2VtX2NvbnRleHRfc2V0 X3BhcmFtKGk5MTUsICZwKTsKLS0gCjIuMjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3QtZGV2