From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [GRUB2 PATCH v3 4/4] multiboot2: Add support for relocatable images Date: Wed, 2 Mar 2016 17:51:40 +0100 Message-ID: <1456937500-7855-5-git-send-email-daniel.kiper@oracle.com> References: <1456937500-7855-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.84) (envelope-from ) id 1abA0u-0003Vh-Qz for xen-devel@lists.xenproject.org; Wed, 02 Mar 2016 16:52:41 +0000 In-Reply-To: <1456937500-7855-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, grub-devel@gnu.org Cc: jgross@suse.com, eric.snowberg@oracle.com, arvidjaar@gmail.com, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, roy.franz@linaro.org, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, phcoder@gmail.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org, seth.goldberg@oracle.com List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5IG11bHRpYm9vdDIgcHJvdG9jb2wgbG9hZHMgaW1hZ2UgZXhhY3RseSBhdCBhZGRy ZXNzIHNwZWNpZmllZCBpbgpFTEYgb3IgbXVsdGlib290MiBoZWFkZXIuIFRoaXMgc29sdXRpb24g d29ya3MgcXVpdGUgd2VsbCBvbiBsZWdhY3kgQklPUwpwbGF0Zm9ybXMuIEl0IGlzIHBvc3NpYmxl IGJlY2F1c2UgbWVtb3J5IHJlZ2lvbnMgYXJlIHBsYWNlZCBhdCBwcmVkaWN0YWJsZQphZGRyZXNz ZXMgKHRob3VnaCBJIHdhcyBub3QgYWJsZSB0byBmaW5kIGFueSBzcGVjIHdoaWNoIHNheXMgdGhh dCBpdCBpcwpzdHJvbmcgcmVxdWlyZW1lbnQsIHNvLCBpdCBsb29rcyB0aGF0IGl0IGlzIGp1c3Qg YSBnb29kd2lsbCBvZiBoYXJkd2FyZQpkZXNpZ25lcnMpLiBIb3dldmVyLCBFRkkgcGxhdGZvcm1z IGFyZSBtb3JlIHZvbGF0aWxlLiBFdmVuIGlmIHJlcXVpcmVkCm1lbW9yeSByZWdpb25zIGxpdmUg YXQgc3BlY2lmaWMgYWRkcmVzc2VzIHRoZW4gdGhleSBhcmUgc29tZXRpbWVzIHNpbXBseQpub3Qg ZnJlZSAoZS5nLiB1c2VkIGJ5IGJvb3QvcnVudGltZSBzZXJ2aWNlcyBvbiBEZWxsIFBvd2VyRWRn ZSBSODIwIGFuZApPVk1GKS4gVGhpcyBtZWFucyB0aGF0IHlvdSBhcmUgbm90IGFibGUgdG8gc2lt cGx5IHNldCB1cCBmaW5hbCBpbWFnZQpkZXN0aW5hdGlvbiBvbiBidWlsZCB0aW1lLiBZb3UgaGF2 ZSB0byBwcm92aWRlIG1ldGhvZCB0byByZWxvY2F0ZSBpbWFnZQpjb250ZW50cyB0byByZWFsIGxv YWQgYWRkcmVzcyB3aGljaCBpcyB1c3VhbGx5IGRpZmZlcmVudCB0aGFuIGxvYWQgYWRkcmVzcwpz cGVjaWZpZWQgaW4gRUxGIGFuZCBtdWx0aWJvb3QyIGhlYWRlcnMuCgpUaGlzIHBhdGNoIHByb3Zp ZGVzIGFsbCBuZWVkZWQgbWFjaGluZXJ5IHRvIGRvIHNlbGYgcmVsb2NhdGlvbiBpbiBpbWFnZSBj b2RlLgpGaXJzdCBvZiBhbGwgR1JVQjIgcmVhZHMgbWluX2FkZHIgKG1pbi4gbG9hZCBhZGRyKSwg bWF4X2FkZHIgKG1heC4gbG9hZCBhZGRyKSwKYWxpZ24gKHJlcXVpcmVkIGltYWdlIGFsaWdubWVu dCksIHByZWZlcmVuY2UgKGl0IHNheXMgd2hpY2ggbWVtb3J5IHJlZ2lvbnMgYXJlCnByZWZlcnJl ZCBieSBpbWFnZSwgZS5nLiBub25lLCBsb3csIGhpZ2gpIGZyb20gbXVsdGlib290X2hlYWRlcl90 YWdfcmVsb2NhdGFibGUKaGVhZGVyIHRhZyBjb250YWluZWQgaW4gYmluYXJ5LiBMYXRlciBsb2Fk ZXIgdHJpZXMgdG8gZnVsZmlsbCByZXF1ZXN0IChub3Qgb25seQp0aGF0IG9uZSkgYW5kIGlmIGl0 IHN1Y2NlZWRzIHRoZW4gaXQgaW5mb3JtcyBpbWFnZSBhYm91dCByZWFsIGxvYWQgYWRkcmVzcyB2 aWEKbXVsdGlib290X3RhZ19iYXNlX2FkZHIgdGFnLiBBdCB0aGlzIHN0YWdlIEdSVUIyIHJvbGUg aXMgZmluaXNoZWQuIFN0YXJ0aW5nCmZyb20gbm93IGV4ZWN1dGFibGUgbXVzdCBjb3BlIHdpdGgg cmVsb2NhdGlvbnMgaXRzZWxmIHVzaW5nIHdob2xlIHN0YXRpYwphbmQgZHluYW1pYyBrbm93bGVk Z2UgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXIuCgpUaGlzIHBhdGNoIGRvZXMgbm90IHByb3ZpZGUg ZnVuY3Rpb25hbGl0eSB3aGljaCBjb3VsZCBkbyByZWxvY2F0aW9ucyB1c2luZwpFTEYgcmVsb2Nh dGlvbiBkYXRhLiBIb3dldmVyLCBJIHdhcyBhc2tlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGsg YW5kIFZsYWRpbWlyCidwaGNvZGVyJyBTZXJiaW5lbmtvIHRvIGludmVzdGlnYXRlIHRoYXQgdGhp bmcuIEl0IGxvb2tzIHRoYXQgcmVsZXZhbnQgbWFjaGluZXJ5CmNvdWxkIGJlIGFkZGVkIHRvIGV4 aXN0aW5nIGNvZGUgKGluY2x1ZGluZyB0aGlzIHBhdGNoKSB3aXRob3V0IGh1Z2UgZWZmb3J0LgpB ZGRpdGlvbmFsbHksIEVMRiByZWxvY2F0aW9uIGNvdWxkIGxpdmUgaW4gcGFyYWxsZWwgd2l0aCBz ZWxmIHJlbG9jYXRpb24gcHJvdmlkZWQKYnkgdGhpcyBwYXRjaC4gSG93ZXZlciwgZHVyaW5nIHJl c2VhcmNoIEkgcmVhbGl6ZWQgdGhhdCBmaXJzdCBvZiBhbGwgd2Ugc2hvdWxkCmVzdGFibGlzaCB0 aGUgZGV0YWlscyBob3cgRUxGIHJlbG9jYXRhYmxlIGltYWdlIHNob3VsZCBsb29rIGxpa2UgYW5k IGhvdyBpdCBzaG91bGQKYmUgYnVpbGQuIEF0IGxlYXN0IHRvIGJ1aWxkIHByb3BlciB0ZXN0L2V4 YW1wbGUgZmlsZXMuCgpBcyBJIHNhdyBtdWx0aWJvb3QyIHByb3RvY29sIGlzIGFibGUgdG8gY29u c3VtZSBFVF9FWEVDIGFuZCBFVF9EWU4gRUxGIGZpbGVzLgpQb3RlbnRpYWxseSB3ZSBjYW4gdXNl IEVUX0RZTiBmaWxlIHR5cGUuIEl0IGNhbiBiZSBidWlsZCB3aXRoIGdjYy9sZCAtcGllIG9wdGlv bi4KSG93ZXZlciwgaXQgY29udGFpbnMgYSBsb3Qgb2YgdW5uZWVkZWQgc3R1ZmYgKGUuZy4gSU5U RVJQLCBEWU5BTUlDLCBHTlVfRUhfRlJBTUUKcHJvZ3JhbSBoZWFkZXJzKSBhbmQgaXQgY291bGQg YmUgcXVpdGUgZGlmZmljdWx0IHRvIGRyb3AgdGhlbSAoSG1tbS4uLiBJcyBpdApwb3NzaWJsZSB0 byBidWlsZCBpdCBwcm9wZXJseSB3aXRoIGN1c3RvbSBsZCBzY3JpcHQ/KS4gU28sIEkgaGF2ZSBj aGVja2VkIEVUX0VYRUMKZmlsZSB0eXBlLiBTYWRseSBpbiB0aGlzIGNhc2UgbGlua2VyIGJ5IGRl ZmF1bHQgcmVzb2x2ZXMgYWxsIGxvY2FsIHN5bWJvbCByZWxvY2F0aW9ucwphbmQgcmVtb3ZlcyBy ZWxvY2F0aW9uIHJlbGF0ZWQgc2VjdGlvbnMuIEZvcnR1bmF0ZWx5IGl0IGlzIHBvc3NpYmxlIHRv IGxlYXZlIHRoZW0KYXMgaXMgd2l0aCBzaW1wbGUgLXEvLS1lbWl0LXJlbG9jcyBsZCBvcHRpb24u IEhvd2V2ZXIsIG91dHB1dCBmaWxlIGlzIHF1aXRlIGZyYWdpbGUKYW5kIGFueSBvcGVyYXRpb24g b24gaXQgc2hvdWxkIGJlIGRvbmUgd2l0aCBncmVhdCBjYXJlIChlLmcuIHN0cmlwIHNob3VsZCBi ZSBjYWxsZWQKd2l0aCAtLXN0cmlwLXVubmVlZGVkIG9wdGlvbikuIFNvLCB0aGlzIHNvbHV0aW9u IGlzIG5vdCBwZXJmZWN0IHRvby4gSXQgbWVhbnMgdGhhdAptYXliZSB3ZSBzaG91bGQgbG9vayBm b3IgYmV0dGVyIHNvbHV0aW9uLiBIb3dldmVyLCBJIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIG5vdCB1 c2UKYW55IGN1c3RvbSB0b29scyBhbmQgZm9jdXMgb24gZnVuY3Rpb25hbGl0aWVzIHByb3ZpZGVk IGJ5IGNvbXBpbGVyIGFuZCBiaW51dGlscy4KSW4gdGhpcyBjb250ZXh0IGxkIHNjcmlwdHMgbG9v a3MgcXVpdGUgcHJvbWlzaW5nIGJ1dCBtYXliZSB5b3UgaGF2ZSBiZXR0ZXIgc29sdXRpb25zLgpT bywgd2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhhdD8KClRoaXMgcGF0Y2ggd2FzIHRlc3RlZCB3 aXRoIFhlbiBpbWFnZSB3aGljaCB1c2VzIHRoYXQgZnVuY3Rpb25hbGl0eS4gSG93ZXZlciwgdGhp cyBYZW4KZmVhdHVyZSBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCBhbmQgbmV3IHBhdGNoc2V0 IHdpbGwgYmUgcmVsZWFzZWQgaW4gYWJvdXQgMy00IHdlZWtzLgoKU2lnbmVkLW9mZi1ieTogRGFu aWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KLS0tCnYzIC0gc3VnZ2VzdGlvbnMv Zml4ZXM6CiAgIC0gcmVkdWNlIG51bWJlciBvZiBjYXN0cwogICAgIChzdWdnZXN0ZWQgYnkgS29u cmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSByZW1vdmUgdW5uZWVkZWQgc3BhY2UgYXQgdGhlIGVu ZCBvZiBsaW5lCiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAt IGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0 ZWsgV2lsaykuCi0tLQogZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L211bHRpYm9vdF9tYmkuYyB8ICAg IDYgKystCiBncnViLWNvcmUvbG9hZGVyL211bHRpYm9vdC5jICAgICAgICAgIHwgICAxMiArKysr LS0KIGdydWItY29yZS9sb2FkZXIvbXVsdGlib290X2VsZnh4LmMgICAgfCAgIDI4ICsrKysrKysr KystLS0tCiBncnViLWNvcmUvbG9hZGVyL211bHRpYm9vdF9tYmkyLmMgICAgIHwgICA2NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvZ3J1Yi9tdWx0aWJvb3QuaCAg ICAgICAgICAgICAgfCAgICA0ICstCiBpbmNsdWRlL211bHRpYm9vdDIuaCAgICAgICAgICAgICAg ICAgIHwgICAyNCArKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMo KyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9sb2FkZXIvaTM4Ni9t dWx0aWJvb3RfbWJpLmMgYi9ncnViLWNvcmUvbG9hZGVyL2kzODYvbXVsdGlib290X21iaS5jCmlu ZGV4IGY2MGI3MDIuLjRmYzgzZWQgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9sb2FkZXIvaTM4Ni9t dWx0aWJvb3RfbWJpLmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9pMzg2L211bHRpYm9vdF9tYmku YwpAQCAtNzIsNyArNzIsOCBAQCBsb2FkX2tlcm5lbCAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3Qg Y2hhciAqZmlsZW5hbWUsCiAgIGdydWJfZXJyX3QgZXJyOwogICBpZiAoZ3J1Yl9tdWx0aWJvb3Rf cXVpcmtzICYgR1JVQl9NVUxUSUJPT1RfUVVJUktfQkFEX0tMVURHRSkKICAgICB7Ci0gICAgICBl cnIgPSBncnViX211bHRpYm9vdF9sb2FkX2VsZiAoZmlsZSwgZmlsZW5hbWUsIGJ1ZmZlcik7Cisg ICAgICBlcnIgPSBncnViX211bHRpYm9vdF9sb2FkX2VsZiAoZmlsZSwgZmlsZW5hbWUsIGJ1ZmZl ciwgMCwgMCwgMCwgMCwKKwkJCQkgICAgIEdSVUJfUkVMT0NBVE9SX1BSRUZFUkVOQ0VfTk9ORSwg TlVMTCwgMCk7CiAgICAgICBpZiAoZXJyID09IEdSVUJfRVJSX05PTkUpIHsKIAlyZXR1cm4gR1JV Ql9FUlJfTk9ORTsKICAgICAgIH0KQEAgLTEyMSw3ICsxMjIsOCBAQCBsb2FkX2tlcm5lbCAoZ3J1 Yl9maWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgICAgICByZXR1cm4gR1JVQl9F UlJfTk9ORTsKICAgICB9CiAKLSAgcmV0dXJuIGdydWJfbXVsdGlib290X2xvYWRfZWxmIChmaWxl LCBmaWxlbmFtZSwgYnVmZmVyKTsKKyAgcmV0dXJuIGdydWJfbXVsdGlib290X2xvYWRfZWxmIChm aWxlLCBmaWxlbmFtZSwgYnVmZmVyLCAwLCAwLCAwLCAwLAorCQkJCSAgR1JVQl9SRUxPQ0FUT1Jf UFJFRkVSRU5DRV9OT05FLCBOVUxMLCAwKTsKIH0KIAogc3RhdGljIHN0cnVjdCBtdWx0aWJvb3Rf aGVhZGVyICoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290LmMgYi9ncnVi LWNvcmUvbG9hZGVyL211bHRpYm9vdC5jCmluZGV4IDE4MDM4ZmQuLmMwZjUxYjYgMTAwNjQ0Ci0t LSBhL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9t dWx0aWJvb3QuYwpAQCAtMjA4LDEyICsyMDgsMTggQEAgc3RhdGljIGdydWJfdWludDY0X3QgaGln aGVzdF9sb2FkOwogLyogTG9hZCBFTEYzMiBvciBFTEY2NC4gICovCiBncnViX2Vycl90CiBncnVi X211bHRpYm9vdF9sb2FkX2VsZiAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5h bWUsCi0JCQkgdm9pZCAqYnVmZmVyKQorCQkJIHZvaWQgKmJ1ZmZlciwgaW50IHJlbG9jYXRhYmxl LCBncnViX3VpbnQzMl90IG1pbl9hZGRyLAorCQkJIGdydWJfdWludDMyX3QgbWF4X2FkZHIsIGdy dWJfc2l6ZV90IGFsaWduLCBncnViX3VpbnQzMl90IHByZWZlcmVuY2UsCisJCQkgZ3J1Yl91aW50 MzJfdCAqYmFzZV9hZGRyLCBpbnQgYXZvaWRfZWZpX2Jvb3Rfc2VydmljZXMpCiB7CiAgIGlmIChn cnViX211bHRpYm9vdF9pc19lbGYzMiAoYnVmZmVyKSkKLSAgICByZXR1cm4gZ3J1Yl9tdWx0aWJv b3RfbG9hZF9lbGYzMiAoZmlsZSwgZmlsZW5hbWUsIGJ1ZmZlcik7CisgICAgcmV0dXJuIGdydWJf bXVsdGlib290X2xvYWRfZWxmMzIgKGZpbGUsIGZpbGVuYW1lLCBidWZmZXIsIHJlbG9jYXRhYmxl LAorCQkJCSAgICAgIG1pbl9hZGRyLCBtYXhfYWRkciwgYWxpZ24sIHByZWZlcmVuY2UsCisJCQkJ ICAgICAgYmFzZV9hZGRyLCBhdm9pZF9lZmlfYm9vdF9zZXJ2aWNlcyk7CiAgIGVsc2UgaWYgKGdy dWJfbXVsdGlib290X2lzX2VsZjY0IChidWZmZXIpKQotICAgIHJldHVybiBncnViX211bHRpYm9v dF9sb2FkX2VsZjY0IChmaWxlLCBmaWxlbmFtZSwgYnVmZmVyKTsKKyAgICByZXR1cm4gZ3J1Yl9t dWx0aWJvb3RfbG9hZF9lbGY2NCAoZmlsZSwgZmlsZW5hbWUsIGJ1ZmZlciwgcmVsb2NhdGFibGUs CisJCQkJICAgICAgbWluX2FkZHIsIG1heF9hZGRyLCBhbGlnbiwgcHJlZmVyZW5jZSwKKwkJCQkg ICAgICBiYXNlX2FkZHIsIGF2b2lkX2VmaV9ib290X3NlcnZpY2VzKTsKIAogICByZXR1cm4gZ3J1 Yl9lcnJvciAoR1JVQl9FUlJfVU5LTk9XTl9PUywgTl8oImludmFsaWQgYXJjaC1kZXBlbmRlbnQg RUxGIG1hZ2ljIikpOwogfQpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3Rf ZWxmeHguYyBiL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290X2VsZnh4LmMKaW5kZXggZTNhMzli Ni4uMGMwMTU2OSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3RfZWxmeHgu YworKysgYi9ncnViLWNvcmUvbG9hZGVyL211bHRpYm9vdF9lbGZ4eC5jCkBAIC01MSw3ICs1MSwx MCBAQCBDT05DQVQoZ3J1Yl9tdWx0aWJvb3RfaXNfZWxmLCBYWCkgKHZvaWQgKmJ1ZmZlcikKIH0K IAogc3RhdGljIGdydWJfZXJyX3QKLUNPTkNBVChncnViX211bHRpYm9vdF9sb2FkX2VsZiwgWFgp IChncnViX2ZpbGVfdCBmaWxlLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgdm9pZCAqYnVmZmVyKQor Q09OQ0FUKGdydWJfbXVsdGlib290X2xvYWRfZWxmLCBYWCkgKGdydWJfZmlsZV90IGZpbGUsIGNv bnN0IGNoYXIgKmZpbGVuYW1lLAorCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBpbnQgcmVsb2NhdGFi bGUsIGdydWJfdWludDMyX3QgbWluX2FkZHIsCisJCQkJICAgICBncnViX3VpbnQzMl90IG1heF9h ZGRyLCBncnViX3NpemVfdCBhbGlnbiwgZ3J1Yl91aW50MzJfdCBwcmVmZXJlbmNlLAorCQkJCSAg ICAgZ3J1Yl91aW50MzJfdCAqYmFzZV9hZGRyLCBpbnQgYXZvaWRfZWZpX2Jvb3Rfc2VydmljZXMp CiB7CiAgIEVsZl9FaGRyICplaGRyID0gKEVsZl9FaGRyICopIGJ1ZmZlcjsKICAgY2hhciAqcGhk cl9iYXNlOwpAQCAtODksMTkgKzkyLDMwIEBAIENPTkNBVChncnViX211bHRpYm9vdF9sb2FkX2Vs ZiwgWFgpIChncnViX2ZpbGVfdCBmaWxlLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgdm9pCiAJICBp ZiAocGhkcihpKS0+cF9wYWRkciArIHBoZHIoaSktPnBfbWVtc3ogPiBoaWdoZXN0X2xvYWQpCiAJ ICAgIGhpZ2hlc3RfbG9hZCA9IHBoZHIoaSktPnBfcGFkZHIgKyBwaGRyKGkpLT5wX21lbXN6Owog Ci0JICBncnViX2RwcmludGYgKCJtdWx0aWJvb3RfbG9hZGVyIiwgInNlZ21lbnQgJWQ6IHBhZGRy PTB4JWx4LCBtZW1zej0weCVseCwgdmFkZHI9MHglbHhcbiIsCi0JCQlpLCAobG9uZykgcGhkcihp KS0+cF9wYWRkciwgKGxvbmcpIHBoZHIoaSktPnBfbWVtc3osIChsb25nKSBwaGRyKGkpLT5wX3Zh ZGRyKTsKKwkgIGdydWJfZHByaW50ZiAoIm11bHRpYm9vdF9sb2FkZXIiLCAic2VnbWVudCAlZDog cGFkZHI9MHglbHgsIG1lbXN6PTB4JWx4LCB2YWRkcj0weCVseCwiCisJCQkiYWxpZ249MHglbHgs IHJlbG9jYXRhYmxlPSVkLCBhdm9pZF9lZmlfYm9vdF9zZXJ2aWNlcz0lZFxuIiwgaSwKKwkJCShs b25nKSBwaGRyKGkpLT5wX3BhZGRyLCAobG9uZykgcGhkcihpKS0+cF9tZW1zeiwgKGxvbmcpIHBo ZHIoaSktPnBfdmFkZHIsCisJCQkobG9uZykgYWxpZ24sIHJlbG9jYXRhYmxlLCBhdm9pZF9lZmlf Ym9vdF9zZXJ2aWNlcyk7CiAKIAkgIHsKIAkgICAgZ3J1Yl9yZWxvY2F0b3JfY2h1bmtfdCBjaDsK LQkgICAgZXJyID0gZ3J1Yl9yZWxvY2F0b3JfYWxsb2NfY2h1bmtfYWRkciAoZ3J1Yl9tdWx0aWJv b3RfcmVsb2NhdG9yLCAKLQkJCQkJCSAgICZjaCwgcGhkcihpKS0+cF9wYWRkciwKLQkJCQkJCSAg IHBoZHIoaSktPnBfbWVtc3opOworCisJICAgIGlmIChyZWxvY2F0YWJsZSkKKwkgICAgICBlcnIg PSBncnViX3JlbG9jYXRvcl9hbGxvY19jaHVua19hbGlnbiAoZ3J1Yl9tdWx0aWJvb3RfcmVsb2Nh dG9yLCAmY2gsCisJCQkJCQkgICAgICBtaW5fYWRkciwgbWF4X2FkZHIgLSBwaGRyKGkpLT5wX21l bXN6LAorCQkJCQkJICAgICAgcGhkcihpKS0+cF9tZW1zeiwgYWxpZ24gPyBhbGlnbiA6IDEsCisJ CQkJCQkgICAgICBwcmVmZXJlbmNlLCBhdm9pZF9lZmlfYm9vdF9zZXJ2aWNlcyk7CisJICAgIGVs c2UKKwkgICAgICBlcnIgPSBncnViX3JlbG9jYXRvcl9hbGxvY19jaHVua19hZGRyIChncnViX211 bHRpYm9vdF9yZWxvY2F0b3IsCisJCQkJCQkgICAgICZjaCwgcGhkcihpKS0+cF9wYWRkciwKKwkJ CQkJCSAgICAgcGhkcihpKS0+cF9tZW1zeik7CiAJICAgIGlmIChlcnIpCiAJICAgICAgewogCQln cnViX2RwcmludGYgKCJtdWx0aWJvb3RfbG9hZGVyIiwgIkVycm9yIGxvYWRpbmcgcGhkciAlZFxu IiwgaSk7CiAJCXJldHVybiBlcnI7CiAJICAgICAgfQorCSAgICBpZiAoYmFzZV9hZGRyKQorCSAg ICAgICpiYXNlX2FkZHIgPSBnZXRfcGh5c2ljYWxfdGFyZ2V0X2FkZHJlc3MgKGNoKTsKIAkgICAg c291cmNlID0gZ2V0X3ZpcnR1YWxfY3VycmVudF9hZGRyZXNzIChjaCk7CiAJICB9CiAKQEAgLTIw OCw3ICsyMjIsNyBAQCBDT05DQVQoZ3J1Yl9tdWx0aWJvb3RfbG9hZF9lbGYsIFhYKSAoZ3J1Yl9m aWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5hbWUsIHZvaQogCQkJCQkJICAgICsgMSwgc2gt PnNoX3NpemUsCiAJCQkJCQkgICAgc2gtPnNoX2FkZHJhbGlnbiwKIAkJCQkJCSAgICBHUlVCX1JF TE9DQVRPUl9QUkVGRVJFTkNFX05PTkUsCi0JCQkJCQkgICAgMCk7CisJCQkJCQkgICAgYXZvaWRf ZWZpX2Jvb3Rfc2VydmljZXMpOwogCSAgICBpZiAoZXJyKQogCSAgICAgIHsKIAkJZ3J1Yl9kcHJp bnRmICgibXVsdGlib290X2xvYWRlciIsICJFcnJvciBsb2FkaW5nIHNoZHIgJWRcbiIsIGkpOwpk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3RfbWJpMi5jIGIvZ3J1Yi1jb3Jl L2xvYWRlci9tdWx0aWJvb3RfbWJpMi5jCmluZGV4IGNlNjhmNDguLjAzNzI1YTEgMTAwNjQ0Ci0t LSBhL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290X21iaTIuYworKysgYi9ncnViLWNvcmUvbG9h ZGVyL211bHRpYm9vdF9tYmkyLmMKQEAgLTY4LDYgKzY4LDcgQEAgc3RhdGljIGdydWJfc2l6ZV90 IGVsZl9zZWNfbnVtLCBlbGZfc2VjX2VudHNpemU7CiBzdGF0aWMgdW5zaWduZWQgZWxmX3NlY19z aHN0cm5keDsKIHN0YXRpYyB2b2lkICplbGZfc2VjdGlvbnM7CiBzdGF0aWMgaW50IGtlZXBfYnMg PSAwOworc3RhdGljIGdydWJfdWludDMyX3QgYmFzZV9hZGRyID0gMDsKIAogdm9pZAogZ3J1Yl9t dWx0aWJvb3RfYWRkX2VsZnN5bXMgKGdydWJfc2l6ZV90IG51bSwgZ3J1Yl9zaXplX3QgZW50c2l6 ZSwKQEAgLTEwNywxMSArMTA4LDE0IEBAIGdydWJfbXVsdGlib290X2xvYWQgKGdydWJfZmlsZV90 IGZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogICBncnViX2Vycl90IGVycjsKICAgc3RydWN0 IG11bHRpYm9vdF9oZWFkZXJfdGFnICp0YWc7CiAgIHN0cnVjdCBtdWx0aWJvb3RfaGVhZGVyX3Rh Z19hZGRyZXNzICphZGRyX3RhZyA9IE5VTEw7Ci0gIGludCBlbnRyeV9zcGVjaWZpZWQgPSAwLCBl ZmlfZW50cnlfc3BlY2lmaWVkID0gMDsKKyAgc3RydWN0IG11bHRpYm9vdF9oZWFkZXJfdGFnX3Jl bG9jYXRhYmxlICpyZWxfdGFnOworICBpbnQgZW50cnlfc3BlY2lmaWVkID0gMCwgZWZpX2VudHJ5 X3NwZWNpZmllZCA9IDAsIHJlbG9jYXRhYmxlID0gMDsKICAgZ3J1Yl9hZGRyX3QgZW50cnkgPSAw LCBlZmlfZW50cnkgPSAwOwotICBncnViX3VpbnQzMl90IGNvbnNvbGVfcmVxdWlyZWQgPSAwOwor ICBncnViX3VpbnQzMl90IGNvbnNvbGVfcmVxdWlyZWQgPSAwLCBtaW5fYWRkciA9IDA7CisgIGdy dWJfdWludDMyX3QgbWF4X2FkZHIgPSAwLCBwcmVmZXJlbmNlID0gR1JVQl9SRUxPQ0FUT1JfUFJF RkVSRU5DRV9OT05FOwogICBzdHJ1Y3QgbXVsdGlib290X2hlYWRlcl90YWdfZnJhbWVidWZmZXIg KmZidGFnID0gTlVMTDsKICAgaW50IGFjY2VwdGVkX2NvbnNvbGVzID0gR1JVQl9NVUxUSUJPT1Rf Q09OU09MRV9FR0FfVEVYVDsKKyAgZ3J1Yl9zaXplX3QgYWxpZ24gPSAwOwogCiAgIGJ1ZmZlciA9 IGdydWJfbWFsbG9jIChNVUxUSUJPT1RfU0VBUkNIKTsKICAgaWYgKCFidWZmZXIpCkBAIC0xNzQs NiArMTc4LDcgQEAgZ3J1Yl9tdWx0aWJvb3RfbG9hZCAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3Qg Y2hhciAqZmlsZW5hbWUpCiAJICAgICAgY2FzZSBNVUxUSUJPT1RfVEFHX1RZUEVfRUZJX0JTOgog CSAgICAgIGNhc2UgTVVMVElCT09UX1RBR19UWVBFX0VGSTMyX0lIOgogCSAgICAgIGNhc2UgTVVM VElCT09UX1RBR19UWVBFX0VGSTY0X0lIOgorCSAgICAgIGNhc2UgTVVMVElCT09UX1RBR19UWVBF X0JBU0VfQUREUjoKIAkJYnJlYWs7CiAKIAkgICAgICBkZWZhdWx0OgpAQCAtMjE1LDYgKzIyMCwy NyBAQCBncnViX211bHRpYm9vdF9sb2FkIChncnViX2ZpbGVfdCBmaWxlLCBjb25zdCBjaGFyICpm aWxlbmFtZSkKIAlhY2NlcHRlZF9jb25zb2xlcyB8PSBHUlVCX01VTFRJQk9PVF9DT05TT0xFX0ZS QU1FQlVGRkVSOwogCWJyZWFrOwogCisgICAgICBjYXNlIE1VTFRJQk9PVF9IRUFERVJfVEFHX1JF TE9DQVRBQkxFOgorCXJlbG9jYXRhYmxlID0gMTsKKwlyZWxfdGFnID0gKHN0cnVjdCBtdWx0aWJv b3RfaGVhZGVyX3RhZ19yZWxvY2F0YWJsZSAqKSB0YWc7CisJbWluX2FkZHIgPSByZWxfdGFnLT5t aW5fYWRkcjsKKwltYXhfYWRkciA9IHJlbF90YWctPm1heF9hZGRyOworCWFsaWduID0gcmVsX3Rh Zy0+YWxpZ247CisJc3dpdGNoIChyZWxfdGFnLT5wcmVmZXJlbmNlKQorCSAgeworCSAgY2FzZSBN VUxUSUJPT1RfTE9BRF9QUkVGRVJFTkNFX0xPVzoKKwkgICAgcHJlZmVyZW5jZSA9IEdSVUJfUkVM T0NBVE9SX1BSRUZFUkVOQ0VfTE9XOworCSAgICBicmVhazsKKworCSAgY2FzZSBNVUxUSUJPT1Rf TE9BRF9QUkVGRVJFTkNFX0hJR0g6CisJICAgIHByZWZlcmVuY2UgPSBHUlVCX1JFTE9DQVRPUl9Q UkVGRVJFTkNFX0hJR0g7CisJICAgIGJyZWFrOworCisJICBkZWZhdWx0OgorCSAgICBwcmVmZXJl bmNlID0gR1JVQl9SRUxPQ0FUT1JfUFJFRkVSRU5DRV9OT05FOworCSAgfQorCWJyZWFrOworCiAJ LyogR1JVQiBhbHdheXMgcGFnZS1hbGlnbnMgbW9kdWxlcy4gICovCiAgICAgICBjYXNlIE1VTFRJ Qk9PVF9IRUFERVJfVEFHX01PRFVMRV9BTElHTjoKIAlicmVhazsKQEAgLTI2MCwxNSArMjg2LDIy IEBAIGdydWJfbXVsdGlib290X2xvYWQgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGNoYXIgKmZp bGVuYW1lKQogICAgICAgZWxzZQogCWNvZGVfc2l6ZSA9IGxvYWRfc2l6ZTsKIAotICAgICAgZXJy ID0gZ3J1Yl9yZWxvY2F0b3JfYWxsb2NfY2h1bmtfYWRkciAoZ3J1Yl9tdWx0aWJvb3RfcmVsb2Nh dG9yLCAKLQkJCQkJICAgICAmY2gsIGxvYWRfYWRkciwKLQkJCQkJICAgICBjb2RlX3NpemUpOwor ICAgICAgaWYgKHJlbG9jYXRhYmxlKQorCWVyciA9IGdydWJfcmVsb2NhdG9yX2FsbG9jX2NodW5r X2FsaWduIChncnViX211bHRpYm9vdF9yZWxvY2F0b3IsICZjaCwKKwkJCQkJCW1pbl9hZGRyLCBt YXhfYWRkciAtIGNvZGVfc2l6ZSwKKwkJCQkJCWNvZGVfc2l6ZSwgYWxpZ24gPyBhbGlnbiA6IDEs CisJCQkJCQlwcmVmZXJlbmNlLCBrZWVwX2JzKTsKKyAgICAgIGVsc2UKKwllcnIgPSBncnViX3Jl bG9jYXRvcl9hbGxvY19jaHVua19hZGRyIChncnViX211bHRpYm9vdF9yZWxvY2F0b3IsCisJCQkJ CSAgICAgICAmY2gsIGxvYWRfYWRkciwKKwkJCQkJICAgICAgIGNvZGVfc2l6ZSk7CiAgICAgICBp ZiAoZXJyKQogCXsKIAkgIGdydWJfZHByaW50ZiAoIm11bHRpYm9vdF9sb2FkZXIiLCAiRXJyb3Ig bG9hZGluZyBhb3V0IGtsdWRnZVxuIik7CiAJICBncnViX2ZyZWUgKGJ1ZmZlcik7CiAJICByZXR1 cm4gZXJyOwogCX0KKyAgICAgIGJhc2VfYWRkciA9IGdldF9waHlzaWNhbF90YXJnZXRfYWRkcmVz cyAoY2gpOwogICAgICAgc291cmNlID0gZ2V0X3ZpcnR1YWxfY3VycmVudF9hZGRyZXNzIChjaCk7 CiAKICAgICAgIGlmICgoZ3J1Yl9maWxlX3NlZWsgKGZpbGUsIG9mZnNldCkpID09IChncnViX29m Zl90KSAtMSkKQEAgLTI5MCw3ICszMjMsOSBAQCBncnViX211bHRpYm9vdF9sb2FkIChncnViX2Zp bGVfdCBmaWxlLCBjb25zdCBjaGFyICpmaWxlbmFtZSkKICAgICB9CiAgIGVsc2UKICAgICB7Ci0g ICAgICBlcnIgPSBncnViX211bHRpYm9vdF9sb2FkX2VsZiAoZmlsZSwgZmlsZW5hbWUsIGJ1ZmZl cik7CisgICAgICBlcnIgPSBncnViX211bHRpYm9vdF9sb2FkX2VsZiAoZmlsZSwgZmlsZW5hbWUs IGJ1ZmZlciwKKwkJCQkgICAgIHJlbG9jYXRhYmxlLCBtaW5fYWRkciwgbWF4X2FkZHIsCisJCQkJ ICAgICBhbGlnbiwgcHJlZmVyZW5jZSwgJmJhc2VfYWRkciwga2VlcF9icyk7CiAgICAgICBpZiAo ZXJyKQogCXsKIAkgIGdydWJfZnJlZSAoYnVmZmVyKTsKQEAgLTMwMyw2ICszMzgsMTQgQEAgZ3J1 Yl9tdWx0aWJvb3RfbG9hZCAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5hbWUp CiAgIGVsc2UgaWYgKGVudHJ5X3NwZWNpZmllZCkKICAgICBncnViX211bHRpYm9vdF9wYXlsb2Fk X2VpcCA9IGVudHJ5OwogCisgIGlmIChyZWxvY2F0YWJsZSkKKyAgICB7CisgICAgICBpZiAoYmFz ZV9hZGRyID4gbWluX2FkZHIpCisJZ3J1Yl9tdWx0aWJvb3RfcGF5bG9hZF9laXAgKz0gYmFzZV9h ZGRyIC0gbWluX2FkZHI7CisgICAgICBlbHNlCisJZ3J1Yl9tdWx0aWJvb3RfcGF5bG9hZF9laXAg LT0gbWluX2FkZHIgLSBiYXNlX2FkZHI7CisgICAgfQorCiAgIGlmIChmYnRhZykKICAgICBlcnIg PSBncnViX211bHRpYm9vdF9zZXRfY29uc29sZSAoR1JVQl9NVUxUSUJPT1RfQ09OU09MRV9GUkFN RUJVRkZFUiwKIAkJCQkgICAgICBhY2NlcHRlZF9jb25zb2xlcywKQEAgLTQwOSw2ICs0NTIsNyBA QCBncnViX211bHRpYm9vdF9nZXRfbWJpX3NpemUgKHZvaWQpCiAJCSArIGdydWJfZ2V0X211bHRp Ym9vdF9tbWFwX2NvdW50ICgpCiAJCSAqIHNpemVvZiAoc3RydWN0IG11bHRpYm9vdF9tbWFwX2Vu dHJ5KSksIE1VTFRJQk9PVF9UQUdfQUxJR04pCiAgICAgKyBBTElHTl9VUCAoc2l6ZW9mIChzdHJ1 Y3QgbXVsdGlib290X3RhZ19mcmFtZWJ1ZmZlciksIE1VTFRJQk9PVF9UQUdfQUxJR04pCisgICAg KyBBTElHTl9VUCAoc2l6ZW9mIChzdHJ1Y3QgbXVsdGlib290X3RhZ19iYXNlX2FkZHIpLCBNVUxU SUJPT1RfVEFHX0FMSUdOKQogI2lmZGVmIEdSVUJfTUFDSElORV9FRkkKICNpZmRlZiBfX2kzODZf XwogICAgICsgQUxJR05fVVAgKHNpemVvZiAoc3RydWN0IG11bHRpYm9vdF90YWdfZWZpMzIpLCBN VUxUSUJPT1RfVEFHX0FMSUdOKQpAQCAtNjk4LDYgKzc0MiwxNSBAQCBncnViX211bHRpYm9vdF9t YWtlX21iaSAoZ3J1Yl91aW50MzJfdCAqdGFyZ2V0KQogICBwdHJvcmlnICs9ICgyICogc2l6ZW9m IChncnViX3VpbnQzMl90KSkgLyBzaXplb2YgKGdydWJfcHJvcGVybHlfYWxpZ25lZF90KTsKIAog ICB7CisgICAgc3RydWN0IG11bHRpYm9vdF90YWdfYmFzZV9hZGRyICp0YWcgPSAoc3RydWN0IG11 bHRpYm9vdF90YWdfYmFzZV9hZGRyICopIHB0cm9yaWc7CisgICAgdGFnLT50eXBlID0gTVVMVElC T09UX1RBR19UWVBFX0JBU0VfQUREUjsKKyAgICB0YWctPnNpemUgPSBzaXplb2YgKHN0cnVjdCBt dWx0aWJvb3RfdGFnX2Jhc2VfYWRkcik7CisgICAgdGFnLT5iYXNlX2FkZHIgPSBiYXNlX2FkZHI7 CisgICAgcHRyb3JpZyArPSBBTElHTl9VUCAodGFnLT5zaXplLCBNVUxUSUJPT1RfVEFHX0FMSUdO KQorICAgICAgIC8gc2l6ZW9mIChncnViX3Byb3Blcmx5X2FsaWduZWRfdCk7CisgIH0KKworICB7 CiAgICAgc3RydWN0IG11bHRpYm9vdF90YWdfc3RyaW5nICp0YWcgPSAoc3RydWN0IG11bHRpYm9v dF90YWdfc3RyaW5nICopIHB0cm9yaWc7CiAgICAgdGFnLT50eXBlID0gTVVMVElCT09UX1RBR19U WVBFX0NNRExJTkU7CiAgICAgdGFnLT5zaXplID0gc2l6ZW9mIChzdHJ1Y3QgbXVsdGlib290X3Rh Z19zdHJpbmcpICsgY21kbGluZV9zaXplOyAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9tdWx0 aWJvb3QuaCBiL2luY2x1ZGUvZ3J1Yi9tdWx0aWJvb3QuaAppbmRleCBlMTNjMDg0Li5lYzMyMmIw IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvbXVsdGlib290LmgKKysrIGIvaW5jbHVkZS9ncnVi L211bHRpYm9vdC5oCkBAIC05NCw3ICs5NCw5IEBAIGdydWJfbXVsdGlib290X2xvYWQgKGdydWJf ZmlsZV90IGZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKIC8qIExvYWQgRUxGMzIgb3IgRUxG NjQuICAqLwogZ3J1Yl9lcnJfdAogZ3J1Yl9tdWx0aWJvb3RfbG9hZF9lbGYgKGdydWJfZmlsZV90 IGZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAotCQkJIHZvaWQgKmJ1ZmZlcik7CisJCQkgdm9p ZCAqYnVmZmVyLCBpbnQgcmVsb2NhdGFibGUsIGdydWJfdWludDMyX3QgbWluX2FkZHIsCisJCQkg Z3J1Yl91aW50MzJfdCBtYXhfYWRkciwgZ3J1Yl9zaXplX3QgYWxpZ24sIGdydWJfdWludDMyX3Qg cHJlZmVyZW5jZSwKKwkJCSBncnViX3VpbnQzMl90ICpiYXNlX2FkZHIsIGludCBhdm9pZF9lZmlf Ym9vdF9zZXJ2aWNlcyk7CiBleHRlcm4gZ3J1Yl9zaXplX3QgZ3J1Yl9tdWx0aWJvb3RfcHVyZV9z aXplOwogZXh0ZXJuIGdydWJfc2l6ZV90IGdydWJfbXVsdGlib290X2FsbG9jX21iaTsKIGV4dGVy biBncnViX3VpbnQzMl90IGdydWJfbXVsdGlib290X3BheWxvYWRfZWlwOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9tdWx0aWJvb3QyLmggYi9pbmNsdWRlL211bHRpYm9vdDIuaAppbmRleCAzNmExNzRm Li5jMDliZGJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL211bHRpYm9vdDIuaAorKysgYi9pbmNsdWRl L211bHRpYm9vdDIuaApAQCAtNjIsNiArNjIsNyBAQAogI2RlZmluZSBNVUxUSUJPT1RfVEFHX1RZ UEVfRUZJX0JTICAgICAgICAgICAgMTgKICNkZWZpbmUgTVVMVElCT09UX1RBR19UWVBFX0VGSTMy X0lIICAgICAgICAgIDE5CiAjZGVmaW5lIE1VTFRJQk9PVF9UQUdfVFlQRV9FRkk2NF9JSCAgICAg ICAgICAyMAorI2RlZmluZSBNVUxUSUJPT1RfVEFHX1RZUEVfQkFTRV9BRERSICAgICAgICAgMjEK IAogI2RlZmluZSBNVUxUSUJPT1RfSEVBREVSX1RBR19FTkQgIDAKICNkZWZpbmUgTVVMVElCT09U X0hFQURFUl9UQUdfSU5GT1JNQVRJT05fUkVRVUVTVCAgMQpAQCAtNzIsMTEgKzczLDE2IEBACiAj ZGVmaW5lIE1VTFRJQk9PVF9IRUFERVJfVEFHX01PRFVMRV9BTElHTiAgNgogI2RlZmluZSBNVUxU SUJPT1RfSEVBREVSX1RBR19FRklfQlMgIDcKICNkZWZpbmUgTVVMVElCT09UX0hFQURFUl9UQUdf RU5UUllfQUREUkVTU19FRkk2NCAgOQorI2RlZmluZSBNVUxUSUJPT1RfSEVBREVSX1RBR19SRUxP Q0FUQUJMRSAgMTAKIAogI2RlZmluZSBNVUxUSUJPT1RfQVJDSElURUNUVVJFX0kzODYgIDAKICNk ZWZpbmUgTVVMVElCT09UX0FSQ0hJVEVDVFVSRV9NSVBTMzIgIDQKICNkZWZpbmUgTVVMVElCT09U X0hFQURFUl9UQUdfT1BUSU9OQUwgMQogCisjZGVmaW5lIE1VTFRJQk9PVF9MT0FEX1BSRUZFUkVO Q0VfTk9ORSAwCisjZGVmaW5lIE1VTFRJQk9PVF9MT0FEX1BSRUZFUkVOQ0VfTE9XIDEKKyNkZWZp bmUgTVVMVElCT09UX0xPQURfUFJFRkVSRU5DRV9ISUdIIDIKKwogI2RlZmluZSBNVUxUSUJPT1Rf Q09OU09MRV9GTEFHU19DT05TT0xFX1JFUVVJUkVEIDEKICNkZWZpbmUgTVVMVElCT09UX0NPTlNP TEVfRkxBR1NfRUdBX1RFWFRfU1VQUE9SVEVEIDIKIApAQCAtMTYxLDYgKzE2NywxNyBAQCBzdHJ1 Y3QgbXVsdGlib290X2hlYWRlcl90YWdfbW9kdWxlX2FsaWduCiAgIG11bHRpYm9vdF91aW50MzJf dCBzaXplOwogfTsKIAorc3RydWN0IG11bHRpYm9vdF9oZWFkZXJfdGFnX3JlbG9jYXRhYmxlCit7 CisgIG11bHRpYm9vdF91aW50MTZfdCB0eXBlOworICBtdWx0aWJvb3RfdWludDE2X3QgZmxhZ3M7 CisgIG11bHRpYm9vdF91aW50MzJfdCBzaXplOworICBtdWx0aWJvb3RfdWludDMyX3QgbWluX2Fk ZHI7CisgIG11bHRpYm9vdF91aW50MzJfdCBtYXhfYWRkcjsKKyAgbXVsdGlib290X3VpbnQzMl90 IGFsaWduOworICBtdWx0aWJvb3RfdWludDMyX3QgcHJlZmVyZW5jZTsKK307CisKIHN0cnVjdCBt dWx0aWJvb3RfY29sb3IKIHsKICAgbXVsdGlib290X3VpbnQ4X3QgcmVkOwpAQCAtMzg3LDYgKzQw NCwxMyBAQCBzdHJ1Y3QgbXVsdGlib290X3RhZ19lZmk2NF9paAogICBtdWx0aWJvb3RfdWludDY0 X3QgcG9pbnRlcjsKIH07CiAKK3N0cnVjdCBtdWx0aWJvb3RfdGFnX2Jhc2VfYWRkcgoreworICBt dWx0aWJvb3RfdWludDMyX3QgdHlwZTsKKyAgbXVsdGlib290X3VpbnQzMl90IHNpemU7CisgIG11 bHRpYm9vdF91aW50MzJfdCBiYXNlX2FkZHI7Cit9OworCiAjZW5kaWYgLyogISBBU01fRklMRSAq LwogCiAjZW5kaWYgLyogISBNVUxUSUJPT1RfSEVBREVSICovCi0tIAoxLjcuMTAuNAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==