From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [V2,1/2] rasdaemon: add support for non standard CPER section events From: Tyler Baicar Message-Id: <1496439633-23155-2-git-send-email-tbaicar@codeaurora.org> Date: Fri, 2 Jun 2017 15:40:32 -0600 To: mchehab@osg.samsung.com, linux-edac@vger.kernel.org, astone@redhat.com, fu.wei@linaro.org, shiju.jose@huawei.com Cc: Tyler Baicar List-ID: QWRkIHN1cHBvcnQgdG8gaGFuZGxlIHRoZSBub24gc3RhbmRhcmQgQ1BFUiBzZWN0aW9uIGtlcm5l bCB0cmFjZQpldmVudHMgd2hpY2ggY292ZXIgUkFTIGVycm9ycyB3aG8ncyBzZWN0aW9uIHR5cGUg aXMgdW5rbm93bi4KClNpZ25lZC1vZmYtYnk6IFR5bGVyIEJhaWNhciA8dGJhaWNhckBjb2RlYXVy b3JhLm9yZz4KQ2M6IFNoaWp1IEpvc2UgPHNoaWp1Lmpvc2VAaHVhd2VpLmNvbT4KLS0tCiBNYWtl ZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAgMyArCiBjb25maWd1cmUuYWMgICAgICAgICAgICAg ICB8ICAgOSArKysKIHJhcy1ldmVudHMuYyAgICAgICAgICAgICAgIHwgIDE1ICsrKysrCiByYXMt ZXZlbnRzLmggICAgICAgICAgICAgICB8ICAgOCArKysKIHJhcy1ub24tc3RhbmRhcmQtaGFuZGxl ci5jIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog cmFzLW5vbi1zdGFuZGFyZC1oYW5kbGVyLmggfCAgMjYgKysrKysrKysKIHJhcy1yZWNvcmQuYyAg ICAgICAgICAgICAgIHwgIDU5ICsrKysrKysrKysrKysrKysrKwogcmFzLXJlY29yZC5oICAgICAg ICAgICAgICAgfCAgMTUgKysrKysKIHJhcy1yZXBvcnQuYyAgICAgICAgICAgICAgIHwgIDgyICsr KysrKysrKysrKysrKysrKysrKysrKysKIHJhcy1yZXBvcnQuaCAgICAgICAgICAgICAgIHwgIDE4 ICsrKysrLQogMTAgZmlsZXMgY2hhbmdlZCwgMzgxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCByYXMtbm9uLXN0YW5kYXJkLWhhbmRsZXIuYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHJhcy1ub24tc3RhbmRhcmQtaGFuZGxlci5oCgpkaWZmIC0tZ2l0IGEvTWFr ZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCBjOWU0NDgxLi4xYmMyNWU0IDEwMDY0NAotLS0g YS9NYWtlZmlsZS5hbQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMjQsNiArMjQsOSBAQCBlbmRpZgog aWYgV0lUSF9BRVIKICAgIHJhc2RhZW1vbl9TT1VSQ0VTICs9IHJhcy1hZXItaGFuZGxlci5jCiBl bmRpZgoraWYgV0lUSF9OT05fU1RBTkRBUkQKKyAgIHJhc2RhZW1vbl9TT1VSQ0VTICs9IHJhcy1u b24tc3RhbmRhcmQtaGFuZGxlci5jCitlbmRpZgogaWYgV0lUSF9NQ0UKICAgIHJhc2RhZW1vbl9T T1VSQ0VTICs9IHJhcy1tY2UtaGFuZGxlci5jIG1jZS1pbnRlbC5jIG1jZS1hbWQtazguYyBcCiAJ CQltY2UtaW50ZWwtcDQtcDYuYyBtY2UtaW50ZWwtbmVoYWxlbS5jIFwKZGlmZiAtLWdpdCBhL2Nv bmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA1NTlmNzBhLi4yYWRiNzk4IDEwMDY0NAot LS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC00NCw2ICs0NCwxNSBAQCBB U19JRihbdGVzdCAieCRlbmFibGVfYWVyIiA9ICJ4eWVzIl0sIFsKIF0pCiBBTV9DT05ESVRJT05B TChbV0lUSF9BRVJdLCBbdGVzdCB4JGVuYWJsZV9hZXIgPSB4eWVzXSkKIAorQUNfQVJHX0VOQUJM RShbbm9uX3N0YW5kYXJkXSwKKyAgICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbm9uLXN0YW5k YXJkXSwgW2VuYWJsZSBOT05fU1RBTkRBUkQgZXZlbnRzIChjdXJyZW50bHkgZXhwZXJpbWVudGFs KV0pKQorCitBU19JRihbdGVzdCAieCRlbmFibGVfbm9uX3N0YW5kYXJkIiA9ICJ4eWVzIl0sIFsK KyAgQUNfREVGSU5FKEhBVkVfTk9OX1NUQU5EQVJELDEsImhhdmUgVU5LTk9XTl9TRUMgZXZlbnRz IGNvbGxlY3QiKQorICBBQ19TVUJTVChbV0lUSF9OT05fU1RBTkRBUkRdKQorXSkKK0FNX0NPTkRJ VElPTkFMKFtXSVRIX05PTl9TVEFOREFSRF0sIFt0ZXN0IHgkZW5hYmxlX25vbl9zdGFuZGFyZCA9 IHh5ZXNdKQorCiBBQ19BUkdfRU5BQkxFKFttY2VdLAogICAgIEFTX0hFTFBfU1RSSU5HKFstLWVu YWJsZS1tY2VdLCBbZW5hYmxlIE1DRSBldmVudHMgKGN1cnJlbnRseSBleHBlcmltZW50YWwpXSkp CiAKZGlmZiAtLWdpdCBhL3Jhcy1ldmVudHMuYyBiL3Jhcy1ldmVudHMuYwppbmRleCAwYmU3YzNm Li45NmFhNmYxIDEwMDY0NAotLS0gYS9yYXMtZXZlbnRzLmMKKysrIGIvcmFzLWV2ZW50cy5jCkBA IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAibGlidHJhY2UvZXZlbnQtcGFyc2UuaCIKICNpbmNs dWRlICJyYXMtbWMtaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1hZXItaGFuZGxlci5oIgorI2lu Y2x1ZGUgInJhcy1ub24tc3RhbmRhcmQtaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1tY2UtaGFu ZGxlci5oIgogI2luY2x1ZGUgInJhcy1leHRsb2ctaGFuZGxlci5oIgogI2luY2x1ZGUgInJhcy1y ZWNvcmQuaCIKQEAgLTIwOCw2ICsyMDksMTAgQEAgaW50IHRvZ2dsZV9yYXNfbWNfZXZlbnQoaW50 IGVuYWJsZSkKIAlyYyB8PSBfX3RvZ2dsZV9yYXNfbWNfZXZlbnQocmFzLCAicmFzIiwgImV4dGxv Z19tZW1fZXZlbnQiLCBlbmFibGUpOwogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX05PTl9TVEFOREFS RAorCXJjIHw9IF9fdG9nZ2xlX3Jhc19tY19ldmVudChyYXMsICJyYXMiLCAibm9uX3N0YW5kYXJk X2V2ZW50IiwgZW5hYmxlKTsKKyNlbmRpZgorCiBmcmVlX3JhczoKIAlmcmVlKHJhcyk7CiAJcmV0 dXJuIHJjOwpAQCAtNjc2LDYgKzY4MSwxNiBAQCBpbnQgaGFuZGxlX3Jhc19ldmVudHMoaW50IHJl Y29yZF9ldmVudHMpCiAJCSAgICAicmFzIiwgImFlcl9ldmVudCIpOwogI2VuZGlmCiAKKyNpZmRl ZiBIQVZFX05PTl9TVEFOREFSRAorICAgICAgICByYyA9IGFkZF9ldmVudF9oYW5kbGVyKHJhcywg cGV2ZW50LCBwYWdlX3NpemUsICJyYXMiLCAibm9uX3N0YW5kYXJkX2V2ZW50IiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByYXNfbm9uX3N0YW5kYXJkX2V2ZW50X2hhbmRsZXIpOwor ICAgICAgICBpZiAoIXJjKQorICAgICAgICAgICAgICAgIG51bV9ldmVudHMrKzsKKyAgICAgICAg ZWxzZQorICAgICAgICAgICAgICAgIGxvZyhBTEwsIExPR19FUlIsICJDYW4ndCBnZXQgdHJhY2Vz IGZyb20gJXM6JXNcbiIsCisgICAgICAgICAgICAgICAgICAgICJyYXMiLCAibm9uX3N0YW5kYXJk X2V2ZW50Iik7CisjZW5kaWYKKwogCWNwdXMgPSBnZXRfbnVtX2NwdXMocmFzKTsKIAogI2lmZGVm IEhBVkVfTUNFCmRpZmYgLS1naXQgYS9yYXMtZXZlbnRzLmggYi9yYXMtZXZlbnRzLmgKaW5kZXgg NjRlMDQ1YS4uM2UxMDA4ZiAxMDA2NDQKLS0tIGEvcmFzLWV2ZW50cy5oCisrKyBiL3Jhcy1ldmVu dHMuaApAQCAtNjgsNiArNjgsMTQgQEAgZW51bSBod19ldmVudF9tY19lcnJfdHlwZSB7CiAJSFdf RVZFTlRfRVJSX0lORk8sCiB9OwogCisvKiBTaG91bGQgbWF0Y2ggdGhlIGNvZGUgYXQgS2VybmVs J3MgaW5jbHVkZS9hY3BpL2doZXMuaCAqLworZW51bSBnaGVzX3NldmVyaXR5IHsKKwlHSEVTX1NF Vl9OTywKKwlHSEVTX1NFVl9DT1JSRUNURUQsCisJR0hFU19TRVZfUkVDT1ZFUkFCTEUsCisJR0hF U19TRVZfUEFOSUMsCit9OworCiAvKiBGdW5jdGlvbiBwcm90b3R5cGVzICovCiBpbnQgdG9nZ2xl X3Jhc19tY19ldmVudChpbnQgZW5hYmxlKTsKIGludCBoYW5kbGVfcmFzX2V2ZW50cyhpbnQgcmVj b3JkX2V2ZW50cyk7CmRpZmYgLS1naXQgYS9yYXMtbm9uLXN0YW5kYXJkLWhhbmRsZXIuYyBiL3Jh cy1ub24tc3RhbmRhcmQtaGFuZGxlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjcyZTA3OTgKLS0tIC9kZXYvbnVsbAorKysgYi9yYXMtbm9uLXN0YW5kYXJkLWhhbmRsZXIu YwpAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiwgVGhlIExpbnV4 IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAq IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVy c2lvbiAyIGFuZAorICogb25seSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24uCisKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKworI2luY2x1 ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+Cisj aW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSAibGlidHJhY2Uva2J1ZmZlci5oIgorI2luY2x1 ZGUgInJhcy1ub24tc3RhbmRhcmQtaGFuZGxlci5oIgorI2luY2x1ZGUgInJhcy1yZWNvcmQuaCIK KyNpbmNsdWRlICJyYXMtbG9nZ2VyLmgiCisjaW5jbHVkZSAicmFzLXJlcG9ydC5oIgorCit2b2lk IHByaW50X2xlX2hleChzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjb25zdCB1aW50OF90ICpidWYsIGlu dCBpbmRleCkgeworCXRyYWNlX3NlcV9wcmludGYocywgIiUwMnglMDJ4JTAyeCUwMngiLCBidWZb aW5kZXgrM10sIGJ1ZltpbmRleCsyXSwgYnVmW2luZGV4KzFdLCBidWZbaW5kZXhdKTsKK30KKwor c3RhdGljIGNoYXIgKnV1aWRfbGUoY29uc3QgY2hhciAqdXUpCit7CisJc3RhdGljIGNoYXIgdXVp ZFtzaXplb2YoInh4eHh4eHh4LXh4eHgteHh4eC14eHh4LXh4eHh4eHh4eHh4eCIpXTsKKwljaGFy ICpwID0gdXVpZDsKKwlpbnQgaTsKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBsZVsxNl0g PSB7MywyLDEsMCw1LDQsNyw2LDgsOSwxMCwxMSwxMiwxMywxNCwxNX07CisKKwlmb3IgKGkgPSAw OyBpIDwgMTY7IGkrKykgeworCQlwICs9IHNwcmludGYocCwgIiUuMngiLCB1dVtsZVtpXV0pOwor CQlzd2l0Y2ggKGkpIHsKKwkJY2FzZSAzOgorCQljYXNlIDU6CisJCWNhc2UgNzoKKwkJY2FzZSA5 OgorCQkJKnArKyA9ICctJzsKKwkJCWJyZWFrOworCQl9CisJfQorCisJKnAgPSAwOworCisJcmV0 dXJuIHV1aWQ7Cit9CisKK2ludCByYXNfbm9uX3N0YW5kYXJkX2V2ZW50X2hhbmRsZXIoc3RydWN0 IHRyYWNlX3NlcSAqcywKKwkJCSBzdHJ1Y3QgcGV2ZW50X3JlY29yZCAqcmVjb3JkLAorCQkJIHN0 cnVjdCBldmVudF9mb3JtYXQgKmV2ZW50LCB2b2lkICpjb250ZXh0KQoreworCWludCBsZW4sIGks IGxpbmVfY291bnQ7CisJdW5zaWduZWQgbG9uZyBsb25nIHZhbDsKKwlzdHJ1Y3QgcmFzX2V2ZW50 cyAqcmFzID0gY29udGV4dDsKKwl0aW1lX3Qgbm93OworCXN0cnVjdCB0bSAqdG07CisJc3RydWN0 IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgZXY7CisKKwkvKgorCSAqIE5ld2VyIGtlcm5lbHMgKDMu MTAtcmMxIG9yIHVwcGVyKSBwcm92aWRlIGFuIHVwdGltZSBjbG9jay4KKwkgKiBPbiBwcmV2aW91 cyBrZXJuZWxzLCB0aGUgd2F5IHRvIHByb3Blcmx5IGdlbmVyYXRlIGFuIGV2ZW50IHdvdWxkCisJ ICogYmUgdG8gaW5qZWN0IGEgZmFrZSBvbmUsIG1lYXN1cmUgaXRzIHRpbWVzdGFtcCBhbmQgZGlm ZiBpdCBhZ2FpbnN0CisJICogZ2V0dGltZW9mZGF5LiBXZSB3b24ndCBkbyBpdCBoZXJlLiBJbnN0 ZWFkLCBsZXQncyB1c2UgdXB0aW1lLAorCSAqIGZhbGxpbmctYmFjayB0byB0aGUgZXZlbnQgcmVw b3J0J3MgdGltZSwgaWYgInVwdGltZSIgY2xvY2sgaXMKKwkgKiBub3QgYXZhaWxhYmxlIChsZWdh Y3kga2VybmVscykuCisJICovCisKKwlpZiAocmFzLT51c2VfdXB0aW1lKQorCQlub3cgPSByZWNv cmQtPnRzL3VzZXJfaHogKyByYXMtPnVwdGltZV9kaWZmOworCWVsc2UKKwkJbm93ID0gdGltZShO VUxMKTsKKworCXRtID0gbG9jYWx0aW1lKCZub3cpOworCWlmICh0bSkKKwkJc3RyZnRpbWUoZXYu dGltZXN0YW1wLCBzaXplb2YoZXYudGltZXN0YW1wKSwKKwkJCSAiJVktJW0tJWQgJUg6JU06JVMg JXoiLCB0bSk7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJXMgIiwgZXYudGltZXN0YW1wKTsKKwor CWlmIChwZXZlbnRfZ2V0X2ZpZWxkX3ZhbChzLCBldmVudCwgInNldiIsIHJlY29yZCwgJnZhbCwg MSkgPCAwKQorCQlyZXR1cm4gLTE7CisJc3dpdGNoICh2YWwpIHsKKwljYXNlIEdIRVNfU0VWX05P OgorCQlldi5zZXZlcml0eSA9ICJJbmZvcm1hdGlvbmFsIjsKKwkJYnJlYWs7CisJY2FzZSBHSEVT X1NFVl9DT1JSRUNURUQ6CisJCWV2LnNldmVyaXR5ID0gIkNvcnJlY3RlZCI7CisJCWJyZWFrOwor CWNhc2UgR0hFU19TRVZfUkVDT1ZFUkFCTEU6CisJCWV2LnNldmVyaXR5ID0gIlJlY292ZXJhYmxl IjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwljYXNlIEdIRVNfU0VWX1BBTklDOgorCQlldi5zZXZl cml0eSA9ICJGYXRhbCI7CisJfQorCXRyYWNlX3NlcV9wdXRzKHMsIGV2LnNldmVyaXR5KTsKKwor CWV2LnNlY190eXBlID0gcGV2ZW50X2dldF9maWVsZF9yYXcocywgZXZlbnQsICJzZWNfdHlwZSIs IHJlY29yZCwgJmxlbiwgMSk7CisJaWYoIWV2LnNlY190eXBlKQorCQlyZXR1cm4gLTE7CisJdHJh Y2Vfc2VxX3ByaW50ZihzLCAiXG4gc2VjdGlvbiB0eXBlOiAlcyIsIHV1aWRfbGUoZXYuc2VjX3R5 cGUpKTsKKwlldi5mcnVfdGV4dCA9IHBldmVudF9nZXRfZmllbGRfcmF3KHMsIGV2ZW50LCAiZnJ1 X3RleHQiLAorCQkJCQkJcmVjb3JkLCAmbGVuLCAxKTsKKwlldi5mcnVfaWQgPSBwZXZlbnRfZ2V0 X2ZpZWxkX3JhdyhzLCBldmVudCwgImZydV9pZCIsCisJCQkJCQlyZWNvcmQsICZsZW4sIDEpOwor CXRyYWNlX3NlcV9wcmludGYocywgIiBmcnUgdGV4dDogJXMgZnJ1IGlkOiAlcyAiLAorCQkJCWV2 LmZydV90ZXh0LAorCQkJCXV1aWRfbGUoZXYuZnJ1X2lkKSk7CisKKwlpZiAocGV2ZW50X2dldF9m aWVsZF92YWwocywgZXZlbnQsICJsZW4iLCByZWNvcmQsICZ2YWwsIDEpIDwgMCkKKwkJcmV0dXJu IC0xOworCWV2Lmxlbmd0aCA9IHZhbDsKKwl0cmFjZV9zZXFfcHJpbnRmKHMsICJcbiBsZW5ndGg6 ICVkXG4iLCBldi5sZW5ndGgpOworCisJZXYuZXJyb3IgPSBwZXZlbnRfZ2V0X2ZpZWxkX3Jhdyhz LCBldmVudCwgImJ1ZiIsIHJlY29yZCwgJmxlbiwgMSk7CisJaWYoIWV2LmVycm9yKQorCQlyZXR1 cm4gLTE7CisJbGVuID0gZXYubGVuZ3RoOworCWkgPSAwOworCWxpbmVfY291bnQgPSAwOworCXRy YWNlX3NlcV9wcmludGYocywgIiBlcnJvcjpcbiAgJTA4eDogIiwgaSk7CisJd2hpbGUobGVuID49 IDQpIHsKKwkJcHJpbnRfbGVfaGV4KHMsIGV2LmVycm9yLCBpKTsKKwkJaSs9NDsKKwkJbGVuLT00 OworCQlpZigrK2xpbmVfY291bnQgPT0gNCkgeworCQkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiXG4g ICUwOHg6ICIsIGkpOworCQkJbGluZV9jb3VudCA9IDA7CisJCX0gZWxzZQorCQkJdHJhY2Vfc2Vx X3ByaW50ZihzLCAiICIpOworCX0KKworCS8qIEluc2VydCBkYXRhIGludG8gdGhlIFNHQkQgKi8K KyNpZmRlZiBIQVZFX1NRTElURTMKKwlyYXNfc3RvcmVfbm9uX3N0YW5kYXJkX3JlY29yZChyYXMs ICZldik7CisjZW5kaWYKKworI2lmZGVmIEhBVkVfQUJSVF9SRVBPUlQKKwkvKiBSZXBvcnQgZXZl bnQgdG8gQUJSVCAqLworCXJhc19yZXBvcnRfbm9uX3N0YW5kYXJkX3JlY29yZChyYXMsICZldik7 CisjZW5kaWYKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvcmFzLW5vbi1zdGFuZGFyZC1o YW5kbGVyLmggYi9yYXMtbm9uLXN0YW5kYXJkLWhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yYjVhYzM1Ci0tLSAvZGV2L251bGwKKysrIGIvcmFzLW5vbi1zdGFu ZGFyZC1oYW5kbGVyLmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx NiwgVGhlIExpbnV4IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgdmVyc2lvbiAyIGFuZAorICogb25seSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg Ki8KKworI2lmbmRlZiBfX1JBU19OT05fU1RBTkRBUkRfSEFORExFUl9ICisjZGVmaW5lIF9fUkFT X05PTl9TVEFOREFSRF9IQU5ETEVSX0gKKworI2luY2x1ZGUgInJhcy1ldmVudHMuaCIKKyNpbmNs dWRlICJsaWJ0cmFjZS9ldmVudC1wYXJzZS5oIgorCitpbnQgcmFzX25vbl9zdGFuZGFyZF9ldmVu dF9oYW5kbGVyKHN0cnVjdCB0cmFjZV9zZXEgKnMsCisJCQkgc3RydWN0IHBldmVudF9yZWNvcmQg KnJlY29yZCwKKwkJCSBzdHJ1Y3QgZXZlbnRfZm9ybWF0ICpldmVudCwgdm9pZCAqY29udGV4dCk7 CisKK3ZvaWQgcHJpbnRfbGVfaGV4KHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IHVpbnQ4X3Qg KmJ1ZiwgaW50IGluZGV4KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9yYXMtcmVjb3JkLmMgYi9y YXMtcmVjb3JkLmMKaW5kZXggM2RjNDQ5My4uMzU3YWI2MSAxMDA2NDQKLS0tIGEvcmFzLXJlY29y ZC5jCisrKyBiL3Jhcy1yZWNvcmQuYwpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg KEMpIDIwMTMgTWF1cm8gQ2FydmFsaG8gQ2hlaGFiIDxtY2hlaGFiQHJlZGhhdC5jb20+CisgKiBD b3B5cmlnaHQgKGMpIDIwMTYsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTU3LDYgKzE1OCw1 NyBAQCBpbnQgcmFzX3N0b3JlX2Flcl9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1 Y3QgcmFzX2Flcl9ldmVudCAqZXYpCiB9CiAjZW5kaWYKIAorLyoKKyAqIFRhYmxlIGFuZCBmdW5j dGlvbnMgdG8gaGFuZGxlIHJhczpub24gc3RhbmRhcmQKKyAqLworCisjaWZkZWYgSEFWRV9OT05f U1RBTkRBUkQKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGJfZmllbGRzIG5vbl9zdGFuZGFyZF9ldmVu dF9maWVsZHNbXSA9IHsKKwkJeyAubmFtZT0iaWQiLAkJCS50eXBlPSJJTlRFR0VSIFBSSU1BUlkg S0VZIiB9LAorCQl7IC5uYW1lPSJ0aW1lc3RhbXAiLAkJLnR5cGU9IlRFWFQiIH0sCisJCXsgLm5h bWU9InNlY190eXBlIiwJCS50eXBlPSJCTE9CIiB9LAorCQl7IC5uYW1lPSJmcnVfaWQiLAkJLnR5 cGU9IkJMT0IiIH0sCisJCXsgLm5hbWU9ImZydV90ZXh0IiwJCS50eXBlPSJURVhUIiB9LAorCQl7 IC5uYW1lPSJzZXZlcml0eSIsCQkudHlwZT0iVEVYVCIgfSwKKwkJeyAubmFtZT0iZXJyb3IiLAkJ LnR5cGU9IkJMT0IiIH0sCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRiX3RhYmxlX2Rlc2Ny aXB0b3Igbm9uX3N0YW5kYXJkX2V2ZW50X3RhYiA9IHsKKwkubmFtZSA9ICJub25fc3RhbmRhcmRf ZXZlbnQiLAorCS5maWVsZHMgPSBub25fc3RhbmRhcmRfZXZlbnRfZmllbGRzLAorCS5udW1fZmll bGRzID0gQVJSQVlfU0laRShub25fc3RhbmRhcmRfZXZlbnRfZmllbGRzKSwKK307CisKK2ludCBy YXNfc3RvcmVfbm9uX3N0YW5kYXJkX3JlY29yZChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1 Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAqZXYpCit7CisJaW50IHJjOworCXN0cnVjdCBzcWxp dGUzX3ByaXYgKnByaXYgPSByYXMtPmRiX3ByaXY7CisKKwlpZiAoIXByaXYgfHwgIXByaXYtPnN0 bXRfbm9uX3N0YW5kYXJkX3JlY29yZCkKKwkJcmV0dXJuIDA7CisJbG9nKFRFUk0sIExPR19JTkZP LCAibm9uX3N0YW5kYXJkX2V2ZW50IHN0b3JlOiAlcFxuIiwgcHJpdi0+c3RtdF9ub25fc3RhbmRh cmRfcmVjb3JkKTsKKworCXNxbGl0ZTNfYmluZF90ZXh0IChwcml2LT5zdG10X25vbl9zdGFuZGFy ZF9yZWNvcmQsICAxLCBldi0+dGltZXN0YW1wLCAtMSwgTlVMTCk7CisJc3FsaXRlM19iaW5kX2Js b2IgKHByaXYtPnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZCwgIDIsIGV2LT5zZWNfdHlwZSwgLTEs IE5VTEwpOworCXNxbGl0ZTNfYmluZF9ibG9iIChwcml2LT5zdG10X25vbl9zdGFuZGFyZF9yZWNv cmQsICAzLCBldi0+ZnJ1X2lkLCAxNiwgTlVMTCk7CisJc3FsaXRlM19iaW5kX3RleHQgKHByaXYt PnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZCwgIDQsIGV2LT5mcnVfdGV4dCwgLTEsIE5VTEwpOwor CXNxbGl0ZTNfYmluZF90ZXh0IChwcml2LT5zdG10X25vbl9zdGFuZGFyZF9yZWNvcmQsICA1LCBl di0+c2V2ZXJpdHksIC0xLCBOVUxMKTsKKwlzcWxpdGUzX2JpbmRfYmxvYiAocHJpdi0+c3RtdF9u b25fc3RhbmRhcmRfcmVjb3JkLCAgNiwgZXYtPmVycm9yLCBldi0+bGVuZ3RoLCBOVUxMKTsKKwor CXJjID0gc3FsaXRlM19zdGVwKHByaXYtPnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZCk7CisJaWYg KHJjICE9IFNRTElURV9PSyAmJiByYyAhPSBTUUxJVEVfRE9ORSkKKwkJbG9nKFRFUk0sIExPR19F UlIsCisJCSAgICAiRmFpbGVkIHRvIGRvIG5vbl9zdGFuZGFyZF9ldmVudCBzdGVwIG9uIHNxbGl0 ZTogZXJyb3IgPSAlZFxuIiwgcmMpOworCXJjID0gc3FsaXRlM19yZXNldChwcml2LT5zdG10X25v bl9zdGFuZGFyZF9yZWNvcmQpOworCWlmIChyYyAhPSBTUUxJVEVfT0sgJiYgcmMgIT0gU1FMSVRF X0RPTkUpCisJCWxvZyhURVJNLCBMT0dfRVJSLAorCQkgICAgIkZhaWxlZCByZXNldCBub25fc3Rh bmRhcmRfZXZlbnQgb24gc3FsaXRlOiBlcnJvciA9ICVkXG4iLCByYyk7CisJbG9nKFRFUk0sIExP R19JTkZPLCAicmVnaXN0ZXIgaW5zZXJ0ZWQgYXQgZGJcbiIpOworCisJcmV0dXJuIHJjOworfQor I2VuZGlmCisKICNpZmRlZiBIQVZFX0VYVExPRwogc3RhdGljIGNvbnN0IHN0cnVjdCBkYl9maWVs ZHMgZXh0bG9nX2V2ZW50X2ZpZWxkc1tdID0gewogCQl7IC5uYW1lPSJpZCIsCQkJLnR5cGU9IklO VEVHRVIgUFJJTUFSWSBLRVkiIH0sCkBAIC00NTAsNiArNTAyLDEzIEBAIGludCByYXNfbWNfZXZl bnRfb3BlbmRiKHVuc2lnbmVkIGNwdSwgc3RydWN0IHJhc19ldmVudHMgKnJhcykKIAkJCQkJICZt Y2VfcmVjb3JkX3RhYik7CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfTk9OX1NUQU5EQVJECisJcmMg PSByYXNfbWNfY3JlYXRlX3RhYmxlKHByaXYsICZub25fc3RhbmRhcmRfZXZlbnRfdGFiKTsKKwlp ZiAocmMgPT0gU1FMSVRFX09LKQorCQlyYyA9IHJhc19tY19wcmVwYXJlX3N0bXQocHJpdiwgJnBy aXYtPnN0bXRfbm9uX3N0YW5kYXJkX3JlY29yZCwKKwkJCQkJJm5vbl9zdGFuZGFyZF9ldmVudF90 YWIpOworI2VuZGlmCisKIAkJcmFzLT5kYl9wcml2ID0gcHJpdjsKIAlyZXR1cm4gMDsKIH0KZGlm ZiAtLWdpdCBhL3Jhcy1yZWNvcmQuaCBiL3Jhcy1yZWNvcmQuaAppbmRleCA1ZDg0Mjk3Li40NzNh ZTQwIDEwMDY0NAotLS0gYS9yYXMtcmVjb3JkLmgKKysrIGIvcmFzLXJlY29yZC5oCkBAIC0xLDUg KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMyBNYXVybyBDYXJ2YWxobyBDaGVoYWIg PG1jaGVoYWJAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoYykgMjAxNiwgVGhlIExpbnV4IEZv dW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CkBAIC01Niw5ICs1NywxOCBAQCBzdHJ1Y3QgcmFzX2V4dGxvZ19ldmVudCB7CiAJ dW5zaWduZWQgc2hvcnQgY3Blcl9kYXRhX2xlbmd0aDsKIH07CiAKK3N0cnVjdCByYXNfbm9uX3N0 YW5kYXJkX2V2ZW50IHsKKwljaGFyIHRpbWVzdGFtcFs2NF07CisJY29uc3QgY2hhciAqc2VjX3R5 cGUsICpmcnVfaWQsICpmcnVfdGV4dDsKKwljb25zdCBjaGFyICpzZXZlcml0eTsKKwljb25zdCB1 aW50OF90ICplcnJvcjsKKwl1aW50MzJfdCBsZW5ndGg7Cit9OworCiBzdHJ1Y3QgcmFzX21jX2V2 ZW50Owogc3RydWN0IHJhc19hZXJfZXZlbnQ7CiBzdHJ1Y3QgcmFzX2V4dGxvZ19ldmVudDsKK3N0 cnVjdCByYXNfbm9uX3N0YW5kYXJkX2V2ZW50Owogc3RydWN0IG1jZV9ldmVudDsKIAogI2lmZGVm IEhBVkVfU1FMSVRFMwpAQCAtNzcsNiArODcsOSBAQCBzdHJ1Y3Qgc3FsaXRlM19wcml2IHsKICNp ZmRlZiBIQVZFX0VYVExPRwogCXNxbGl0ZTNfc3RtdAkqc3RtdF9leHRsb2dfcmVjb3JkOwogI2Vu ZGlmCisjaWZkZWYgSEFWRV9OT05fU1RBTkRBUkQKKwlzcWxpdGUzX3N0bXQJKnN0bXRfbm9uX3N0 YW5kYXJkX3JlY29yZDsKKyNlbmRpZgogfTsKIAogaW50IHJhc19tY19ldmVudF9vcGVuZGIodW5z aWduZWQgY3B1LCBzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzKTsKQEAgLTg0LDYgKzk3LDcgQEAgaW50 IHJhc19zdG9yZV9tY19ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX21j X2V2ZW50ICpldik7CiBpbnQgcmFzX3N0b3JlX2Flcl9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAq cmFzLCBzdHJ1Y3QgcmFzX2Flcl9ldmVudCAqZXYpOwogaW50IHJhc19zdG9yZV9tY2VfcmVjb3Jk KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBtY2VfZXZlbnQgKmV2KTsKIGludCByYXNf c3RvcmVfZXh0bG9nX21lbV9yZWNvcmQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJh c19leHRsb2dfZXZlbnQgKmV2KTsKK2ludCByYXNfc3RvcmVfbm9uX3N0YW5kYXJkX3JlY29yZChz dHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAqZXYp OwogCiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgcmFzX21jX2V2ZW50X29wZW5kYih1bnNpZ25l ZCBjcHUsIHN0cnVjdCByYXNfZXZlbnRzICpyYXMpIHsgcmV0dXJuIDA7IH07CkBAIC05MSw2ICsx MDUsNyBAQCBzdGF0aWMgaW5saW5lIGludCByYXNfc3RvcmVfbWNfZXZlbnQoc3RydWN0IHJhc19l dmVudHMgKnJhcywgc3RydWN0IHJhc19tY19ldmVudAogc3RhdGljIGlubGluZSBpbnQgcmFzX3N0 b3JlX2Flcl9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX2Flcl9ldmVu dCAqZXYpIHsgcmV0dXJuIDA7IH07CiBzdGF0aWMgaW5saW5lIGludCByYXNfc3RvcmVfbWNlX3Jl Y29yZChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgbWNlX2V2ZW50ICpldikgeyByZXR1 cm4gMDsgfTsKIHN0YXRpYyBpbmxpbmUgaW50IHJhc19zdG9yZV9leHRsb2dfbWVtX3JlY29yZChz dHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX2V4dGxvZ19ldmVudCAqZXYpIHsgcmV0 dXJuIDA7IH07CitzdGF0aWMgaW5saW5lIGludCByYXNfc3RvcmVfbm9uX3N0YW5kYXJkX3JlY29y ZChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAq ZXYpIHsgcmV0dXJuIDA7IH07CiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9yYXMtcmVwb3J0LmMg Yi9yYXMtcmVwb3J0LmMKaW5kZXggMGEwNTczMi4uM2U1MDhhNSAxMDA2NDQKLS0tIGEvcmFzLXJl cG9ydC5jCisrKyBiL3Jhcy1yZXBvcnQuYwpAQCAtMSwzICsxLDE2IEBACisvKgorICogQ29weXJp Z2h0IChjKSAyMDE2LCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYW5kCisgKiBvbmx5IHZlcnNpb24gMiBhcyBw dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqLworCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4K ICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTE5Niw2ICsyMDksMjcgQEAgc3RhdGljIGludCBzZXRf YWVyX2V2ZW50X2JhY2t0cmFjZShjaGFyICpidWYsIHN0cnVjdCByYXNfYWVyX2V2ZW50ICpldil7 CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgc2V0X25vbl9zdGFuZGFyZF9ldmVudF9iYWNr dHJhY2UoY2hhciAqYnVmLCBzdHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAqZXYpeworCWNo YXIgYnRfYnVmW01BWF9CQUNLVFJBQ0VfU0laRV07CisKKwlpZighYnVmIHx8ICFldikKKwkJcmV0 dXJuIC0xOworCisJc3ByaW50ZihidF9idWYsICJCQUNLVFJBQ0U9IiAgICBcCisJCQkJCQkidGlt ZXN0YW1wPSVzXG4iICAgICAgICBcCisJCQkJCQkiZXJyb3JfY291bnQ9JWRcbiIgICAgICAgXAor CQkJCQkJInNldmVyaXR5PSVkXG4iIFwKKwkJCQkJCSJsZW5ndGg9JWRcbiIsICAgICBcCisJCQkJ CQlldi0+dGltZXN0YW1wLCAgXAorCQkJCQkJZXYtPmVycm9yX2NvdW50LCBcCisJCQkJCQlldi0+ c2V2ZXJpdHksICAgXAorCQkJCQkJZXYtPmxlbmd0aCk7CisKKwlzdHJjYXQoYnVmLCBidF9idWYp OworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgY29tbWl0X3JlcG9ydF9iYWNrdHJhY2Uo aW50IHNvY2tmZCwgaW50IHR5cGUsIHZvaWQgKmV2KXsKIAljaGFyIGJ1ZltNQVhfQkFDS1RSQUNF X1NJWkVdOwogCWNoYXIgKnBidWYgPSBidWY7CkBAIC0yMTgsNiArMjUyLDkgQEAgc3RhdGljIGlu dCBjb21taXRfcmVwb3J0X2JhY2t0cmFjZShpbnQgc29ja2ZkLCBpbnQgdHlwZSwgdm9pZCAqZXYp ewogCWNhc2UgTUNFX0VWRU5UOgogCQlyYyA9IHNldF9tY2VfZXZlbnRfYmFja3RyYWNlKGJ1Ziwg KHN0cnVjdCBtY2VfZXZlbnQgKilldik7CiAJCWJyZWFrOworCWNhc2UgTk9OX1NUQU5EQVJEX0VW RU5UOgorCQlyYyA9IHNldF9ub25fc3RhbmRhcmRfZXZlbnRfYmFja3RyYWNlKGJ1ZiwgKHN0cnVj dCByYXNfbm9uX3N0YW5kYXJkX2V2ZW50ICopZXYpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQly ZXR1cm4gLTE7CiAJfQpAQCAtMzQ1LDYgKzM4Miw1MSBAQCBhZXJfZmFpbDoKIAl9CiB9CiAKK2lu dCByYXNfcmVwb3J0X25vbl9zdGFuZGFyZF9ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBz dHJ1Y3QgcmFzX25vbl9zdGFuZGFyZF9ldmVudCAqZXYpeworCWNoYXIgYnVmW01BWF9NRVNTQUdF X1NJWkVdOworCWludCBzb2NrZmQgPSAwOworCWludCByYyA9IC0xOworCisJbWVtc2V0KGJ1Ziwg MCwgc2l6ZW9mKGJ1ZikpOworCisJc29ja2ZkID0gc2V0dXBfcmVwb3J0X3NvY2tldCgpOworCWlm KHNvY2tmZCA8IDApeworCQlyZXR1cm4gcmM7CisJfQorCisJcmMgPSBjb21taXRfcmVwb3J0X2Jh c2ljKHNvY2tmZCk7CisJaWYocmMgPCAwKXsKKwkJZ290byBub25fc3RhbmRhcmRfZmFpbDsKKwl9 CisKKwlyYyA9IGNvbW1pdF9yZXBvcnRfYmFja3RyYWNlKHNvY2tmZCwgTk9OX1NUQU5EQVJEX0VW RU5ULCBldik7CisJaWYocmMgPCAwKXsKKwkJZ290byBub25fc3RhbmRhcmRfZmFpbDsKKwl9CisK KwlzcHJpbnRmKGJ1ZiwgIkFOQUxZWkVSPSVzIiwgInJhc2RhZW1vbi1ub24tc3RhbmRhcmQiKTsK KwlyYyA9IHdyaXRlKHNvY2tmZCwgYnVmLCBzdHJsZW4oYnVmKSArIDEpOworCWlmKHJjIDwgc3Ry bGVuKGJ1ZikgKyAxKXsKKwkJZ290byBub25fc3RhbmRhcmRfZmFpbDsKKwl9CisKKwlzcHJpbnRm KGJ1ZiwgIlJFQVNPTj0lcyIsICJVbmtub3duIENQRVIgc2VjdGlvbiBwcm9ibGVtIik7CisJcmMg PSB3cml0ZShzb2NrZmQsIGJ1Ziwgc3RybGVuKGJ1ZikgKyAxKTsKKwlpZihyYyA8IHN0cmxlbihi dWYpICsgMSl7CisJCWdvdG8gbm9uX3N0YW5kYXJkX2ZhaWw7CisJfQorCisJcmMgPSAwOworCitu b25fc3RhbmRhcmRfZmFpbDoKKworCWlmKHNvY2tmZCA+IDApeworCQljbG9zZShzb2NrZmQpOwor CX0KKworCXJldHVybiByYzsKK30KKwogaW50IHJhc19yZXBvcnRfbWNlX2V2ZW50KHN0cnVjdCBy YXNfZXZlbnRzICpyYXMsIHN0cnVjdCBtY2VfZXZlbnQgKmV2KXsKIAljaGFyIGJ1ZltNQVhfTUVT U0FHRV9TSVpFXTsKIAlpbnQgc29ja2ZkID0gMDsKZGlmZiAtLWdpdCBhL3Jhcy1yZXBvcnQuaCBi L3Jhcy1yZXBvcnQuaAppbmRleCA3OTIwY2RmLi5jMmZjZjQyIDEwMDY0NAotLS0gYS9yYXMtcmVw b3J0LmgKKysrIGIvcmFzLXJlcG9ydC5oCkBAIC0xLDMgKzEsMTYgQEAKKy8qCisgKiBDb3B5cmln aHQgKGMpIDIwMTYsIFRoZSBMaW51eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhbmQKKyAqIG9ubHkgdmVyc2lvbiAyIGFzIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCisgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorICovCisKICNpZm5kZWYgX19SQVNfUkVQT1JUX0gKICNkZWZpbmUgX19SQVNfUkVQ T1JUX0gKIApAQCAtMTksNyArMzIsOCBAQAogZW51bSB7CiAJTUNfRVZFTlQsCiAJTUNFX0VWRU5U LAotCUFFUl9FVkVOVAorCUFFUl9FVkVOVCwKKwlOT05fU1RBTkRBUkRfRVZFTlQKIH07CiAKICNp ZmRlZiBIQVZFX0FCUlRfUkVQT1JUCkBAIC0yNywxMiArNDEsMTQgQEAgZW51bSB7CiBpbnQgcmFz X3JlcG9ydF9tY19ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX21jX2V2 ZW50ICpldik7CiBpbnQgcmFzX3JlcG9ydF9hZXJfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJh cywgc3RydWN0IHJhc19hZXJfZXZlbnQgKmV2KTsKIGludCByYXNfcmVwb3J0X21jZV9ldmVudChz dHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgbWNlX2V2ZW50ICpldik7CitpbnQgcmFzX3Jl cG9ydF9ub25fc3RhbmRhcmRfZXZlbnQoc3RydWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJh c19ub25fc3RhbmRhcmRfZXZlbnQgKmV2KTsKIAogI2Vsc2UKIAogc3RhdGljIGlubGluZSBpbnQg cmFzX3JlcG9ydF9tY19ldmVudChzdHJ1Y3QgcmFzX2V2ZW50cyAqcmFzLCBzdHJ1Y3QgcmFzX21j X2V2ZW50ICpldikgeyByZXR1cm4gMDsgfTsKIHN0YXRpYyBpbmxpbmUgaW50IHJhc19yZXBvcnRf YWVyX2V2ZW50KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCByYXNfYWVyX2V2ZW50ICpl dikgeyByZXR1cm4gMDsgfTsKIHN0YXRpYyBpbmxpbmUgaW50IHJhc19yZXBvcnRfbWNlX2V2ZW50 KHN0cnVjdCByYXNfZXZlbnRzICpyYXMsIHN0cnVjdCBtY2VfZXZlbnQgKmV2KSB7IHJldHVybiAw OyB9Oworc3RhdGljIGlubGluZSBpbnQgcmFzX3JlcG9ydF9ub25fc3RhbmRhcmRfZXZlbnQoc3Ry dWN0IHJhc19ldmVudHMgKnJhcywgc3RydWN0IHJhc19ub25fc3RhbmRhcmRfZXZlbnQgKmV2KSB7 IHJldHVybiAwOyB9OwogCiAjZW5kaWYKIAo=