From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: [PATCH 26/32] drm/amd/display: Do not use os types Date: Tue, 3 Apr 2018 21:27:41 -0400 Message-ID: <20180404012747.5651-27-harry.wentland@amd.com> References: <20180404012747.5651-1-harry.wentland@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180404012747.5651-1-harry.wentland-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Anthony Koo RnJvbTogQW50aG9ueSBLb28gPEFudGhvbnkuS29vQGFtZC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBB bnRob255IEtvbyA8QW50aG9ueS5Lb29AYW1kLmNvbT4KUmV2aWV3ZWQtYnk6IEFudGhvbnkgS29v IDxBbnRob255Lktvb0BhbWQuY29tPgpSZXZpZXdlZC1ieTogQXJpYyBDeXIgPEFyaWMuQ3lyQGFt ZC5jb20+CkFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2ZpeHB0MzFfMzIuYyB8 IDE1OCArKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9p bmNsdWRlL2ZpeGVkMzFfMzIuaCAgIHwgIDQwICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5OCBp bnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9maXhwdDMxXzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2ZpeHB0MzFfMzIuYwppbmRleCA4YTliYmE4NzkyMDcuLjcx OTFjMzIxMzc0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jh c2ljcy9maXhwdDMxXzMyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jh c2ljcy9maXhwdDMxXzMyLmMKQEAgLTI2LDEzICsyNiwxMyBAQAogI2luY2x1ZGUgImRtX3NlcnZp Y2VzLmgiCiAjaW5jbHVkZSAiaW5jbHVkZS9maXhlZDMxXzMyLmgiCiAKLXN0YXRpYyBpbmxpbmUg dWludDY0X3QgYWJzX2k2NCgKLQlpbnQ2NF90IGFyZykKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQg bG9uZyBsb25nIGFic19pNjQoCisJbG9uZyBsb25nIGFyZykKIHsKIAlpZiAoYXJnID4gMCkKLQkJ cmV0dXJuICh1aW50NjRfdClhcmc7CisJCXJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKWFyZzsK IAllbHNlCi0JCXJldHVybiAodWludDY0X3QpKC1hcmcpOworCQlyZXR1cm4gKHVuc2lnbmVkIGxv bmcgbG9uZykoLWFyZyk7CiB9CiAKIC8qCkBAIC00MCwxMiArNDAsMTIgQEAgc3RhdGljIGlubGlu ZSB1aW50NjRfdCBhYnNfaTY0KAogICogcmVzdWx0ID0gZGl2aWRlbmQgLyBkaXZpc29yCiAgKiAq cmVtYWluZGVyID0gZGl2aWRlbmQgJSBkaXZpc29yCiAgKi8KLXN0YXRpYyBpbmxpbmUgdWludDY0 X3QgY29tcGxldGVfaW50ZWdlcl9kaXZpc2lvbl91NjQoCi0JdWludDY0X3QgZGl2aWRlbmQsCi0J dWludDY0X3QgZGl2aXNvciwKLQl1aW50NjRfdCAqcmVtYWluZGVyKQorc3RhdGljIGlubGluZSB1 bnNpZ25lZCBsb25nIGxvbmcgY29tcGxldGVfaW50ZWdlcl9kaXZpc2lvbl91NjQoCisJdW5zaWdu ZWQgbG9uZyBsb25nIGRpdmlkZW5kLAorCXVuc2lnbmVkIGxvbmcgbG9uZyBkaXZpc29yLAorCXVu c2lnbmVkIGxvbmcgbG9uZyAqcmVtYWluZGVyKQogewotCXVpbnQ2NF90IHJlc3VsdDsKKwl1bnNp Z25lZCBsb25nIGxvbmcgcmVzdWx0OwogCiAJQVNTRVJUKGRpdmlzb3IpOwogCkBAIC02NSwyOSAr NjUsMjkgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCBjb21wbGV0ZV9pbnRlZ2VyX2RpdmlzaW9u X3U2NCgKIAkoRlJBQ1RJT05BTF9QQVJUX01BU0sgJiAoeCkpCiAKIHN0cnVjdCBmaXhlZDMxXzMy IGRhbF9maXhlZDMxXzMyX2Zyb21fZnJhY3Rpb24oCi0JaW50NjRfdCBudW1lcmF0b3IsCi0JaW50 NjRfdCBkZW5vbWluYXRvcikKKwlsb25nIGxvbmcgbnVtZXJhdG9yLAorCWxvbmcgbG9uZyBkZW5v bWluYXRvcikKIHsKIAlzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CiAKIAlib29sIGFyZzFfbmVnYXRp dmUgPSBudW1lcmF0b3IgPCAwOwogCWJvb2wgYXJnMl9uZWdhdGl2ZSA9IGRlbm9taW5hdG9yIDwg MDsKIAotCXVpbnQ2NF90IGFyZzFfdmFsdWUgPSBhcmcxX25lZ2F0aXZlID8gLW51bWVyYXRvciA6 IG51bWVyYXRvcjsKLQl1aW50NjRfdCBhcmcyX3ZhbHVlID0gYXJnMl9uZWdhdGl2ZSA/IC1kZW5v bWluYXRvciA6IGRlbm9taW5hdG9yOworCXVuc2lnbmVkIGxvbmcgbG9uZyBhcmcxX3ZhbHVlID0g YXJnMV9uZWdhdGl2ZSA/IC1udW1lcmF0b3IgOiBudW1lcmF0b3I7CisJdW5zaWduZWQgbG9uZyBs b25nIGFyZzJfdmFsdWUgPSBhcmcyX25lZ2F0aXZlID8gLWRlbm9taW5hdG9yIDogZGVub21pbmF0 b3I7CiAKLQl1aW50NjRfdCByZW1haW5kZXI7CisJdW5zaWduZWQgbG9uZyBsb25nIHJlbWFpbmRl cjsKIAogCS8qIGRldGVybWluZSBpbnRlZ2VyIHBhcnQgKi8KIAotCXVpbnQ2NF90IHJlc192YWx1 ZSA9IGNvbXBsZXRlX2ludGVnZXJfZGl2aXNpb25fdTY0KAorCXVuc2lnbmVkIGxvbmcgbG9uZyBy ZXNfdmFsdWUgPSBjb21wbGV0ZV9pbnRlZ2VyX2RpdmlzaW9uX3U2NCgKIAkJYXJnMV92YWx1ZSwg YXJnMl92YWx1ZSwgJnJlbWFpbmRlcik7CiAKIAlBU1NFUlQocmVzX3ZhbHVlIDw9IExPTkdfTUFY KTsKIAogCS8qIGRldGVybWluZSBmcmFjdGlvbmFsIHBhcnQgKi8KIAl7Ci0JCXVpbnQzMl90IGkg PSBGSVhFRDMxXzMyX0JJVFNfUEVSX0ZSQUNUSU9OQUxfUEFSVDsKKwkJdW5zaWduZWQgaW50IGkg PSBGSVhFRDMxXzMyX0JJVFNfUEVSX0ZSQUNUSU9OQUxfUEFSVDsKIAogCQlkbyB7CiAJCQlyZW1h aW5kZXIgPDw9IDE7CkBAIC0xMDMsMTQgKzEwMywxNCBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9mcm9tX2ZyYWN0aW9uKAogCiAJLyogcm91bmQgdXAgTFNCICovCiAJewotCQl1 aW50NjRfdCBzdW1tYW5kID0gKHJlbWFpbmRlciA8PCAxKSA+PSBhcmcyX3ZhbHVlOworCQl1bnNp Z25lZCBsb25nIGxvbmcgc3VtbWFuZCA9IChyZW1haW5kZXIgPDwgMSkgPj0gYXJnMl92YWx1ZTsK IAogCQlBU1NFUlQocmVzX3ZhbHVlIDw9IExMT05HX01BWCAtIHN1bW1hbmQpOwogCiAJCXJlc192 YWx1ZSArPSBzdW1tYW5kOwogCX0KIAotCXJlcy52YWx1ZSA9IChpbnQ2NF90KXJlc192YWx1ZTsK KwlyZXMudmFsdWUgPSAobG9uZyBsb25nKXJlc192YWx1ZTsKIAogCWlmIChhcmcxX25lZ2F0aXZl IF4gYXJnMl9uZWdhdGl2ZSkKIAkJcmVzLnZhbHVlID0gLXJlcy52YWx1ZTsKQEAgLTExOSw3ICsx MTksNyBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9mcm9tX2ZyYWN0aW9uKAog fQogCiBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9mcm9tX2ludF9ub25jb25zdCgK LQlpbnQ2NF90IGFyZykKKwlsb25nIGxvbmcgYXJnKQogewogCXN0cnVjdCBmaXhlZDMxXzMyIHJl czsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMy X2Zyb21faW50X25vbmNvbnN0KAogCiBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9z aGwoCiAJc3RydWN0IGZpeGVkMzFfMzIgYXJnLAotCXVpbnQ4X3Qgc2hpZnQpCisJdW5zaWduZWQg Y2hhciBzaGlmdCkKIHsKIAlzdHJ1Y3QgZml4ZWQzMV8zMiByZXM7CiAKQEAgLTE4MSwxNiArMTgx LDE2IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX211bCgKIAlib29sIGFyZzFf bmVnYXRpdmUgPSBhcmcxLnZhbHVlIDwgMDsKIAlib29sIGFyZzJfbmVnYXRpdmUgPSBhcmcyLnZh bHVlIDwgMDsKIAotCXVpbnQ2NF90IGFyZzFfdmFsdWUgPSBhcmcxX25lZ2F0aXZlID8gLWFyZzEu dmFsdWUgOiBhcmcxLnZhbHVlOwotCXVpbnQ2NF90IGFyZzJfdmFsdWUgPSBhcmcyX25lZ2F0aXZl ID8gLWFyZzIudmFsdWUgOiBhcmcyLnZhbHVlOworCXVuc2lnbmVkIGxvbmcgbG9uZyBhcmcxX3Zh bHVlID0gYXJnMV9uZWdhdGl2ZSA/IC1hcmcxLnZhbHVlIDogYXJnMS52YWx1ZTsKKwl1bnNpZ25l ZCBsb25nIGxvbmcgYXJnMl92YWx1ZSA9IGFyZzJfbmVnYXRpdmUgPyAtYXJnMi52YWx1ZSA6IGFy ZzIudmFsdWU7CiAKLQl1aW50NjRfdCBhcmcxX2ludCA9IEdFVF9JTlRFR0VSX1BBUlQoYXJnMV92 YWx1ZSk7Ci0JdWludDY0X3QgYXJnMl9pbnQgPSBHRVRfSU5URUdFUl9QQVJUKGFyZzJfdmFsdWUp OworCXVuc2lnbmVkIGxvbmcgbG9uZyBhcmcxX2ludCA9IEdFVF9JTlRFR0VSX1BBUlQoYXJnMV92 YWx1ZSk7CisJdW5zaWduZWQgbG9uZyBsb25nIGFyZzJfaW50ID0gR0VUX0lOVEVHRVJfUEFSVChh cmcyX3ZhbHVlKTsKIAotCXVpbnQ2NF90IGFyZzFfZnJhID0gR0VUX0ZSQUNUSU9OQUxfUEFSVChh cmcxX3ZhbHVlKTsKLQl1aW50NjRfdCBhcmcyX2ZyYSA9IEdFVF9GUkFDVElPTkFMX1BBUlQoYXJn Ml92YWx1ZSk7CisJdW5zaWduZWQgbG9uZyBsb25nIGFyZzFfZnJhID0gR0VUX0ZSQUNUSU9OQUxf UEFSVChhcmcxX3ZhbHVlKTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgYXJnMl9mcmEgPSBHRVRfRlJB Q1RJT05BTF9QQVJUKGFyZzJfdmFsdWUpOwogCi0JdWludDY0X3QgdG1wOworCXVuc2lnbmVkIGxv bmcgbG9uZyB0bXA7CiAKIAlyZXMudmFsdWUgPSBhcmcxX2ludCAqIGFyZzJfaW50OwogCkBAIC0y MDAsMjIgKzIwMCwyMiBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9tdWwoCiAK IAl0bXAgPSBhcmcxX2ludCAqIGFyZzJfZnJhOwogCi0JQVNTRVJUKHRtcCA8PSAodWludDY0X3Qp KExMT05HX01BWCAtIHJlcy52YWx1ZSkpOworCUFTU0VSVCh0bXAgPD0gKHVuc2lnbmVkIGxvbmcg bG9uZykoTExPTkdfTUFYIC0gcmVzLnZhbHVlKSk7CiAKIAlyZXMudmFsdWUgKz0gdG1wOwogCiAJ dG1wID0gYXJnMl9pbnQgKiBhcmcxX2ZyYTsKIAotCUFTU0VSVCh0bXAgPD0gKHVpbnQ2NF90KShM TE9OR19NQVggLSByZXMudmFsdWUpKTsKKwlBU1NFUlQodG1wIDw9ICh1bnNpZ25lZCBsb25nIGxv bmcpKExMT05HX01BWCAtIHJlcy52YWx1ZSkpOwogCiAJcmVzLnZhbHVlICs9IHRtcDsKIAogCXRt cCA9IGFyZzFfZnJhICogYXJnMl9mcmE7CiAKIAl0bXAgPSAodG1wID4+IEZJWEVEMzFfMzJfQklU U19QRVJfRlJBQ1RJT05BTF9QQVJUKSArCi0JCSh0bXAgPj0gKHVpbnQ2NF90KWRhbF9maXhlZDMx XzMyX2hhbGYudmFsdWUpOworCQkodG1wID49ICh1bnNpZ25lZCBsb25nIGxvbmcpZGFsX2ZpeGVk MzFfMzJfaGFsZi52YWx1ZSk7CiAKLQlBU1NFUlQodG1wIDw9ICh1aW50NjRfdCkoTExPTkdfTUFY IC0gcmVzLnZhbHVlKSk7CisJQVNTRVJUKHRtcCA8PSAodW5zaWduZWQgbG9uZyBsb25nKShMTE9O R19NQVggLSByZXMudmFsdWUpKTsKIAogCXJlcy52YWx1ZSArPSB0bXA7CiAKQEAgLTIzMCwxMyAr MjMwLDEzIEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3NxcigKIHsKIAlzdHJ1 Y3QgZml4ZWQzMV8zMiByZXM7CiAKLQl1aW50NjRfdCBhcmdfdmFsdWUgPSBhYnNfaTY0KGFyZy52 YWx1ZSk7CisJdW5zaWduZWQgbG9uZyBsb25nIGFyZ192YWx1ZSA9IGFic19pNjQoYXJnLnZhbHVl KTsKIAotCXVpbnQ2NF90IGFyZ19pbnQgPSBHRVRfSU5URUdFUl9QQVJUKGFyZ192YWx1ZSk7CisJ dW5zaWduZWQgbG9uZyBsb25nIGFyZ19pbnQgPSBHRVRfSU5URUdFUl9QQVJUKGFyZ192YWx1ZSk7 CiAKLQl1aW50NjRfdCBhcmdfZnJhID0gR0VUX0ZSQUNUSU9OQUxfUEFSVChhcmdfdmFsdWUpOwor CXVuc2lnbmVkIGxvbmcgbG9uZyBhcmdfZnJhID0gR0VUX0ZSQUNUSU9OQUxfUEFSVChhcmdfdmFs dWUpOwogCi0JdWludDY0X3QgdG1wOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0bXA7CiAKIAlyZXMu dmFsdWUgPSBhcmdfaW50ICogYXJnX2ludDsKIApAQCAtMjQ2LDIwICsyNDYsMjAgQEAgc3RydWN0 IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfc3FyKAogCiAJdG1wID0gYXJnX2ludCAqIGFyZ19m cmE7CiAKLQlBU1NFUlQodG1wIDw9ICh1aW50NjRfdCkoTExPTkdfTUFYIC0gcmVzLnZhbHVlKSk7 CisJQVNTRVJUKHRtcCA8PSAodW5zaWduZWQgbG9uZyBsb25nKShMTE9OR19NQVggLSByZXMudmFs dWUpKTsKIAogCXJlcy52YWx1ZSArPSB0bXA7CiAKLQlBU1NFUlQodG1wIDw9ICh1aW50NjRfdCko TExPTkdfTUFYIC0gcmVzLnZhbHVlKSk7CisJQVNTRVJUKHRtcCA8PSAodW5zaWduZWQgbG9uZyBs b25nKShMTE9OR19NQVggLSByZXMudmFsdWUpKTsKIAogCXJlcy52YWx1ZSArPSB0bXA7CiAKIAl0 bXAgPSBhcmdfZnJhICogYXJnX2ZyYTsKIAogCXRtcCA9ICh0bXAgPj4gRklYRUQzMV8zMl9CSVRT X1BFUl9GUkFDVElPTkFMX1BBUlQpICsKLQkJKHRtcCA+PSAodWludDY0X3QpZGFsX2ZpeGVkMzFf MzJfaGFsZi52YWx1ZSk7CisJCSh0bXAgPj0gKHVuc2lnbmVkIGxvbmcgbG9uZylkYWxfZml4ZWQz MV8zMl9oYWxmLnZhbHVlKTsKIAotCUFTU0VSVCh0bXAgPD0gKHVpbnQ2NF90KShMTE9OR19NQVgg LSByZXMudmFsdWUpKTsKKwlBU1NFUlQodG1wIDw9ICh1bnNpZ25lZCBsb25nIGxvbmcpKExMT05H X01BWCAtIHJlcy52YWx1ZSkpOwogCiAJcmVzLnZhbHVlICs9IHRtcDsKIApAQCAtMjg4LDcgKzI4 OCw3IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3NpbmMoCiAKIAlzdHJ1Y3Qg Zml4ZWQzMV8zMiByZXMgPSBkYWxfZml4ZWQzMV8zMl9vbmU7CiAKLQlpbnQzMl90IG4gPSAyNzsK KwlpbnQgbiA9IDI3OwogCiAJc3RydWN0IGZpeGVkMzFfMzIgYXJnX25vcm0gPSBhcmc7CiAKQEAg LTI5OSw3ICsyOTksNyBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9zaW5jKAog CQkJYXJnX25vcm0sCiAJCQlkYWxfZml4ZWQzMV8zMl9tdWxfaW50KAogCQkJCWRhbF9maXhlZDMx XzMyX3R3b19waSwKLQkJCQkoaW50MzJfdClkaXY2NF9zNjQoCisJCQkJKGludClkaXY2NF9zNjQo CiAJCQkJCWFyZ19ub3JtLnZhbHVlLAogCQkJCQlkYWxfZml4ZWQzMV8zMl90d29fcGkudmFsdWUp KSk7CiAJfQpAQCAtMzQzLDcgKzM0Myw3IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMx XzMyX2NvcygKIAogCXN0cnVjdCBmaXhlZDMxXzMyIHJlcyA9IGRhbF9maXhlZDMxXzMyX29uZTsK IAotCWludDMyX3QgbiA9IDI2OworCWludCBuID0gMjY7CiAKIAlkbyB7CiAJCXJlcyA9IGRhbF9m aXhlZDMxXzMyX3N1YigKQEAgLTM3MCw3ICszNzAsNyBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9jb3MoCiBzdGF0aWMgc3RydWN0IGZpeGVkMzFfMzIgZml4ZWQzMV8zMl9leHBf ZnJvbV90YXlsb3Jfc2VyaWVzKAogCXN0cnVjdCBmaXhlZDMxXzMyIGFyZykKIHsKLQl1aW50MzJf dCBuID0gOTsKKwl1bnNpZ25lZCBpbnQgbiA9IDk7CiAKIAlzdHJ1Y3QgZml4ZWQzMV8zMiByZXMg PSBkYWxfZml4ZWQzMV8zMl9mcm9tX2ZyYWN0aW9uKAogCQluICsgMiwKQEAgLTQwOSw3ICs0MDks NyBAQCBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9leHAoCiAJaWYgKGRhbF9maXhl ZDMxXzMyX2xlKAogCQlkYWxfZml4ZWQzMV8zMl9sbjJfZGl2XzIsCiAJCWRhbF9maXhlZDMxXzMy X2FicyhhcmcpKSkgewotCQlpbnQzMl90IG0gPSBkYWxfZml4ZWQzMV8zMl9yb3VuZCgKKwkJaW50 IG0gPSBkYWxfZml4ZWQzMV8zMl9yb3VuZCgKIAkJCWRhbF9maXhlZDMxXzMyX2RpdigKIAkJCQlh cmcsCiAJCQkJZGFsX2ZpeGVkMzFfMzJfbG4yKSk7CkBAIC00MjksNyArNDI5LDcgQEAgc3RydWN0 IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZXhwKAogCQlpZiAobSA+IDApCiAJCQlyZXR1cm4g ZGFsX2ZpeGVkMzFfMzJfc2hsKAogCQkJCWZpeGVkMzFfMzJfZXhwX2Zyb21fdGF5bG9yX3Nlcmll cyhyKSwKLQkJCQkodWludDhfdCltKTsKKwkJCQkodW5zaWduZWQgY2hhciltKTsKIAkJZWxzZQog CQkJcmV0dXJuIGRhbF9maXhlZDMxXzMyX2Rpdl9pbnQoCiAJCQkJZml4ZWQzMV8zMl9leHBfZnJv bV90YXlsb3Jfc2VyaWVzKHIpLApAQCAtNDgyLDUwICs0ODIsNTAgQEAgc3RydWN0IGZpeGVkMzFf MzIgZGFsX2ZpeGVkMzFfMzJfcG93KAogCQkJYXJnMikpOwogfQogCi1pbnQzMl90IGRhbF9maXhl ZDMxXzMyX2Zsb29yKAoraW50IGRhbF9maXhlZDMxXzMyX2Zsb29yKAogCXN0cnVjdCBmaXhlZDMx XzMyIGFyZykKIHsKLQl1aW50NjRfdCBhcmdfdmFsdWUgPSBhYnNfaTY0KGFyZy52YWx1ZSk7CisJ dW5zaWduZWQgbG9uZyBsb25nIGFyZ192YWx1ZSA9IGFic19pNjQoYXJnLnZhbHVlKTsKIAogCWlm IChhcmcudmFsdWUgPj0gMCkKLQkJcmV0dXJuIChpbnQzMl90KUdFVF9JTlRFR0VSX1BBUlQoYXJn X3ZhbHVlKTsKKwkJcmV0dXJuIChpbnQpR0VUX0lOVEVHRVJfUEFSVChhcmdfdmFsdWUpOwogCWVs c2UKLQkJcmV0dXJuIC0oaW50MzJfdClHRVRfSU5URUdFUl9QQVJUKGFyZ192YWx1ZSk7CisJCXJl dHVybiAtKGludClHRVRfSU5URUdFUl9QQVJUKGFyZ192YWx1ZSk7CiB9CiAKLWludDMyX3QgZGFs X2ZpeGVkMzFfMzJfcm91bmQoCitpbnQgZGFsX2ZpeGVkMzFfMzJfcm91bmQoCiAJc3RydWN0IGZp eGVkMzFfMzIgYXJnKQogewotCXVpbnQ2NF90IGFyZ192YWx1ZSA9IGFic19pNjQoYXJnLnZhbHVl KTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgYXJnX3ZhbHVlID0gYWJzX2k2NChhcmcudmFsdWUpOwog Ci0JY29uc3QgaW50NjRfdCBzdW1tYW5kID0gZGFsX2ZpeGVkMzFfMzJfaGFsZi52YWx1ZTsKKwlj b25zdCBsb25nIGxvbmcgc3VtbWFuZCA9IGRhbF9maXhlZDMxXzMyX2hhbGYudmFsdWU7CiAKLQlB U1NFUlQoTExPTkdfTUFYIC0gKGludDY0X3QpYXJnX3ZhbHVlID49IHN1bW1hbmQpOworCUFTU0VS VChMTE9OR19NQVggLSAobG9uZyBsb25nKWFyZ192YWx1ZSA+PSBzdW1tYW5kKTsKIAogCWFyZ192 YWx1ZSArPSBzdW1tYW5kOwogCiAJaWYgKGFyZy52YWx1ZSA+PSAwKQotCQlyZXR1cm4gKGludDMy X3QpR0VUX0lOVEVHRVJfUEFSVChhcmdfdmFsdWUpOworCQlyZXR1cm4gKGludClHRVRfSU5URUdF Ul9QQVJUKGFyZ192YWx1ZSk7CiAJZWxzZQotCQlyZXR1cm4gLShpbnQzMl90KUdFVF9JTlRFR0VS X1BBUlQoYXJnX3ZhbHVlKTsKKwkJcmV0dXJuIC0oaW50KUdFVF9JTlRFR0VSX1BBUlQoYXJnX3Zh bHVlKTsKIH0KIAotaW50MzJfdCBkYWxfZml4ZWQzMV8zMl9jZWlsKAoraW50IGRhbF9maXhlZDMx XzMyX2NlaWwoCiAJc3RydWN0IGZpeGVkMzFfMzIgYXJnKQogewotCXVpbnQ2NF90IGFyZ192YWx1 ZSA9IGFic19pNjQoYXJnLnZhbHVlKTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgYXJnX3ZhbHVlID0g YWJzX2k2NChhcmcudmFsdWUpOwogCi0JY29uc3QgaW50NjRfdCBzdW1tYW5kID0gZGFsX2ZpeGVk MzFfMzJfb25lLnZhbHVlIC0KKwljb25zdCBsb25nIGxvbmcgc3VtbWFuZCA9IGRhbF9maXhlZDMx XzMyX29uZS52YWx1ZSAtCiAJCWRhbF9maXhlZDMxXzMyX2Vwc2lsb24udmFsdWU7CiAKLQlBU1NF UlQoTExPTkdfTUFYIC0gKGludDY0X3QpYXJnX3ZhbHVlID49IHN1bW1hbmQpOworCUFTU0VSVChM TE9OR19NQVggLSAobG9uZyBsb25nKWFyZ192YWx1ZSA+PSBzdW1tYW5kKTsKIAogCWFyZ192YWx1 ZSArPSBzdW1tYW5kOwogCiAJaWYgKGFyZy52YWx1ZSA+PSAwKQotCQlyZXR1cm4gKGludDMyX3Qp R0VUX0lOVEVHRVJfUEFSVChhcmdfdmFsdWUpOworCQlyZXR1cm4gKGludClHRVRfSU5URUdFUl9Q QVJUKGFyZ192YWx1ZSk7CiAJZWxzZQotCQlyZXR1cm4gLShpbnQzMl90KUdFVF9JTlRFR0VSX1BB UlQoYXJnX3ZhbHVlKTsKKwkJcmV0dXJuIC0oaW50KUdFVF9JTlRFR0VSX1BBUlQoYXJnX3ZhbHVl KTsKIH0KIAogLyogdGhpcyBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgaGVscGVyIHRvIHRyYW5zbGF0 ZSBmaXhlZCBwb2ludCB2YWx1ZSB0bwpAQCAtNTM1LDE1ICs1MzUsMTUgQEAgaW50MzJfdCBkYWxf Zml4ZWQzMV8zMl9jZWlsKAogICogcGFydCBpbiAzMiBiaXRzLiBJdCBpcyB1c2VkIGluIGh3IHBy b2dyYW1taW5nIChzY2FsZXIpCiAgKi8KIAotc3RhdGljIGlubGluZSB1aW50MzJfdCB1eF9keSgK LQlpbnQ2NF90IHZhbHVlLAotCXVpbnQzMl90IGludGVnZXJfYml0cywKLQl1aW50MzJfdCBmcmFj dGlvbmFsX2JpdHMpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB1eF9keSgKKwlsb25nIGxv bmcgdmFsdWUsCisJdW5zaWduZWQgaW50IGludGVnZXJfYml0cywKKwl1bnNpZ25lZCBpbnQgZnJh Y3Rpb25hbF9iaXRzKQogewogCS8qIDEuIGNyZWF0ZSBtYXNrIG9mIGludGVnZXIgcGFydCAqLwot CXVpbnQzMl90IHJlc3VsdCA9ICgxIDw8IGludGVnZXJfYml0cykgLSAxOworCXVuc2lnbmVkIGlu dCByZXN1bHQgPSAoMSA8PCBpbnRlZ2VyX2JpdHMpIC0gMTsKIAkvKiAyLiBtYXNrIG91dCBmcmFj dGlvbmFsIHBhcnQgKi8KLQl1aW50MzJfdCBmcmFjdGlvbmFsX3BhcnQgPSBGUkFDVElPTkFMX1BB UlRfTUFTSyAmIHZhbHVlOworCXVuc2lnbmVkIGludCBmcmFjdGlvbmFsX3BhcnQgPSBGUkFDVElP TkFMX1BBUlRfTUFTSyAmIHZhbHVlOwogCS8qIDMuIHNocmluayBmaXhlZCBwb2ludCBpbnRlZ2Vy IHBhcnQgdG8gYmUgb2YgaW50ZWdlcl9iaXRzIHdpZHRoKi8KIAlyZXN1bHQgJj0gR0VUX0lOVEVH RVJfUEFSVCh2YWx1ZSk7CiAJLyogNC4gbWFrZSBzcGFjZSBmb3IgZnJhY3Rpb25hbCBwYXJ0IHRv IGJlIGZpbGxlZCBpbiBhZnRlciBpbnRlZ2VyICovCkBAIC01NTQsMTMgKzU1NCwxMyBAQCBzdGF0 aWMgaW5saW5lIHVpbnQzMl90IHV4X2R5KAogCXJldHVybiByZXN1bHQgfCBmcmFjdGlvbmFsX3Bh cnQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdWludDMyX3QgY2xhbXBfdXhfZHkoCi0JaW50NjRfdCB2 YWx1ZSwKLQl1aW50MzJfdCBpbnRlZ2VyX2JpdHMsCi0JdWludDMyX3QgZnJhY3Rpb25hbF9iaXRz LAotCXVpbnQzMl90IG1pbl9jbGFtcCkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNsYW1w X3V4X2R5KAorCWxvbmcgbG9uZyB2YWx1ZSwKKwl1bnNpZ25lZCBpbnQgaW50ZWdlcl9iaXRzLAor CXVuc2lnbmVkIGludCBmcmFjdGlvbmFsX2JpdHMsCisJdW5zaWduZWQgaW50IG1pbl9jbGFtcCkK IHsKLQl1aW50MzJfdCB0cnVuY2F0ZWRfdmFsID0gdXhfZHkodmFsdWUsIGludGVnZXJfYml0cywg ZnJhY3Rpb25hbF9iaXRzKTsKKwl1bnNpZ25lZCBpbnQgdHJ1bmNhdGVkX3ZhbCA9IHV4X2R5KHZh bHVlLCBpbnRlZ2VyX2JpdHMsIGZyYWN0aW9uYWxfYml0cyk7CiAKIAlpZiAodmFsdWUgPj0gKDFM TCA8PCAoaW50ZWdlcl9iaXRzICsgRklYRUQzMV8zMl9CSVRTX1BFUl9GUkFDVElPTkFMX1BBUlQp KSkKIAkJcmV0dXJuICgxIDw8IChpbnRlZ2VyX2JpdHMgKyBmcmFjdGlvbmFsX2JpdHMpKSAtIDE7 CkBAIC01NzAsMzUgKzU3MCwzNSBAQCBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGNsYW1wX3V4X2R5 KAogCQlyZXR1cm4gbWluX2NsYW1wOwogfQogCi11aW50MzJfdCBkYWxfZml4ZWQzMV8zMl91MmQx OSgKK3Vuc2lnbmVkIGludCBkYWxfZml4ZWQzMV8zMl91MmQxOSgKIAlzdHJ1Y3QgZml4ZWQzMV8z MiBhcmcpCiB7CiAJcmV0dXJuIHV4X2R5KGFyZy52YWx1ZSwgMiwgMTkpOwogfQogCi11aW50MzJf dCBkYWxfZml4ZWQzMV8zMl91MGQxOSgKK3Vuc2lnbmVkIGludCBkYWxfZml4ZWQzMV8zMl91MGQx OSgKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCiB7CiAJcmV0dXJuIHV4X2R5KGFyZy52YWx1ZSwg MCwgMTkpOwogfQogCi11aW50MzJfdCBkYWxfZml4ZWQzMV8zMl9jbGFtcF91MGQxNCgKK3Vuc2ln bmVkIGludCBkYWxfZml4ZWQzMV8zMl9jbGFtcF91MGQxNCgKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBh cmcpCiB7CiAJcmV0dXJuIGNsYW1wX3V4X2R5KGFyZy52YWx1ZSwgMCwgMTQsIDEpOwogfQogCi11 aW50MzJfdCBkYWxfZml4ZWQzMV8zMl9jbGFtcF91MGQxMCgKK3Vuc2lnbmVkIGludCBkYWxfZml4 ZWQzMV8zMl9jbGFtcF91MGQxMCgKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpCiB7CiAJcmV0dXJu IGNsYW1wX3V4X2R5KGFyZy52YWx1ZSwgMCwgMTAsIDEpOwogfQogCi1pbnQzMl90IGRhbF9maXhl ZDMxXzMyX3M0ZDE5KAoraW50IGRhbF9maXhlZDMxXzMyX3M0ZDE5KAogCXN0cnVjdCBmaXhlZDMx XzMyIGFyZykKIHsKIAlpZiAoYXJnLnZhbHVlIDwgMCkKLQkJcmV0dXJuIC0oaW50MzJfdCl1eF9k eShkYWxfZml4ZWQzMV8zMl9hYnMoYXJnKS52YWx1ZSwgNCwgMTkpOworCQlyZXR1cm4gLShpbnQp dXhfZHkoZGFsX2ZpeGVkMzFfMzJfYWJzKGFyZykudmFsdWUsIDQsIDE5KTsKIAllbHNlCiAJCXJl dHVybiB1eF9keShhcmcudmFsdWUsIDQsIDE5KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9pbmNsdWRlL2ZpeGVkMzFfMzIuaAppbmRleCAwZGUyNTg2MjJjMTIuLjE2Y2Jk YjQzZDg1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2luY2x1ZGUv Zml4ZWQzMV8zMi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9pbmNsdWRlL2Zp eGVkMzFfMzIuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBfX0RBTF9GSVhFRDMxXzMyX0hf XwogI2RlZmluZSBfX0RBTF9GSVhFRDMxXzMyX0hfXwogCi0jaW5jbHVkZSAib3NfdHlwZXMuaCIK LQogI2RlZmluZSBGSVhFRDMxXzMyX0JJVFNfUEVSX0ZSQUNUSU9OQUxfUEFSVCAzMgogCiAvKgpA QCAtNDQsNyArNDIsNyBAQAogICovCiAKIHN0cnVjdCBmaXhlZDMxXzMyIHsKLQlpbnQ2NF90IHZh bHVlOworCWxvbmcgbG9uZyB2YWx1ZTsKIH07CiAKIC8qCkBAIC03MywxNSArNzEsMTUgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2xuMl9kaXZfMiA9IHsg MTQ4ODUyMjIzNkxMIH07CiAgKiByZXN1bHQgPSBudW1lcmF0b3IgLyBkZW5vbWluYXRvcgogICov CiBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9mcm9tX2ZyYWN0aW9uKAotCWludDY0 X3QgbnVtZXJhdG9yLAotCWludDY0X3QgZGVub21pbmF0b3IpOworCWxvbmcgbG9uZyBudW1lcmF0 b3IsCisJbG9uZyBsb25nIGRlbm9taW5hdG9yKTsKIAogLyoKICAqIEBicmllZgogICogcmVzdWx0 ID0gYXJnCiAgKi8KLXN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2Zyb21faW50X25v bmNvbnN0KGludDY0X3QgYXJnKTsKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGZpeGVkMzFfMzIgZGFs X2ZpeGVkMzFfMzJfZnJvbV9pbnQoaW50NjRfdCBhcmcpCitzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxf Zml4ZWQzMV8zMl9mcm9tX2ludF9ub25jb25zdChsb25nIGxvbmcgYXJnKTsKK3N0YXRpYyBpbmxp bmUgc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZnJvbV9pbnQobG9uZyBsb25nIGFy ZykKIHsKIAlpZiAoX19idWlsdGluX2NvbnN0YW50X3AoYXJnKSkgewogCQlzdHJ1Y3QgZml4ZWQz MV8zMiByZXM7CkBAIC0yMTMsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZml4ZWQz MV8zMiBkYWxfZml4ZWQzMV8zMl9jbGFtcCgKICAqLwogc3RydWN0IGZpeGVkMzFfMzIgZGFsX2Zp eGVkMzFfMzJfc2hsKAogCXN0cnVjdCBmaXhlZDMxXzMyIGFyZywKLQl1aW50OF90IHNoaWZ0KTsK Kwl1bnNpZ25lZCBjaGFyIHNoaWZ0KTsKIAogLyoKICAqIEBicmllZgpAQCAtMjIxLDcgKzIxOSw3 IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3NobCgKICAqLwogc3RhdGljIGlu bGluZSBzdHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9zaHIoCiAJc3RydWN0IGZpeGVk MzFfMzIgYXJnLAotCXVpbnQ4X3Qgc2hpZnQpCisJdW5zaWduZWQgY2hhciBzaGlmdCkKIHsKIAlz dHJ1Y3QgZml4ZWQzMV8zMiByZXM7CiAJcmVzLnZhbHVlID0gYXJnLnZhbHVlID4+IHNoaWZ0OwpA QCAtMjQ2LDcgKzI0NCw3IEBAIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX2FkZCgK ICAqIHJlc3VsdCA9IGFyZzEgKyBhcmcyCiAgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpeGVk MzFfMzIgZGFsX2ZpeGVkMzFfMzJfYWRkX2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAotCQkJ CQkJICAgICAgIGludDMyX3QgYXJnMikKKwkJCQkJCSAgICAgICBpbnQgYXJnMikKIHsKIAlyZXR1 cm4gZGFsX2ZpeGVkMzFfMzJfYWRkKGFyZzEsCiAJCQkJICBkYWxfZml4ZWQzMV8zMl9mcm9tX2lu dChhcmcyKSk7CkBAIC0yNjUsNyArMjYzLDcgQEAgc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVk MzFfMzJfc3ViKAogICogcmVzdWx0ID0gYXJnMSAtIGFyZzIKICAqLwogc3RhdGljIGlubGluZSBz dHJ1Y3QgZml4ZWQzMV8zMiBkYWxfZml4ZWQzMV8zMl9zdWJfaW50KHN0cnVjdCBmaXhlZDMxXzMy IGFyZzEsCi0JCQkJCQkgICAgICAgaW50MzJfdCBhcmcyKQorCQkJCQkJICAgICAgIGludCBhcmcy KQogewogCXJldHVybiBkYWxfZml4ZWQzMV8zMl9zdWIoYXJnMSwKIAkJCQkgIGRhbF9maXhlZDMx XzMyX2Zyb21faW50KGFyZzIpKTsKQEAgLTI5MSw3ICsyODksNyBAQCBzdHJ1Y3QgZml4ZWQzMV8z MiBkYWxfZml4ZWQzMV8zMl9tdWwoCiAgKiByZXN1bHQgPSBhcmcxICogYXJnMgogICovCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX211bF9pbnQoc3RydWN0 IGZpeGVkMzFfMzIgYXJnMSwKLQkJCQkJCSAgICAgICBpbnQzMl90IGFyZzIpCisJCQkJCQkgICAg ICAgaW50IGFyZzIpCiB7CiAJcmV0dXJuIGRhbF9maXhlZDMxXzMyX211bChhcmcxLAogCQkJCSAg ZGFsX2ZpeGVkMzFfMzJfZnJvbV9pbnQoYXJnMikpOwpAQCAtMzA5LDcgKzMwNyw3IEBAIHN0cnVj dCBmaXhlZDMxXzMyIGRhbF9maXhlZDMxXzMyX3NxcigKICAqIHJlc3VsdCA9IGFyZzEgLyBhcmcy CiAgKi8KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZpeGVkMzFfMzIgZGFsX2ZpeGVkMzFfMzJfZGl2 X2ludChzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcxLAotCQkJCQkJICAgICAgIGludDY0X3QgYXJnMikK KwkJCQkJCSAgICAgICBsb25nIGxvbmcgYXJnMikKIHsKIAlyZXR1cm4gZGFsX2ZpeGVkMzFfMzJf ZnJvbV9mcmFjdGlvbihhcmcxLnZhbHVlLAogCQkJCQkgICAgZGFsX2ZpeGVkMzFfMzJfZnJvbV9p bnQoYXJnMikudmFsdWUpOwpAQCAtNDM0LDIxICs0MzIsMjEgQEAgc3RydWN0IGZpeGVkMzFfMzIg ZGFsX2ZpeGVkMzFfMzJfcG93KAogICogQGJyaWVmCiAgKiByZXN1bHQgPSBmbG9vcihhcmcpIDo9 IGdyZWF0ZXN0IGludGVnZXIgbG93ZXIgdGhhbiBvciBlcXVhbCB0byBhcmcKICAqLwotaW50MzJf dCBkYWxfZml4ZWQzMV8zMl9mbG9vcigKK2ludCBkYWxfZml4ZWQzMV8zMl9mbG9vcigKIAlzdHJ1 Y3QgZml4ZWQzMV8zMiBhcmcpOwogCiAvKgogICogQGJyaWVmCiAgKiByZXN1bHQgPSByb3VuZChh cmcpIDo9IGludGVnZXIgbmVhcmVzdCB0byBhcmcKICAqLwotaW50MzJfdCBkYWxfZml4ZWQzMV8z Ml9yb3VuZCgKK2ludCBkYWxfZml4ZWQzMV8zMl9yb3VuZCgKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBh cmcpOwogCiAvKgogICogQGJyaWVmCiAgKiByZXN1bHQgPSBjZWlsKGFyZykgOj0gbG93ZXN0IGlu dGVnZXIgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGFyZwogICovCi1pbnQzMl90IGRhbF9maXhl ZDMxXzMyX2NlaWwoCitpbnQgZGFsX2ZpeGVkMzFfMzJfY2VpbCgKIAlzdHJ1Y3QgZml4ZWQzMV8z MiBhcmcpOwogCiAvKiB0aGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbiBhcmUgdXNlZCBpbiBzY2Fs ZXIgaHcgcHJvZ3JhbW1pbmcgdG8gY29udmVydCBmaXhlZApAQCAtNDU3LDIwICs0NTUsMjAgQEAg aW50MzJfdCBkYWxfZml4ZWQzMV8zMl9jZWlsKAogICogZnJhY3Rpb25hbAogICovCiAKLXVpbnQz Ml90IGRhbF9maXhlZDMxXzMyX3UyZDE5KAordW5zaWduZWQgaW50IGRhbF9maXhlZDMxXzMyX3Uy ZDE5KAogCXN0cnVjdCBmaXhlZDMxXzMyIGFyZyk7CiAKLXVpbnQzMl90IGRhbF9maXhlZDMxXzMy X3UwZDE5KAordW5zaWduZWQgaW50IGRhbF9maXhlZDMxXzMyX3UwZDE5KAogCXN0cnVjdCBmaXhl ZDMxXzMyIGFyZyk7CiAKIAotdWludDMyX3QgZGFsX2ZpeGVkMzFfMzJfY2xhbXBfdTBkMTQoCit1 bnNpZ25lZCBpbnQgZGFsX2ZpeGVkMzFfMzJfY2xhbXBfdTBkMTQoCiAJc3RydWN0IGZpeGVkMzFf MzIgYXJnKTsKIAotdWludDMyX3QgZGFsX2ZpeGVkMzFfMzJfY2xhbXBfdTBkMTAoCit1bnNpZ25l ZCBpbnQgZGFsX2ZpeGVkMzFfMzJfY2xhbXBfdTBkMTAoCiAJc3RydWN0IGZpeGVkMzFfMzIgYXJn KTsKIAotaW50MzJfdCBkYWxfZml4ZWQzMV8zMl9zNGQxOSgKK2ludCBkYWxfZml4ZWQzMV8zMl9z NGQxOSgKIAlzdHJ1Y3QgZml4ZWQzMV8zMiBhcmcpOwogCiAjZW5kaWYKLS0gCjIuMTUuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==