From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LdRKT-0004XB-43 for qemu-devel@nongnu.org; Sat, 28 Feb 2009 10:42:17 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LdRKR-0004Uk-CQ for qemu-devel@nongnu.org; Sat, 28 Feb 2009 10:42:16 -0500 Received: from [199.232.76.173] (port=49433 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LdRKR-0004Ua-7o for qemu-devel@nongnu.org; Sat, 28 Feb 2009 10:42:15 -0500 Received: from mail-fx0-f175.google.com ([209.85.220.175]:42532) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LdRKP-0003C7-MW for qemu-devel@nongnu.org; Sat, 28 Feb 2009 10:42:14 -0500 Received: by fxm23 with SMTP id 23so1339449fxm.34 for ; Sat, 28 Feb 2009 07:42:11 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <1235833795-30441-1-git-send-email-agraf@suse.de> References: <1235833795-30441-1-git-send-email-agraf@suse.de> Date: Sat, 28 Feb 2009 17:42:11 +0200 Message-ID: Subject: Re: [Qemu-devel] [PATCH] Mac99: Enable -kernel option From: Blue Swirl Content-Type: multipart/mixed; boundary=001636c5a768c9b8bb0463fc6de7 Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Aurelien Jarno --001636c5a768c9b8bb0463fc6de7 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 2/28/09, Alexander Graf wrote: > Right now -kernel on the Mac99 (newworld) is broken. > > For starters, the kernel is 1:1 mapped into to virtual machine, which > is not what OpenBIOS expects - it wants a preprocessed ELF image. > So I just copied over the code from oldworld.c that loads the kernel. > > While this is not overly pretty, it works so far and keeps working > code working. I don't feel comfortable on restructuring newworld and > oldworld just yet - AFAIK newworld is not exactly is a good shape anyways. > > The second issue is the NVRAM. It doesn't get initialized, so the > firmware has no idea that a kernel image was actually loaded! > > I first tried to use the macio nvram device that was specified there, > but that didn't work out, so in order to get something working for now, > I took the code from oldworld.c again, which works at least with > OpenBIOS. There have been some discussions to switch to using the firmware configuration device for the kernel address etc. Then the NVRAM structure would not be used. These patches (by Aurelien and myself) should do the switch. --001636c5a768c9b8bb0463fc6de7 Content-Type: application/x-patch; name="openbios-0002-Add-new-entries-to-firmware-configuration-device.patch" Content-Disposition: attachment; filename="openbios-0002-Add-new-entries-to-firmware-configuration-device.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frqgmf1z RnJvbSA4ODJhNzg0OTQyM2I1N2ZiM2E1NmYxMmQyZTljNjAwZTM3ZDI3ZjQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+ CkRhdGU6IE1vbiwgMTkgSmFuIDIwMDkgMTI6MjY6MDcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBB ZGQgbmV3IGVudHJpZXMgdG8gZmlybXdhcmUgY29uZmlndXJhdGlvbiBkZXZpY2UKClNpZ25lZC1v ZmYtYnk6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KLS0tCiBpbmNsdWRl L29wZW5iaW9zL2Z3X2NmZy5oIHwgICAgNiArKysrKysKIDEgZmlsZXMgY2hhbmdlZCwgNiBpbnNl cnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKSW5kZXg6IG9wZW5iaW9zLXF1aWx0L2luY2x1ZGUv b3BlbmJpb3MvZndfY2ZnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3BlbmJpb3MtcXVpbHQub3JpZy9pbmNs dWRlL29wZW5iaW9zL2Z3X2NmZy5oCTIwMDktMDItMDkgMTk6NTA6MDkuMDAwMDAwMDAwICswMDAw CisrKyBvcGVuYmlvcy1xdWlsdC9pbmNsdWRlL29wZW5iaW9zL2Z3X2NmZy5oCTIwMDktMDItMjgg MTU6Mzg6MzguMDAwMDAwMDAwICswMDAwCkBAIC04LDYgKzgsMTIgQEAKICNkZWZpbmUgRldfQ0ZH X05PR1JBUEhJQyAgICAgICAgMHgwNAogI2RlZmluZSBGV19DRkdfTkJfQ1BVUyAgICAgICAgICAw eDA1CiAjZGVmaW5lIEZXX0NGR19NQUNISU5FX0lEICAgICAgIDB4MDYKKyNkZWZpbmUgRldfQ0ZH X0tFUk5FTF9BRERSICAgICAgMHgwNworI2RlZmluZSBGV19DRkdfS0VSTkVMX1NJWkUgICAgICAw eDA4CisjZGVmaW5lIEZXX0NGR19LRVJORUxfQ01ETElORSAgIDB4MDkKKyNkZWZpbmUgRldfQ0ZH X0lOSVRSRF9BRERSICAgICAgMHgwYQorI2RlZmluZSBGV19DRkdfSU5JVFJEX1NJWkUgICAgICAw eDBiCisjZGVmaW5lIEZXX0NGR19CT09UX0RFVklDRSAgICAgIDB4MGMKICNkZWZpbmUgRldfQ0ZH X01BWF9FTlRSWSAgICAgICAgMHgxMAogCiAjZGVmaW5lIEZXX0NGR19XUklURV9DSEFOTkVMICAg IDB4NDAwMAo= --001636c5a768c9b8bb0463fc6de7 Content-Type: application/x-patch; name="openbios-0003-Use-firmware-configuration-instead-of-NVRAM.patch" Content-Disposition: attachment; filename="openbios-0003-Use-firmware-configuration-instead-of-NVRAM.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frqgml0f RnJvbSA1MjQwOTg0ZWEzNDI1MjAxY2RjZDRkNTA2MjUyNDIzOTYxM2U5MjllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+ CkRhdGU6IE1vbiwgMTkgSmFuIDIwMDkgMTI6Mjc6MjggKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ b3dlclBDOiBVc2UgZmlybXdhcmUgY29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIE5WUkFNCgpTaWdu ZWQtb2ZmLWJ5OiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+Ci0tLQogYXJj aC9wcGMvcWVtdS9tYWluLmMgfCAgIDQ1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAzMSBkZWxl dGlvbnMoLSkKCkluZGV4OiBvcGVuYmlvcy1xdWlsdC9hcmNoL3BwYy9xZW11L21haW4uYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSBvcGVuYmlvcy1xdWlsdC5vcmlnL2FyY2gvcHBjL3FlbXUvbWFpbi5jCTIwMDkt MDItMjEgMDc6NTU6NDEuMDAwMDAwMDAwICswMDAwCisrKyBvcGVuYmlvcy1xdWlsdC9hcmNoL3Bw Yy9xZW11L21haW4uYwkyMDA5LTAyLTI4IDE1OjM4OjQyLjAwMDAwMDAwMCArMDAwMApAQCAtMjIs NiArMjIsOCBAQAogI2luY2x1ZGUgImxpYmMvdnNwcmludGYuaCIKICNpbmNsdWRlICJrZXJuZWwu aCIKICNpbmNsdWRlICJvZm1lbS5oIgorI2RlZmluZSBOT19RRU1VX1BST1RPUworI2luY2x1ZGUg Im9wZW5iaW9zL2Z3X2NmZy5oIgogCiAvLyNkZWZpbmUgREVCVUdfRUxGCiAKQEAgLTMxOSwyNCAr MzIxLDYgQEAKICAgICBjbG9zZV9pbyggZmQgKTsKIH0KIAotc3RhdGljIHVpbnQ4X3QgbnZyYW1f cmVhZCh1aW50MTZfdCBvZmZzZXQpCi17Ci0gICAgb3V0YihvZmZzZXQgJiAweGZmLCBOVlJBTV9B RERSX0xPKTsKLSAgICBvdXRiKG9mZnNldCA+PiA4LCBOVlJBTV9BRERSX0hJKTsKLSAgICByZXR1 cm4gaW5iKE5WUkFNX0RBVEEpOwotfQotCi1zdGF0aWMgdWludDMyX3QgbnZyYW1fcmVhZF9iZTMy KHVpbnQxNl90IG9mZnNldCkKLXsKLSAgICB1aW50MzJfdCByZXQ7Ci0KLSAgICByZXQgPSBudnJh bV9yZWFkKG9mZnNldCkgPDwgMjQ7Ci0gICAgcmV0IHw9IG52cmFtX3JlYWQob2Zmc2V0ICsgMSkg PDwgMTY7Ci0gICAgcmV0IHw9IG52cmFtX3JlYWQob2Zmc2V0ICsgMikgPDwgODsKLSAgICByZXQg fD0gbnZyYW1fcmVhZChvZmZzZXQgKyAzKTsKLSAgICByZXR1cm4gcmV0OwotfQotCiAjZGVmaW5l IFFVSUtfU0VDT05EX0JBU0VBRERSCTB4M2UwMDAwCiAjZGVmaW5lIFFVSUtfRklSU1RfQkFTRUFE RFIJMHgzZjQwMDAKICNkZWZpbmUgUVVJS19TRUNPTkRfU0laRQkoUVVJS19GSVJTVF9CQVNFQURE UiAtIFFVSUtfU0VDT05EX0JBU0VBRERSKQpAQCAtNDQ2LDggKzQzMCw3IEBACiAgICAgICAgICAg ICAgICAgdHJ5X3BhdGgocGF0aCwgcGFyYW0pOwogICAgICAgICAgICAgICAgIHRyeV9ib290aW5m byhwYXRoLCBwYXJhbSk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGNo YXIgYm9vdF9kZXZpY2UgPSBudnJhbV9yZWFkKDB4MzQpOwotCisgICAgICAgICAgICAgICAgdWlu dDE2X3QgYm9vdF9kZXZpY2UgPSBmd19jZmdfcmVhZF9pMTYoRldfQ0ZHX0JPT1RfREVWSUNFKTsK ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGJvb3RfZGV2aWNlKSB7CiAgICAgICAgICAgICAgICAg Y2FzZSAnYyc6CiAgICAgICAgICAgICAgICAgICAgIHBhdGggPSBzdHJkdXAoImhkOjAiKTsKQEAg LTQ3NCwyMSArNDU3LDIyIEBACiB7CiAgICAgdW5zaWduZWQgbG9uZyBrZXJuZWxfaW1hZ2UsIGtl cm5lbF9zaXplOwogICAgIHVuc2lnbmVkIGxvbmcgaW5pdHJkX2ltYWdlLCBpbml0cmRfc2l6ZTsK LSAgICB1bnNpZ25lZCBsb25nIGNtZGxpbmUsIGNtZGxpbmVfbGVuOworICAgIGNvbnN0IGNoYXIg KiBrZXJuZWxfY21kbGluZTsKIAotICAgIGtlcm5lbF9zaXplID0gbnZyYW1fcmVhZF9iZTMyKDB4 M2MpOworICAgIGtlcm5lbF9zaXplID0gZndfY2ZnX3JlYWRfaTMyKEZXX0NGR19LRVJORUxfU0la RSk7CiAgICAgaWYgKGtlcm5lbF9zaXplKSB7Ci0gICAgICAgIGtlcm5lbF9pbWFnZSA9IG52cmFt X3JlYWRfYmUzMigweDM4KTsKLSAgICAgICAgY21kbGluZSA9IG52cmFtX3JlYWRfYmUzMigweDQw KTsKLSAgICAgICAgY21kbGluZV9sZW4gPSBudnJhbV9yZWFkX2JlMzIoMHg0NCk7Ci0gICAgICAg IGluaXRyZF9pbWFnZSA9IG52cmFtX3JlYWRfYmUzMigweDQ4KTsKLSAgICAgICAgaW5pdHJkX3Np emUgPSBudnJhbV9yZWFkX2JlMzIoMHg0Yyk7CisgICAgICAgIGtlcm5lbF9pbWFnZSA9IGZ3X2Nm Z19yZWFkX2kzMihGV19DRkdfS0VSTkVMX0FERFIpOworICAgICAgICBrZXJuZWxfY21kbGluZSA9 IChjb25zdCBjaGFyICopIGZ3X2NmZ19yZWFkX2kzMihGV19DRkdfS0VSTkVMX0NNRExJTkUpOwor ICAgICAgICBpbml0cmRfaW1hZ2UgPSBmd19jZmdfcmVhZF9pMzIoRldfQ0ZHX0lOSVRSRF9BRERS KTsKKyAgICAgICAgaW5pdHJkX3NpemUgPSBmd19jZmdfcmVhZF9pMzIoRldfQ0ZHX0lOSVRSRF9T SVpFKTsKICAgICAgICAgcHJpbnRrKCJbcHBjXSBLZXJuZWwgYWxyZWFkeSBsb2FkZWQgKDB4JTgu OGx4ICsgMHglOC44bHgpICIKICAgICAgICAgICAgICAgICIoaW5pdHJkIDB4JTguOGx4ICsgMHgl OC44bHgpXG4iLAogICAgICAgICAgICAgICAga2VybmVsX2ltYWdlLCBrZXJuZWxfc2l6ZSwgaW5p dHJkX2ltYWdlLCBpbml0cmRfc2l6ZSk7Ci0gICAgICAgIGlmIChjbWRsaW5lX2xlbiA+IDApIHsK LSAgICAgICAgICAgICAgIHBoYW5kbGVfdCBwaCA9IGZpbmRfZGV2KCIvY2hvc2VuIik7Ci0gICAg ICAgICAgICAgICBzZXRfcHJvcGVydHkocGgsICJib290YXJncyIsIHN0cmR1cCgoY2hhciAqKWNt ZGxpbmUpLCBjbWRsaW5lX2xlbiArIDEpOworICAgICAgICBpZiAoa2VybmVsX2NtZGxpbmUpIHsK KyAgICAgICAgICAgICAgIHBoYW5kbGVfdCBwaDsKKwkgICAgICAgcHJpbnRrKCJbcHBjXSBLZXJu ZWwgY29tbWFuZCBsaW5lOiAlc1xuIiwga2VybmVsX2NtZGxpbmUpOworCSAgICAgICBwaCA9IGZp bmRfZGV2KCIvY2hvc2VuIik7CisgICAgICAgICAgICAgICBzZXRfcHJvcGVydHkocGgsICJib290 YXJncyIsIHN0cmR1cChrZXJuZWxfY21kbGluZSksIHN0cmxlbihrZXJuZWxfY21kbGluZSkgKyAx KTsKICAgICAgICAgfQogICAgICAgICBjYWxsX2VsZihpbml0cmRfaW1hZ2UsIGluaXRyZF9zaXpl LCBrZXJuZWxfaW1hZ2UpOwogICAgIH0KQEAgLTUwMSw3ICs0ODUsNyBAQAogdm9pZAogYm9vdCgg dm9pZCApCiB7Ci0JY2hhciBib290X2RldmljZSA9IG52cmFtX3JlYWQoMHgzNCk7CisJdWludDE2 X3QgYm9vdF9kZXZpY2UgPSBmd19jZmdfcmVhZF9pMTYoRldfQ0ZHX0JPT1RfREVWSUNFKTsKIAlm d29yZCgidXBkYXRlLWNob3NlbiIpOwogCWlmIChib290X2RldmljZSA9PSAnbScpIHsKIAkgICAg ICAgIGNoZWNrX3ByZWxvYWRlZF9rZXJuZWwoKTsKSW5kZXg6IG9wZW5iaW9zLXF1aWx0L2FyY2gv c3BhcmM2NC9vcGVuYmlvcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIG9wZW5iaW9zLXF1aWx0Lm9yaWcvYXJj aC9zcGFyYzY0L29wZW5iaW9zLmMJMjAwOS0wMi0xMyAxOTozOTowMi4wMDAwMDAwMDAgKzAwMDAK KysrIG9wZW5iaW9zLXF1aWx0L2FyY2gvc3BhcmM2NC9vcGVuYmlvcy5jCTIwMDktMDItMjggMTU6 Mzg6NDIuMDAwMDAwMDAwICswMDAwCkBAIC0xNSw5ICsxNSw2IEBACiAjaW5jbHVkZSAib3BlbmJp b3MuaCIKICNpbmNsdWRlICJvcGVuYmlvcy9wY2kuaCIKICNpbmNsdWRlICJhc20vcGNpLmgiCi0j aW5jbHVkZSAibGliYy9ieXRlb3JkZXIuaCIKLSNkZWZpbmUgY3B1X3RvX2JlMTYoeCkgX19jcHVf dG9fYmUxNih4KQotI2luY2x1ZGUgIm9wZW5iaW9zL2Zpcm13YXJlX2FiaS5oIgogI2luY2x1ZGUg ImJvb3QuaCIKICNpbmNsdWRlICIuLi8uLi9kcml2ZXJzL3RpbWVyLmgiIC8vIFhYWAogI2RlZmlu ZSBOT19RRU1VX1BST1RPUwpAQCAtNDIsMTEgKzM5LDkgQEAKICNkZWZpbmUgTlZSQU1fU0laRSAg ICAgICAweDIwMDAKICNkZWZpbmUgTlZSQU1fSURQUk9NICAgICAweDFmZDgKICNkZWZpbmUgTlZS QU1fSURQUk9NX1NJWkUgMzIKLSNkZWZpbmUgTlZSQU1fT0JfU1RBUlQgICAoc2l6ZW9mKG9od2Nm Z192M190KSArIHNpemVvZihzdHJ1Y3Qgc3BhcmNfYXJjaF9jZmcpKQorI2RlZmluZSBOVlJBTV9P Ql9TVEFSVCAgICgwKQogI2RlZmluZSBOVlJBTV9PQl9TSVpFICAgICgoMHgxZmQwIC0gTlZSQU1f T0JfU1RBUlQpICYgfjE1KQogCi1zdGF0aWMgb2h3Y2ZnX3YzX3QgbnZfaW5mbzsKLQogI2RlZmlu ZSBPQklPX0NNRExJTkVfTUFYIDI1Ngogc3RhdGljIGNoYXIgb2Jpb19jbWRsaW5lW09CSU9fQ01E TElORV9NQVhdOwogCkBAIC0yNzUsNyArMjcwLDcgQEAKIAogdm9pZCBhcmNoX252cmFtX2dldChj aGFyICpkYXRhKQogewotICAgIHVpbnQzMl90IHNpemU7CisgICAgdWludDMyX3Qgc2l6ZSA9IDA7 CiAgICAgY29uc3Qgc3RydWN0IGNwdWRlZiAqY3B1OwogICAgIGNvbnN0IGNoYXIgKmJvb3RwYXRo OwogICAgIGNoYXIgYnVmWzI1Nl07CkBAIC0yODQsOCArMjc5LDcgQEAKICAgICB1aW50MzJfdCBj bG9ja19mcmVxdWVuY3k7CiAgICAgdWludDE2X3QgbWFjaGluZV9pZDsKICAgICBjb25zdCBjaGFy ICpzdGRpbl9wYXRoLCAqc3Rkb3V0X3BhdGg7Ci0KLSAgICBudnJhbV9yZWFkKDAsIChjaGFyICop Jm52X2luZm8sIHNpemVvZihvaHdjZmdfdjNfdCkpOworICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9j bWRsaW5lOwogCiAgICAgZndfY2ZnX2luaXQoKTsKIApAQCAtMzA0LDE2ICsyOTgsMjAgQEAKICAg ICAgICAgZm9yKDs7KTsKICAgICB9CiAKLSAgICBrZXJuZWxfaW1hZ2UgPSBudl9pbmZvLmtlcm5l bF9pbWFnZTsKLSAgICBrZXJuZWxfc2l6ZSA9IG52X2luZm8ua2VybmVsX3NpemU7Ci0gICAgc2l6 ZSA9IG52X2luZm8uY21kbGluZV9zaXplOwotICAgIGlmIChzaXplID4gT0JJT19DTURMSU5FX01B WCAtIDEpCi0gICAgICAgIHNpemUgPSBPQklPX0NNRExJTkVfTUFYIC0gMTsKLSAgICBtZW1jcHko Jm9iaW9fY21kbGluZSwgKHZvaWQgKikobG9uZyludl9pbmZvLmNtZGxpbmUsIHNpemUpOworICAg IGtlcm5lbF9zaXplID0gZndfY2ZnX3JlYWRfaTMyKEZXX0NGR19LRVJORUxfU0laRSk7CisgICAg aWYgKGtlcm5lbF9zaXplKQorICAgICAgICBrZXJuZWxfaW1hZ2UgPSBmd19jZmdfcmVhZF9pNjQo RldfQ0ZHX0tFUk5FTF9BRERSKTsKKyAgICBrZXJuZWxfY21kbGluZSA9IChjb25zdCBjaGFyICop IGZ3X2NmZ19yZWFkX2k2NChGV19DRkdfS0VSTkVMX0NNRExJTkUpOworICAgIGlmIChrZXJuZWxf Y21kbGluZSkgeworICAgICAgICBzaXplID0gc3RybGVuKGtlcm5lbF9jbWRsaW5lKTsKKyAgICAg ICAgaWYgKHNpemUgPiBPQklPX0NNRExJTkVfTUFYIC0gMSkKKyAgICAgICAgICAgIHNpemUgPSBP QklPX0NNRExJTkVfTUFYIC0gMTsKKyAgICAgICAgbWVtY3B5KCZvYmlvX2NtZGxpbmUsIGtlcm5l bF9jbWRsaW5lLCBzaXplKTsKKyAgICB9CiAgICAgb2Jpb19jbWRsaW5lW3NpemVdID0gJ1wwJzsK ICAgICBxZW11X2NtZGxpbmUgPSAodWludDY0X3Qpb2Jpb19jbWRsaW5lOwogICAgIGNtZGxpbmVf c2l6ZSA9IHNpemU7Ci0gICAgYm9vdF9kZXZpY2UgPSBudl9pbmZvLmJvb3RfZGV2aWNlc1swXTsK KyAgICBib290X2RldmljZSA9IGZ3X2NmZ19yZWFkX2kxNihGV19DRkdfQk9PVF9ERVZJQ0UpOwog CiAgICAgaWYgKGtlcm5lbF9zaXplKQogICAgICAgICBwcmludGsoImtlcm5lbCBhZGRyICVsbHgg c2l6ZSAlbGx4XG4iLCBrZXJuZWxfaW1hZ2UsIGtlcm5lbF9zaXplKTsKQEAgLTM3Miw3ICszNzAs NyBAQAogICAgIHB1c2hfc3RyKCIvY2hvc2VuIik7CiAgICAgZndvcmQoImZpbmQtZGV2aWNlIik7 CiAKLSAgICBpZiAobnZfaW5mby5ib290X2RldmljZXNbMF0gPT0gJ2MnKQorICAgIGlmIChib290 X2RldmljZSA9PSAnYycpCiAgICAgICAgIGJvb3RwYXRoID0gImRpc2s6YSI7CiAgICAgZWxzZQog ICAgICAgICBib290cGF0aCA9ICJjZHJvbTphIjsKSW5kZXg6IG9wZW5iaW9zLXF1aWx0L2RyaXZl cnMvb2Jpby5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIG9wZW5iaW9zLXF1aWx0Lm9yaWcvZHJpdmVycy9vYmlv LmMJMjAwOS0wMi0wOSAxOTo1MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIG9wZW5iaW9zLXF1aWx0 L2RyaXZlcnMvb2Jpby5jCTIwMDktMDItMjggMTU6Mzg6NDIuMDAwMDAwMDAwICswMDAwCkBAIC0y MCw4ICsyMCw2IEBACiAjaW5jbHVkZSAib3BlbmJpb3MvbnZyYW0uaCIKICNpbmNsdWRlICJvZm1l bS5oIgogI2luY2x1ZGUgIm9iaW8uaCIKLSNkZWZpbmUgY3B1X3RvX2JlMTYoeCkgX19jcHVfdG9f YmUxNih4KQotI2luY2x1ZGUgIm9wZW5iaW9zL2Zpcm13YXJlX2FiaS5oIgogI2RlZmluZSBOT19R RU1VX1BST1RPUwogI2luY2x1ZGUgIm9wZW5iaW9zL2Z3X2NmZy5oIgogI2luY2x1ZGUgImVzY2Mu aCIKQEAgLTE1Nyw5ICsxNTUsOCBAQAogfQogCiBzdGF0aWMgdW5zaWduZWQgY2hhciAqbnZyYW07 Ci1zdGF0aWMgb2h3Y2ZnX3YzX3QgbnZfaW5mbzsKIAotI2RlZmluZSBOVlJBTV9PQl9TVEFSVCAg IChzaXplb2Yob2h3Y2ZnX3YzX3QpICsgc2l6ZW9mKHN0cnVjdCBzcGFyY19hcmNoX2NmZykpCisj ZGVmaW5lIE5WUkFNX09CX1NUQVJUICAgKDApCiAjZGVmaW5lIE5WUkFNX09CX1NJWkUgICAgKChO VlJBTV9JRFBST00gLSBOVlJBTV9PQl9TVEFSVCkgJiB+MTUpCiAKIHZvaWQKQEAgLTY1NCwxNCAr NjUxLDE0IEBACiAgICAgY29uc3QgY2hhciAqc3RkaW4sICpzdGRvdXQ7CiAgICAgdW5zaWduZWQg aW50IGk7CiAgICAgY2hhciBub2dyYXBoaWM7Ci0gICAgdWludDMyX3Qgc2l6ZTsKKyAgICB1aW50 MzJfdCBzaXplID0gMDsKICAgICB1aW50MTZfdCBtYWNoaW5lX2lkOwogICAgIGNvbnN0IHN0cnVj dCBjcHVkZWYgKmNwdTsKICAgICBjb25zdCBzdHJ1Y3QgbWFjaGRlZiAqbWFjaDsKLSAgICBvaHdj ZmdfdjNfdCAqaGVhZGVyOwogICAgIGNoYXIgYnVmWzI1Nl07CiAgICAgdWludDMyX3QgdGVtcDsK ICAgICBwaGFuZGxlX3QgY2hvc2VuOworICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lOwog CiAgICAgb2JfbmV3X29iaW9fZGV2aWNlKCJlZXByb20iLCBOVUxMKTsKIApAQCAtNjk0LDIzICs2 OTEsMjEgQEAKICAgICAgICAgZm9yKDs7KTsKICAgICB9CiAKLSAgICBtZW1jcHkoJm52X2luZm8s IG52cmFtLCBzaXplb2YobnZfaW5mbykpOwotICAgIGtlcm5lbF9pbWFnZSA9IG52X2luZm8ua2Vy bmVsX2ltYWdlOwotICAgIGtlcm5lbF9zaXplID0gbnZfaW5mby5rZXJuZWxfc2l6ZTsKLSAgICBz aXplID0gbnZfaW5mby5jbWRsaW5lX3NpemU7Ci0gICAgaWYgKHNpemUgPiBPQklPX0NNRExJTkVf TUFYIC0gMSkKLSAgICAgICAgc2l6ZSA9IE9CSU9fQ01ETElORV9NQVggLSAxOwotICAgIG1lbWNw eSgmb2Jpb19jbWRsaW5lLCAodm9pZCAqKShsb25nKW52X2luZm8uY21kbGluZSwgc2l6ZSk7Cisg ICAga2VybmVsX3NpemUgPSBmd19jZmdfcmVhZF9pMzIoRldfQ0ZHX0tFUk5FTF9TSVpFKTsKKyAg ICBpZiAoa2VybmVsX3NpemUpCisgICAgICAgIGtlcm5lbF9pbWFnZSA9IGZ3X2NmZ19yZWFkX2kz MihGV19DRkdfS0VSTkVMX0FERFIpOworICAgIGtlcm5lbF9jbWRsaW5lID0gKGNvbnN0IGNoYXIg KikgZndfY2ZnX3JlYWRfaTMyKEZXX0NGR19LRVJORUxfQ01ETElORSk7CisgICAgaWYgKGtlcm5l bF9jbWRsaW5lKSB7CisgICAgICAgIHNpemUgPSBzdHJsZW4oa2VybmVsX2NtZGxpbmUpOworICAg ICAgICBpZiAoc2l6ZSA+IE9CSU9fQ01ETElORV9NQVggLSAxKQorICAgICAgICAgICAgc2l6ZSA9 IE9CSU9fQ01ETElORV9NQVggLSAxOworICAgICAgICBtZW1jcHkoJm9iaW9fY21kbGluZSwga2Vy bmVsX2NtZGxpbmUsIHNpemUpOworICAgIH0KICAgICBvYmlvX2NtZGxpbmVbc2l6ZV0gPSAnXDAn OwogICAgIHFlbXVfY21kbGluZSA9ICh1aW50MzJfdCkgJm9iaW9fY21kbGluZTsKICAgICBjbWRs aW5lX3NpemUgPSBzaXplOwotICAgIGhlYWRlciA9IChvaHdjZmdfdjNfdCAqKW52cmFtOwotICAg IGhlYWRlci0+a2VybmVsX2ltYWdlID0gMDsKLSAgICBoZWFkZXItPmtlcm5lbF9zaXplID0gMDsK LSAgICBoZWFkZXItPmNtZGxpbmVfc2l6ZSA9IDA7Ci0gICAgaGVhZGVyLT5jcmMgPSBPSFdfY29t cHV0ZV9jcmMoaGVhZGVyLCAweDAwLCAweEY4KTsKKyAgICBib290X2RldmljZSA9IGZ3X2NmZ19y ZWFkX2kxNihGV19DRkdfQk9PVF9ERVZJQ0UpOwogCi0gICAgYm9vdF9kZXZpY2UgPSBudl9pbmZv LmJvb3RfZGV2aWNlc1swXTsKICAgICBmd19jZmdfcmVhZChGV19DRkdfTk9HUkFQSElDLCAmbm9n cmFwaGljLCAxKTsKICAgICBncmFwaGljX2RlcHRoID0gZndfY2ZnX3JlYWRfaTE2KEZXX0NGR19T VU40TV9ERVBUSCk7CiAKSW5kZXg6IG9wZW5iaW9zLXF1aWx0L2luY2x1ZGUvb3BlbmJpb3MvZmly bXdhcmVfYWJpLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gb3BlbmJpb3MtcXVpbHQub3JpZy9pbmNsdWRlL29w ZW5iaW9zL2Zpcm13YXJlX2FiaS5oCTIwMDktMDItMDkgMTk6NTA6MDkuMDAwMDAwMDAwICswMDAw CisrKyBvcGVuYmlvcy1xdWlsdC9pbmNsdWRlL29wZW5iaW9zL2Zpcm13YXJlX2FiaS5oCTIwMDkt MDItMjggMTU6Mzg6NDIuMDAwMDAwMDAwICswMDAwCkBAIC0xLDExMyArMSw2IEBACiAjaWZuZGVm IEZJUk1XQVJFX0FCSV9ICiAjZGVmaW5lIEZJUk1XQVJFX0FCSV9ICiAKLSNpZm5kZWYgX19BU1NF TUJMWV9fCi0vKiBPcGVuIEhhY2snV2FyZSBOVlJBTSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSAq LwotCi0vKiBWZXJzaW9uIDMgKi8KLXR5cGVkZWYgc3RydWN0IG9od2NmZ192M190IG9od2NmZ192 M190Owotc3RydWN0IG9od2NmZ192M190IHsKLSAgICAvKiAweDAwOiBzdHJ1Y3R1cmUgaWRlbnRp ZmllciAgICAgICAgICAgICAgICAgICAgKi8KLSAgICB1aW50OF90ICBzdHJ1Y3RfaWRlbnRbMHgx MF07Ci0gICAgLyogMHgxMDogc3RydWN0dXJlIHZlcnNpb24gYW5kIE5WUkFNIGRlc2NyaXB0aW9u ICovCi0gICAgdWludDMyX3Qgc3RydWN0X3ZlcnNpb247Ci0gICAgdWludDE2X3QgbnZyYW1fc2l6 ZTsKLSAgICB1aW50MTZfdCBwYWQwOwotICAgIHVpbnQxNl90IG52cmFtX2FyY2hfcHRyOwotICAg IHVpbnQxNl90IG52cmFtX2FyY2hfc2l6ZTsKLSAgICB1aW50MTZfdCBudnJhbV9hcmNoX2NyYzsK LSAgICB1aW50OF90ICBwYWQxWzB4MDJdOwotICAgIC8qIDB4MjA6IGhvc3QgYXJjaGl0ZWN0dXJl ICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIHVpbnQ4X3QgIGFyY2hbMHgxMF07Ci0gICAg LyogMHgzMDogUkFNL1JPTSBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICovCi0gICAg dWludDY0X3QgUkFNMF9iYXNlOwotICAgIHVpbnQ2NF90IFJBTTBfc2l6ZTsKLSAgICB1aW50NjRf dCBSQU0xX2Jhc2U7Ci0gICAgdWludDY0X3QgUkFNMV9zaXplOwotICAgIHVpbnQ2NF90IFJBTTJf YmFzZTsKLSAgICB1aW50NjRfdCBSQU0yX3NpemU7Ci0gICAgdWludDY0X3QgUkFNM19iYXNlOwot ICAgIHVpbnQ2NF90IFJBTTNfc2l6ZTsKLSAgICB1aW50NjRfdCBST01fYmFzZTsKLSAgICB1aW50 NjRfdCBST01fc2l6ZTsKLSAgICAvKiAweDgwOiBLZXJuZWwgZGVzY3JpcHRpb24gICAgICAgICAg ICAgICAgICAgICAgKi8KLSAgICB1aW50NjRfdCBrZXJuZWxfaW1hZ2U7Ci0gICAgdWludDY0X3Qg a2VybmVsX3NpemU7Ci0gICAgLyogMHg5MDogS2VybmVsIGNvbW1hbmQgbGluZSAgICAgICAgICAg ICAgICAgICAgICovCi0gICAgdWludDY0X3QgY21kbGluZTsKLSAgICB1aW50NjRfdCBjbWRsaW5l X3NpemU7Ci0gICAgLyogMHhBMDogS2VybmVsIGJvb3QgaW1hZ2UgICAgICAgICAgICAgICAgICAg ICAgICovCi0gICAgdWludDY0X3QgaW5pdHJkX2ltYWdlOwotICAgIHVpbnQ2NF90IGluaXRyZF9z aXplOwotICAgIC8qIDB4QjA6IE5WUkFNIGltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqLwotICAgIHVpbnQ2NF90IE5WUkFNX2ltYWdlOwotICAgIHVpbnQ4X3QgIHBhZDJbOF07Ci0g ICAgLyogMHhDMDogZ3JhcGhpYyBjb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICovCi0g ICAgdWludDE2X3Qgd2lkdGg7Ci0gICAgdWludDE2X3QgaGVpZ2h0OwotICAgIHVpbnQxNl90IGRl cHRoOwotICAgIHVpbnQxNl90IGdyYXBoaWNfZmxhZ3M7Ci0gICAgLyogMHhDODogQ1BVcyBkZXNj cmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgdWludDhfdCAgbmJfY3B1czsK LSAgICB1aW50OF90ICBib290X2NwdTsKLSAgICB1aW50OF90ICBuYm9vdF9kZXZpY2VzOwotICAg IHVpbnQ4X3QgIHBhZDNbNV07Ci0gICAgLyogMHhEMDogYm9vdCBkZXZpY2VzICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCi0gICAgdWludDhfdCAgYm9vdF9kZXZpY2VzWzB4MTBdOwotICAg IC8qIDB4RTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAg IHVpbnQ4X3QgIHBhZDRbMHgxQ107IC8qIDI4ICovCi0gICAgLyogMHhGQzogY2hlY2tzdW0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgdWludDE2X3QgY3JjOwotICAgIHVp bnQ4X3QgIHBhZDVbMHgwMl07Ci19IF9fYXR0cmlidXRlX18gKCggcGFja2VkICkpOwotCi0jZGVm aW5lIE9IV19HRl9OT0dSQVBISUNTIDB4MDAwMQotCi1zdGF0aWMgaW5saW5lIHVpbnQxNl90Ci1P SFdfY3JjX3VwZGF0ZSAodWludDE2X3QgcHJldiwgdWludDE2X3QgdmFsdWUpCi17Ci0gICAgdWlu dDE2X3QgdG1wOwotICAgIHVpbnQxNl90IHBkLCBwZDEsIHBkMjsKLQotICAgIHRtcCA9IHByZXYg Pj4gODsKLSAgICBwZCA9IHByZXYgXiB2YWx1ZTsKLSAgICBwZDEgPSBwZCAmIDB4MDAwRjsKLSAg ICBwZDIgPSAoKHBkID4+IDQpICYgMHgwMDBGKSBeIHBkMTsKLSAgICB0bXAgXj0gKHBkMSA8PCAz KSB8IChwZDEgPDwgOCk7Ci0gICAgdG1wIF49IHBkMiB8IChwZDIgPDwgNykgfCAocGQyIDw8IDEy KTsKLQotICAgIHJldHVybiB0bXA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdWludDE2X3QKLU9IV19j b21wdXRlX2NyYyAob2h3Y2ZnX3YzX3QgKmhlYWRlciwgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90 IGNvdW50KQotewotICAgIHVpbnQzMl90IGk7Ci0gICAgdWludDE2X3QgY3JjID0gMHhGRkZGOwot ICAgIHVpbnQ4X3QgKnB0ciA9ICh1aW50OF90ICopaGVhZGVyOwotICAgIGludCBvZGQ7Ci0KLSAg ICBvZGQgPSBjb3VudCAmIDE7Ci0gICAgY291bnQgJj0gfjE7Ci0gICAgZm9yIChpID0gMDsgaSAh PSBjb3VudDsgaSsrKSB7Ci0gICAgICAgIGNyYyA9IE9IV19jcmNfdXBkYXRlKGNyYywgKHB0cltz dGFydCArIGldIDw8IDgpIHwgcHRyW3N0YXJ0ICsgaSArIDFdKTsKLSAgICB9Ci0gICAgaWYgKG9k ZCkgewotICAgICAgICBjcmMgPSBPSFdfY3JjX3VwZGF0ZShjcmMsIHB0cltzdGFydCArIGldIDw8 IDgpOwotICAgIH0KLQotICAgIHJldHVybiBjcmM7Ci19Ci0KLS8qIFNwYXJjMzIgcnVudGltZSBO VlJBTSBzdHJ1Y3R1cmUgZm9yIFNNUCBDUFUgYm9vdCAqLwotc3RydWN0IHNwYXJjX2FyY2hfY2Zn IHsKLSAgICB1aW50MzJfdCBzbXBfY3R4OwotICAgIHVpbnQzMl90IHNtcF9jdHh0Ymw7Ci0gICAg dWludDMyX3Qgc21wX2VudHJ5OwotICAgIHVpbnQ4X3QgdmFsaWQ7Ci0gICAgdWludDhfdCB1bnVz ZWRbNTFdOwotfTsKLQogLyogT3BlbkJJT1MgTlZSQU0gcGFydGl0aW9uICovCiBzdHJ1Y3QgT3Bl bkJJT1NfbnZwYXJ0X3YxIHsKICAgICB1aW50OF90IHNpZ25hdHVyZTsKQEAgLTE3NSwyNCArNjgs NCBAQAogCiAgICAgaGVhZGVyLT5jaGVja3N1bSA9IHRtcDsKIH0KLQotI2Vsc2UgLyogX19BU1NF TUJMWV9fICovCi0KLS8qIFN0cnVjdHVyZSBvZmZzZXRzIGZvciBhc20gdXNlICovCi0KLS8qIE9w ZW4gSGFjaydXYXJlIE5WUkFNIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlICovCi0jZGVmaW5lIE9I V19BUkNIX1BUUiAgIDB4MTgKLSNkZWZpbmUgT0hXX1JBTV9TSVpFICAgMHgzOAotI2RlZmluZSBP SFdfQk9PVF9DUFUgICAweEM5Ci0KLS8qIFNwYXJjMzIgcnVudGltZSBOVlJBTSBzdHJ1Y3R1cmUg Zm9yIFNNUCBDUFUgYm9vdCAqLwotI2RlZmluZSBTUEFSQ19TTVBfQ1RYICAgIDB4MAotI2RlZmlu ZSBTUEFSQ19TTVBfQ1RYVEJMIDB4NAotI2RlZmluZSBTUEFSQ19TTVBfRU5UUlkgIDB4OAotI2Rl ZmluZSBTUEFSQ19TTVBfVkFMSUQgIDB4YwotCi0vKiBTdW4gSURQUk9NIHN0cnVjdHVyZSBhdCB0 aGUgZW5kIG9mIE5WUkFNICovCi0jZGVmaW5lIFNQQVJDX01BQ0hJTkVfSUQgMHgxZmQ5Ci0KLSNl bmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiBGSVJNV0FSRV9BQklfSCAqLwo= --001636c5a768c9b8bb0463fc6de7 Content-Type: application/x-patch; name="qemu-0001-Add-new-entries-to-firmware-configuration-device.patch" Content-Disposition: attachment; filename="qemu-0001-Add-new-entries-to-firmware-configuration-device.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frqgmqdb RnJvbSAyNzczYmEyZDEzNTAxYzllZmZlZWJmY2VjNTk4OTNkZTVmOGU2MTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+ CkRhdGU6IE1vbiwgMTkgSmFuIDIwMDkgMTI6MjY6NTAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBB ZGQgbmV3IGVudHJpZXMgdG8gZmlybXdhcmUgY29uZmlndXJhdGlvbiBkZXZpY2UKClNpZ25lZC1v ZmYtYnk6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KLS0tCiBody9md19j ZmcuaCB8ICAgIDYgKysrKysrCiAxIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMCBk ZWxldGlvbnMoLSkKCkluZGV4OiBxZW11L2h3L2Z3X2NmZy5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy9ody9md19jZmcuaAkyMDA5LTAyLTE3IDE4OjI0OjQ4LjAwMDAwMDAwMCArMDAwMAorKysg cWVtdS9ody9md19jZmcuaAkyMDA5LTAyLTI4IDE1OjM3OjU4LjAwMDAwMDAwMCArMDAwMApAQCAt OCw2ICs4LDEyIEBACiAjZGVmaW5lIEZXX0NGR19OT0dSQVBISUMgICAgICAgIDB4MDQKICNkZWZp bmUgRldfQ0ZHX05CX0NQVVMgICAgICAgICAgMHgwNQogI2RlZmluZSBGV19DRkdfTUFDSElORV9J RCAgICAgICAweDA2CisjZGVmaW5lIEZXX0NGR19LRVJORUxfQUREUiAgICAgIDB4MDcKKyNkZWZp bmUgRldfQ0ZHX0tFUk5FTF9TSVpFICAgICAgMHgwOAorI2RlZmluZSBGV19DRkdfS0VSTkVMX0NN RExJTkUgICAweDA5CisjZGVmaW5lIEZXX0NGR19JTklUUkRfQUREUiAgICAgIDB4MGEKKyNkZWZp bmUgRldfQ0ZHX0lOSVRSRF9TSVpFICAgICAgMHgwYgorI2RlZmluZSBGV19DRkdfQk9PVF9ERVZJ Q0UgICAgICAweDBjCiAjZGVmaW5lIEZXX0NGR19NQVhfRU5UUlkgICAgICAgIDB4MTAKIAogI2Rl ZmluZSBGV19DRkdfV1JJVEVfQ0hBTk5FTCAgICAweDQwMDAK --001636c5a768c9b8bb0463fc6de7 Content-Type: application/x-patch; name="qemu-0002-Use-firmware-configuration-instead-of.patch" Content-Disposition: attachment; filename="qemu-0002-Use-firmware-configuration-instead-of.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frqgmuev RnJvbSA5MGJmYTE4MTEwY2IzOTk3YTAwYWYxNjczZTI3ODAyNzJjYjVkZGVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdXJlbGllbiBKYXJubyA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+ CkRhdGU6IE1vbiwgMTkgSmFuIDIwMDkgMTI6Mjg6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIXSBw cGNfb2xkd29ybGQ6IFVzZSBmaXJtd2FyZSBjb25maWd1cmF0aW9uIGluc3RlYWQgb2YgTlZSQU0K ClNpZ25lZC1vZmYtYnk6IEF1cmVsaWVuIEphcm5vIDxhdXJlbGllbkBhdXJlbDMyLm5ldD4KLS0t CiBody9wcGNfbWFjLmggICAgICB8ICAgIDEgKwogaHcvcHBjX29sZHdvcmxkLmMgfCAgIDI2ICsr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDE0IGRlbGV0aW9ucygtKQoKSW5kZXg6IHFlbXUvaHcvcHBjX21hYy5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHFlbXUub3JpZy9ody9wcGNfbWFjLmgJMjAwOS0wMi0xNyAxODoyNDo0OC4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvaHcvcHBjX21hYy5oCTIwMDktMDItMjggMTU6Mzg6MDEuMDAwMDAwMDAw ICswMDAwCkBAIC0zNSw2ICszNSw3IEBACiAjZGVmaW5lIFBST01fQUREUiAgICAgICAgIDB4ZmZm MDAwMDAKIAogI2RlZmluZSBLRVJORUxfTE9BRF9BRERSIDB4MDEwMDAwMDAKKyNkZWZpbmUgQ01E TElORV9BRERSICAgICAweDAxN2ZmMDAwCiAjZGVmaW5lIElOSVRSRF9MT0FEX0FERFIgMHgwMTgw MDAwMAogCiAjZGVmaW5lIEVTQ0NfQ0xPQ0sgMzY4NjQwMApJbmRleDogcWVtdS9ody9wcGNfb2xk d29ybGQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHBjX29sZHdvcmxkLmMJMjAwOS0w Mi0xNyAxODoyNDo0OC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjX29sZHdvcmxkLmMJ MjAwOS0wMi0yOCAxNTozODowMS4wMDAwMDAwMDAgKzAwMDAKQEAgLTExOCw4ICsxMTgsNiBAQAog ICAgIENQVVN0YXRlICplbnYgPSBOVUxMLCAqZW52c1tNQVhfQ1BVU107CiAgICAgY2hhciBidWZb MTAyNF07CiAgICAgcWVtdV9pcnEgKnBpYywgKipoZWF0aHJvd19pcnFzOwotICAgIG52cmFtX3Qg bnZyYW07Ci0gICAgbTQ4dDU5X3QgKm00OHQ1OTsKICAgICBpbnQgbGludXhfYm9vdCwgaTsKICAg ICByYW1fYWRkcl90IHJhbV9vZmZzZXQsIHZnYV9yYW1fb2Zmc2V0LCBiaW9zX29mZnNldCwgdmdh X2Jpb3Nfb2Zmc2V0OwogICAgIHVpbnQzMl90IGtlcm5lbF9iYXNlLCBpbml0cmRfYmFzZTsKQEAg LTEyOSw3ICsxMjcsNyBAQAogICAgIGludCB2Z2FfYmlvc19zaXplLCBiaW9zX3NpemU7CiAgICAg aW50IHBpY19tZW1faW5kZXgsIG52cmFtX21lbV9pbmRleCwgZGJkbWFfbWVtX2luZGV4LCBjdWRh X21lbV9pbmRleDsKICAgICBpbnQgZXNjY19tZW1faW5kZXgsIGlkZV9tZW1faW5kZXhbMl07Ci0g ICAgaW50IHBwY19ib290X2RldmljZTsKKyAgICB1aW50MTZfdCBwcGNfYm9vdF9kZXZpY2U7CiAg ICAgQmxvY2tEcml2ZXJTdGF0ZSAqaGRbTUFYX0lERV9CVVMgKiBNQVhfSURFX0RFVlNdOwogICAg IGludCBpbmRleDsKICAgICB2b2lkICpmd19jZmc7CkBAIC0zNjQsMjMgKzM2MiwyMyBAQAogICAg IGlmIChncmFwaGljX2RlcHRoICE9IDE1ICYmIGdyYXBoaWNfZGVwdGggIT0gMzIgJiYgZ3JhcGhp Y19kZXB0aCAhPSA4KQogICAgICAgICBncmFwaGljX2RlcHRoID0gMTU7CiAKLSAgICBtNDh0NTkg PSBtNDh0NTlfaW5pdCgwLCAweEZGRjA0MDAwLCAweDAwNzQsIE5WUkFNX1NJWkUsIDU5KTsKLSAg ICBudnJhbS5vcGFxdWUgPSBtNDh0NTk7Ci0gICAgbnZyYW0ucmVhZF9mbiA9ICZtNDh0NTlfcmVh ZDsKLSAgICBudnJhbS53cml0ZV9mbiA9ICZtNDh0NTlfd3JpdGU7Ci0gICAgUFBDX05WUkFNX3Nl dF9wYXJhbXMoJm52cmFtLCBOVlJBTV9TSVpFLCAiSEVBVEhST1ciLCByYW1fc2l6ZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICBwcGNfYm9vdF9kZXZpY2UsIGtlcm5lbF9iYXNlLCBrZXJuZWxf c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBrZXJuZWxfY21kbGluZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBpbml0cmRfYmFzZSwgaW5pdHJkX3NpemUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgLyogWFhYOiBuZWVkIGFuIG9wdGlvbiB0byBsb2FkIGEgTlZSQU0gaW1hZ2Ug Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAg IGdyYXBoaWNfd2lkdGgsIGdyYXBoaWNfaGVpZ2h0LCBncmFwaGljX2RlcHRoKTsKICAgICAvKiBO byBQQ0kgaW5pdDogdGhlIEJJT1Mgd2lsbCBkbyBpdCAqLwogCiAgICAgZndfY2ZnID0gZndfY2Zn X2luaXQoMCwgMCwgQ0ZHX0FERFIsIENGR19BRERSICsgMik7CiAgICAgZndfY2ZnX2FkZF9pMzIo ZndfY2ZnLCBGV19DRkdfSUQsIDEpOwogICAgIGZ3X2NmZ19hZGRfaTY0KGZ3X2NmZywgRldfQ0ZH X1JBTV9TSVpFLCAodWludDY0X3QpcmFtX3NpemUpOwogICAgIGZ3X2NmZ19hZGRfaTE2KGZ3X2Nm ZywgRldfQ0ZHX01BQ0hJTkVfSUQsIEFSQ0hfSEVBVEhST1cpOworICAgIGZ3X2NmZ19hZGRfaTMy KGZ3X2NmZywgRldfQ0ZHX0tFUk5FTF9BRERSLCBrZXJuZWxfYmFzZSk7CisgICAgZndfY2ZnX2Fk ZF9pMzIoZndfY2ZnLCBGV19DRkdfS0VSTkVMX1NJWkUsIGtlcm5lbF9zaXplKTsKKyAgICBpZiAo a2VybmVsX2NtZGxpbmUpIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdf S0VSTkVMX0NNRExJTkUsIENNRExJTkVfQUREUik7CisgICAgICAgIHN0cmNweSgoY2hhciAqKShw aHlzX3JhbV9iYXNlICsgQ01ETElORV9BRERSKSwga2VybmVsX2NtZGxpbmUpOworICAgIH0gZWxz ZSB7CisgICAgICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0tFUk5FTF9DTURMSU5F LCAwKTsKKyAgICB9CisgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfSU5JVFJEX0FE RFIsIGluaXRyZF9iYXNlKTsKKyAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19JTklU UkRfU0laRSwgaW5pdHJkX3NpemUpOworICAgIGZ3X2NmZ19hZGRfaTE2KGZ3X2NmZywgRldfQ0ZH X0JPT1RfREVWSUNFLCBwcGNfYm9vdF9kZXZpY2UpOwogfQogCiBRRU1VTWFjaGluZSBoZWF0aHJv d19tYWNoaW5lID0gewpJbmRleDogcWVtdS9ody9zdW40bS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy9ody9zdW40bS5jCTIwMDktMDItMTcgMTg6MjQ6NDguMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3N1bjRtLmMJMjAwOS0wMi0yOCAxNTozODowMS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3 NiwyMiArMTc2LDcgQEAKIAogc3RhdGljIGludCBudnJhbV9ib290X3NldCh2b2lkICpvcGFxdWUs IGNvbnN0IGNoYXIgKmJvb3RfZGV2aWNlKQogewotICAgIHVuc2lnbmVkIGludCBpOwotICAgIHVp bnQ4X3QgaW1hZ2Vbc2l6ZW9mKG9od2NmZ192M190KV07Ci0gICAgb2h3Y2ZnX3YzX3QgKmhlYWRl ciA9IChvaHdjZmdfdjNfdCAqKSZpbWFnZTsKLSAgICBtNDh0NTlfdCAqbnZyYW0gPSAobTQ4dDU5 X3QgKilvcGFxdWU7Ci0KLSAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGltYWdlKTsgaSsrKQot ICAgICAgICBpbWFnZVtpXSA9IG00OHQ1OV9yZWFkKG52cmFtLCBpKSAmIDB4ZmY7Ci0KLSAgICBw c3RyY3B5KChjaGFyICopaGVhZGVyLT5ib290X2RldmljZXMsIHNpemVvZihoZWFkZXItPmJvb3Rf ZGV2aWNlcyksCi0gICAgICAgICAgICBib290X2RldmljZSk7Ci0gICAgaGVhZGVyLT5uYm9vdF9k ZXZpY2VzID0gc3RybGVuKGJvb3RfZGV2aWNlKSAmIDB4ZmY7Ci0gICAgaGVhZGVyLT5jcmMgPSBj cHVfdG9fYmUxNihPSFdfY29tcHV0ZV9jcmMoaGVhZGVyLCAweDAwLCAweEY4KSk7Ci0KLSAgICBm b3IgKGkgPSAwOyBpIDwgc2l6ZW9mKGltYWdlKTsgaSsrKQotICAgICAgICBtNDh0NTlfd3JpdGUo bnZyYW0sIGksIGltYWdlW2ldKTsKLQorICAgIGZ3X2NmZ19hZGRfaTE2KG9wYXF1ZSwgRldfQ0ZH X0JPT1RfREVWSUNFLCBib290X2RldmljZVswXSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIw NCw0OCArMTg5LDExIEBACiAgICAgdW5zaWduZWQgaW50IGk7CiAgICAgdWludDMyX3Qgc3RhcnQs IGVuZDsKICAgICB1aW50OF90IGltYWdlWzB4MWZmMF07Ci0gICAgb2h3Y2ZnX3YzX3QgKmhlYWRl ciA9IChvaHdjZmdfdjNfdCAqKSZpbWFnZTsKLSAgICBzdHJ1Y3Qgc3BhcmNfYXJjaF9jZmcgKnNw YXJjX2hlYWRlcjsKICAgICBzdHJ1Y3QgT3BlbkJJT1NfbnZwYXJ0X3YxICpwYXJ0X2hlYWRlcjsK IAogICAgIG1lbXNldChpbWFnZSwgJ1wwJywgc2l6ZW9mKGltYWdlKSk7CiAKLSAgICAvLyBUcnkg dG8gbWF0Y2ggUFBDIE5WUkFNCi0gICAgcHN0cmNweSgoY2hhciAqKWhlYWRlci0+c3RydWN0X2lk ZW50LCBzaXplb2YoaGVhZGVyLT5zdHJ1Y3RfaWRlbnQpLAotICAgICAgICAgICAgIlFFTVVfQklP UyIpOwotICAgIGhlYWRlci0+c3RydWN0X3ZlcnNpb24gPSBjcHVfdG9fYmUzMigzKTsgLyogc3Ry dWN0dXJlIHYzICovCi0KLSAgICBoZWFkZXItPm52cmFtX3NpemUgPSBjcHVfdG9fYmUxNigweDIw MDApOwotICAgIGhlYWRlci0+bnZyYW1fYXJjaF9wdHIgPSBjcHVfdG9fYmUxNihzaXplb2Yob2h3 Y2ZnX3YzX3QpKTsKLSAgICBoZWFkZXItPm52cmFtX2FyY2hfc2l6ZSA9IGNwdV90b19iZTE2KHNp emVvZihzdHJ1Y3Qgc3BhcmNfYXJjaF9jZmcpKTsKLSAgICBwc3RyY3B5KChjaGFyICopaGVhZGVy LT5hcmNoLCBzaXplb2YoaGVhZGVyLT5hcmNoKSwgYXJjaCk7Ci0gICAgaGVhZGVyLT5uYl9jcHVz ID0gc21wX2NwdXMgJiAweGZmOwotICAgIGhlYWRlci0+UkFNMF9iYXNlID0gMDsKLSAgICBoZWFk ZXItPlJBTTBfc2l6ZSA9IGNwdV90b19iZTY0KCh1aW50NjRfdClSQU1fc2l6ZSk7Ci0gICAgcHN0 cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBzaXplb2YoaGVhZGVyLT5ib290X2Rl dmljZXMpLAotICAgICAgICAgICAgYm9vdF9kZXZpY2VzKTsKLSAgICBoZWFkZXItPm5ib290X2Rl dmljZXMgPSBzdHJsZW4oYm9vdF9kZXZpY2VzKSAmIDB4ZmY7Ci0gICAgaGVhZGVyLT5rZXJuZWxf aW1hZ2UgPSBjcHVfdG9fYmU2NCgodWludDY0X3QpS0VSTkVMX0xPQURfQUREUik7Ci0gICAgaGVh ZGVyLT5rZXJuZWxfc2l6ZSA9IGNwdV90b19iZTY0KCh1aW50NjRfdClrZXJuZWxfc2l6ZSk7Ci0g ICAgaWYgKGNtZGxpbmUpIHsKLSAgICAgICAgcHN0cmNweV90YXJncGh5cyhDTURMSU5FX0FERFIs IFRBUkdFVF9QQUdFX1NJWkUsIGNtZGxpbmUpOwotICAgICAgICBoZWFkZXItPmNtZGxpbmUgPSBj cHVfdG9fYmU2NCgodWludDY0X3QpQ01ETElORV9BRERSKTsKLSAgICAgICAgaGVhZGVyLT5jbWRs aW5lX3NpemUgPSBjcHVfdG9fYmU2NCgodWludDY0X3Qpc3RybGVuKGNtZGxpbmUpKTsKLSAgICB9 Ci0gICAgLy8gWFhYIGFkZCBpbml0cmRfaW1hZ2UsIGluaXRyZF9zaXplCi0gICAgaGVhZGVyLT53 aWR0aCA9IGNwdV90b19iZTE2KHdpZHRoKTsKLSAgICBoZWFkZXItPmhlaWdodCA9IGNwdV90b19i ZTE2KGhlaWdodCk7Ci0gICAgaGVhZGVyLT5kZXB0aCA9IGNwdV90b19iZTE2KGRlcHRoKTsKLSAg ICBpZiAobm9ncmFwaGljKQotICAgICAgICBoZWFkZXItPmdyYXBoaWNfZmxhZ3MgPSBjcHVfdG9f YmUxNihPSFdfR0ZfTk9HUkFQSElDUyk7Ci0KLSAgICBoZWFkZXItPmNyYyA9IGNwdV90b19iZTE2 KE9IV19jb21wdXRlX2NyYyhoZWFkZXIsIDB4MDAsIDB4RjgpKTsKLQotICAgIC8vIEFyY2hpdGVj dHVyZSBzcGVjaWZpYyBoZWFkZXIKLSAgICBzdGFydCA9IHNpemVvZihvaHdjZmdfdjNfdCk7Ci0g ICAgc3BhcmNfaGVhZGVyID0gKHN0cnVjdCBzcGFyY19hcmNoX2NmZyAqKSZpbWFnZVtzdGFydF07 Ci0gICAgc3BhcmNfaGVhZGVyLT52YWxpZCA9IDA7Ci0gICAgc3RhcnQgKz0gc2l6ZW9mKHN0cnVj dCBzcGFyY19hcmNoX2NmZyk7CisgICAgc3RhcnQgPSAwOwogCiAgICAgLy8gT3BlbkJJT1MgbnZy YW0gdmFyaWFibGVzCiAgICAgLy8gVmFyaWFibGUgcGFydGl0aW9uCkBAIC0yNzcsOCArMjI1LDYg QEAKIAogICAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YoaW1hZ2UpOyBpKyspCiAgICAgICAgIG00 OHQ1OV93cml0ZShudnJhbSwgaSwgaW1hZ2VbaV0pOwotCi0gICAgcWVtdV9yZWdpc3Rlcl9ib290 X3NldChudnJhbV9ib290X3NldCwgbnZyYW0pOwogfQogCiBzdGF0aWMgdm9pZCAqc2xhdmlvX2lu dGN0bDsKQEAgLTYwNCw2ICs1NTAsMTggQEAKICAgICBmd19jZmdfYWRkX2k2NChmd19jZmcsIEZX X0NGR19SQU1fU0laRSwgKHVpbnQ2NF90KXJhbV9zaXplKTsKICAgICBmd19jZmdfYWRkX2kxNihm d19jZmcsIEZXX0NGR19NQUNISU5FX0lELCBod2RlZi0+bWFjaGluZV9pZCk7CiAgICAgZndfY2Zn X2FkZF9pMTYoZndfY2ZnLCBGV19DRkdfU1VONE1fREVQVEgsIGdyYXBoaWNfZGVwdGgpOworICAg IGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0tFUk5FTF9BRERSLCBLRVJORUxfTE9BRF9B RERSKTsKKyAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfU0laRSwga2Vy bmVsX3NpemUpOworICAgIGlmIChrZXJuZWxfY21kbGluZSkgeworICAgICAgICBmd19jZmdfYWRk X2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfQ01ETElORSwgQ01ETElORV9BRERSKTsKKyAgICAg ICAgc3RyY3B5KChjaGFyICopKHBoeXNfcmFtX2Jhc2UgKyBDTURMSU5FX0FERFIpLCBrZXJuZWxf Y21kbGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBG V19DRkdfS0VSTkVMX0NNRExJTkUsIDApOworICAgIH0KKyAgICBmd19jZmdfYWRkX2kzMihmd19j ZmcsIEZXX0NGR19JTklUUkRfQUREUiwgSU5JVFJEX0xPQURfQUREUik7CisgICAgZndfY2ZnX2Fk ZF9pMzIoZndfY2ZnLCBGV19DRkdfSU5JVFJEX1NJWkUsIDApOyAvLyBub3QgdXNlZAorICAgIGZ3 X2NmZ19hZGRfaTE2KGZ3X2NmZywgRldfQ0ZHX0JPT1RfREVWSUNFLCBib290X2RldmljZVswXSk7 CisgICAgcWVtdV9yZWdpc3Rlcl9ib290X3NldChudnJhbV9ib290X3NldCwgZndfY2ZnKTsKIH0K IAogZW51bSB7CkBAIC0xMzYyLDYgKzEzMjAsMTggQEAKICAgICBmd19jZmdfYWRkX2kzMihmd19j ZmcsIEZXX0NGR19JRCwgMSk7CiAgICAgZndfY2ZnX2FkZF9pNjQoZndfY2ZnLCBGV19DRkdfUkFN X1NJWkUsICh1aW50NjRfdClyYW1fc2l6ZSk7CiAgICAgZndfY2ZnX2FkZF9pMTYoZndfY2ZnLCBG V19DRkdfTUFDSElORV9JRCwgaHdkZWYtPm1hY2hpbmVfaWQpOworICAgIGZ3X2NmZ19hZGRfaTE2 KGZ3X2NmZywgRldfQ0ZHX1NVTjRNX0RFUFRILCBncmFwaGljX2RlcHRoKTsKKyAgICBmd19jZmdf YWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfQUREUiwgS0VSTkVMX0xPQURfQUREUik7Cisg ICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfS0VSTkVMX1NJWkUsIGtlcm5lbF9zaXpl KTsKKyAgICBpZiAoa2VybmVsX2NtZGxpbmUpIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIoZndf Y2ZnLCBGV19DRkdfS0VSTkVMX0NNRExJTkUsIENNRExJTkVfQUREUik7CisgICAgICAgIHN0cmNw eSgoY2hhciAqKShwaHlzX3JhbV9iYXNlICsgQ01ETElORV9BRERSKSwga2VybmVsX2NtZGxpbmUp OworICAgIH0gZWxzZSB7CisgICAgICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0tF Uk5FTF9DTURMSU5FLCAwKTsKKyAgICB9CisgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19D RkdfSU5JVFJEX0FERFIsIElOSVRSRF9MT0FEX0FERFIpOworICAgIGZ3X2NmZ19hZGRfaTMyKGZ3 X2NmZywgRldfQ0ZHX0lOSVRSRF9TSVpFLCAwKTsgLy8gbm90IHVzZWQKKyAgICBmd19jZmdfYWRk X2kxNihmd19jZmcsIEZXX0NGR19CT09UX0RFVklDRSwgYm9vdF9kZXZpY2VbMF0pOwogfQogCiAv KiBTUEFSQ3NlcnZlciAxMDAwIGhhcmR3YXJlIGluaXRpYWxpc2F0aW9uICovCkBAIC0xNTgwLDYg KzE1NTAsMTggQEAKICAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19JRCwgMSk7CiAg ICAgZndfY2ZnX2FkZF9pNjQoZndfY2ZnLCBGV19DRkdfUkFNX1NJWkUsICh1aW50NjRfdClyYW1f c2l6ZSk7CiAgICAgZndfY2ZnX2FkZF9pMTYoZndfY2ZnLCBGV19DRkdfTUFDSElORV9JRCwgaHdk ZWYtPm1hY2hpbmVfaWQpOworICAgIGZ3X2NmZ19hZGRfaTE2KGZ3X2NmZywgRldfQ0ZHX1NVTjRN X0RFUFRILCBncmFwaGljX2RlcHRoKTsKKyAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NG R19LRVJORUxfQUREUiwgS0VSTkVMX0xPQURfQUREUik7CisgICAgZndfY2ZnX2FkZF9pMzIoZndf Y2ZnLCBGV19DRkdfS0VSTkVMX1NJWkUsIGtlcm5lbF9zaXplKTsKKyAgICBpZiAoa2VybmVsX2Nt ZGxpbmUpIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfS0VSTkVMX0NN RExJTkUsIENNRExJTkVfQUREUik7CisgICAgICAgIHN0cmNweSgoY2hhciAqKShwaHlzX3JhbV9i YXNlICsgQ01ETElORV9BRERSKSwga2VybmVsX2NtZGxpbmUpOworICAgIH0gZWxzZSB7CisgICAg ICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0tFUk5FTF9DTURMSU5FLCAwKTsKKyAg ICB9CisgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfSU5JVFJEX0FERFIsIElOSVRS RF9MT0FEX0FERFIpOworICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0lOSVRSRF9T SVpFLCAwKTsgLy8gbm90IHVzZWQKKyAgICBmd19jZmdfYWRkX2kxNihmd19jZmcsIEZXX0NGR19C T09UX0RFVklDRSwgYm9vdF9kZXZpY2VbMF0pOwogfQogCiAvKiBTUEFSQ3N0YXRpb24gMiBoYXJk d2FyZSBpbml0aWFsaXNhdGlvbiAqLwpJbmRleDogcWVtdS9ody9zdW40dS5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHFlbXUub3JpZy9ody9zdW40dS5jCTIwMDktMDItMjEgMTE6MTA6MjAuMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L2h3L3N1bjR1LmMJMjAwOS0wMi0yOCAxNTozODowMS4wMDAwMDAwMDAgKzAw MDAKQEAgLTkxLDIyICs5MSw3IEBACiAKIHN0YXRpYyBpbnQgbnZyYW1fYm9vdF9zZXQodm9pZCAq b3BhcXVlLCBjb25zdCBjaGFyICpib290X2RldmljZSkKIHsKLSAgICB1bnNpZ25lZCBpbnQgaTsK LSAgICB1aW50OF90IGltYWdlW3NpemVvZihvaHdjZmdfdjNfdCldOwotICAgIG9od2NmZ192M190 ICpoZWFkZXIgPSAob2h3Y2ZnX3YzX3QgKikmaW1hZ2U7Ci0gICAgbTQ4dDU5X3QgKm52cmFtID0g KG00OHQ1OV90ICopb3BhcXVlOwotCi0gICAgZm9yIChpID0gMDsgaSA8IHNpemVvZihpbWFnZSk7 IGkrKykKLSAgICAgICAgaW1hZ2VbaV0gPSBtNDh0NTlfcmVhZChudnJhbSwgaSkgJiAweGZmOwot Ci0gICAgcHN0cmNweSgoY2hhciAqKWhlYWRlci0+Ym9vdF9kZXZpY2VzLCBzaXplb2YoaGVhZGVy LT5ib290X2RldmljZXMpLAotICAgICAgICAgICAgYm9vdF9kZXZpY2UpOwotICAgIGhlYWRlci0+ bmJvb3RfZGV2aWNlcyA9IHN0cmxlbihib290X2RldmljZSkgJiAweGZmOwotICAgIGhlYWRlci0+ Y3JjID0gY3B1X3RvX2JlMTYoT0hXX2NvbXB1dGVfY3JjKGhlYWRlciwgMHgwMCwgMHhGOCkpOwot Ci0gICAgZm9yIChpID0gMDsgaSA8IHNpemVvZihpbWFnZSk7IGkrKykKLSAgICAgICAgbTQ4dDU5 X3dyaXRlKG52cmFtLCBpLCBpbWFnZVtpXSk7Ci0KKyAgICBmd19jZmdfYWRkX2kxNihvcGFxdWUs IEZXX0NGR19CT09UX0RFVklDRSwgYm9vdF9kZXZpY2VbMF0pOwogICAgIHJldHVybiAwOwogfQog CkBAIC0xMjQsNTEgKzEwOSwxMSBAQAogICAgIHVuc2lnbmVkIGludCBpOwogICAgIHVpbnQzMl90 IHN0YXJ0LCBlbmQ7CiAgICAgdWludDhfdCBpbWFnZVsweDFmZjBdOwotICAgIG9od2NmZ192M190 ICpoZWFkZXIgPSAob2h3Y2ZnX3YzX3QgKikmaW1hZ2U7Ci0gICAgc3RydWN0IHNwYXJjX2FyY2hf Y2ZnICpzcGFyY19oZWFkZXI7CiAgICAgc3RydWN0IE9wZW5CSU9TX252cGFydF92MSAqcGFydF9o ZWFkZXI7CiAKICAgICBtZW1zZXQoaW1hZ2UsICdcMCcsIHNpemVvZihpbWFnZSkpOwogCi0gICAg Ly8gVHJ5IHRvIG1hdGNoIFBQQyBOVlJBTQotICAgIHBzdHJjcHkoKGNoYXIgKiloZWFkZXItPnN0 cnVjdF9pZGVudCwgc2l6ZW9mKGhlYWRlci0+c3RydWN0X2lkZW50KSwKLSAgICAgICAgICAgICJR RU1VX0JJT1MiKTsKLSAgICBoZWFkZXItPnN0cnVjdF92ZXJzaW9uID0gY3B1X3RvX2JlMzIoMyk7 IC8qIHN0cnVjdHVyZSB2MyAqLwotCi0gICAgaGVhZGVyLT5udnJhbV9zaXplID0gY3B1X3RvX2Jl MTYoTlZSQU1fc2l6ZSk7Ci0gICAgaGVhZGVyLT5udnJhbV9hcmNoX3B0ciA9IGNwdV90b19iZTE2 KHNpemVvZihvaHdjZmdfdjNfdCkpOwotICAgIGhlYWRlci0+bnZyYW1fYXJjaF9zaXplID0gY3B1 X3RvX2JlMTYoc2l6ZW9mKHN0cnVjdCBzcGFyY19hcmNoX2NmZykpOwotICAgIHBzdHJjcHkoKGNo YXIgKiloZWFkZXItPmFyY2gsIHNpemVvZihoZWFkZXItPmFyY2gpLCBhcmNoKTsKLSAgICBoZWFk ZXItPm5iX2NwdXMgPSBzbXBfY3B1cyAmIDB4ZmY7Ci0gICAgaGVhZGVyLT5SQU0wX2Jhc2UgPSAw OwotICAgIGhlYWRlci0+UkFNMF9zaXplID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90KVJBTV9zaXpl KTsKLSAgICBwc3RyY3B5KChjaGFyICopaGVhZGVyLT5ib290X2RldmljZXMsIHNpemVvZihoZWFk ZXItPmJvb3RfZGV2aWNlcyksCi0gICAgICAgICAgICBib290X2RldmljZXMpOwotICAgIGhlYWRl ci0+bmJvb3RfZGV2aWNlcyA9IHN0cmxlbihib290X2RldmljZXMpICYgMHhmZjsKLSAgICBoZWFk ZXItPmtlcm5lbF9pbWFnZSA9IGNwdV90b19iZTY0KCh1aW50NjRfdClrZXJuZWxfaW1hZ2UpOwot ICAgIGhlYWRlci0+a2VybmVsX3NpemUgPSBjcHVfdG9fYmU2NCgodWludDY0X3Qpa2VybmVsX3Np emUpOwotICAgIGlmIChjbWRsaW5lKSB7Ci0gICAgICAgIHBzdHJjcHlfdGFyZ3BoeXMoQ01ETElO RV9BRERSLCBUQVJHRVRfUEFHRV9TSVpFLCBjbWRsaW5lKTsKLSAgICAgICAgaGVhZGVyLT5jbWRs aW5lID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90KUNNRExJTkVfQUREUik7Ci0gICAgICAgIGhlYWRl ci0+Y21kbGluZV9zaXplID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90KXN0cmxlbihjbWRsaW5lKSk7 Ci0gICAgfQotICAgIGhlYWRlci0+aW5pdHJkX2ltYWdlID0gY3B1X3RvX2JlNjQoKHVpbnQ2NF90 KWluaXRyZF9pbWFnZSk7Ci0gICAgaGVhZGVyLT5pbml0cmRfc2l6ZSA9IGNwdV90b19iZTY0KCh1 aW50NjRfdClpbml0cmRfc2l6ZSk7Ci0gICAgaGVhZGVyLT5OVlJBTV9pbWFnZSA9IGNwdV90b19i ZTY0KCh1aW50NjRfdClOVlJBTV9pbWFnZSk7Ci0KLSAgICBoZWFkZXItPndpZHRoID0gY3B1X3Rv X2JlMTYod2lkdGgpOwotICAgIGhlYWRlci0+aGVpZ2h0ID0gY3B1X3RvX2JlMTYoaGVpZ2h0KTsK LSAgICBoZWFkZXItPmRlcHRoID0gY3B1X3RvX2JlMTYoZGVwdGgpOwotICAgIGlmIChub2dyYXBo aWMpCi0gICAgICAgIGhlYWRlci0+Z3JhcGhpY19mbGFncyA9IGNwdV90b19iZTE2KE9IV19HRl9O T0dSQVBISUNTKTsKLQotICAgIGhlYWRlci0+Y3JjID0gY3B1X3RvX2JlMTYoT0hXX2NvbXB1dGVf Y3JjKGhlYWRlciwgMHgwMCwgMHhGOCkpOwotCi0gICAgLy8gQXJjaGl0ZWN0dXJlIHNwZWNpZmlj IGhlYWRlcgotICAgIHN0YXJ0ID0gc2l6ZW9mKG9od2NmZ192M190KTsKLSAgICBzcGFyY19oZWFk ZXIgPSAoc3RydWN0IHNwYXJjX2FyY2hfY2ZnICopJmltYWdlW3N0YXJ0XTsKLSAgICBzcGFyY19o ZWFkZXItPnZhbGlkID0gMDsKLSAgICBzdGFydCArPSBzaXplb2Yoc3RydWN0IHNwYXJjX2FyY2hf Y2ZnKTsKKyAgICBzdGFydCA9IDA7CiAKICAgICAvLyBPcGVuQklPUyBudnJhbSB2YXJpYWJsZXMK ICAgICAvLyBWYXJpYWJsZSBwYXJ0aXRpb24KQEAgLTIwMCw4ICsxNDUsNiBAQAogICAgIGZvciAo aSA9IDA7IGkgPCBzaXplb2YoaW1hZ2UpOyBpKyspCiAgICAgICAgIG00OHQ1OV93cml0ZShudnJh bSwgaSwgaW1hZ2VbaV0pOwogCi0gICAgcWVtdV9yZWdpc3Rlcl9ib290X3NldChudnJhbV9ib290 X3NldCwgbnZyYW0pOwotCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTU3NSw2ICs1MTgsMTggQEAK ICAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19JRCwgMSk7CiAgICAgZndfY2ZnX2Fk ZF9pNjQoZndfY2ZnLCBGV19DRkdfUkFNX1NJWkUsICh1aW50NjRfdClyYW1fc2l6ZSk7CiAgICAg ZndfY2ZnX2FkZF9pMTYoZndfY2ZnLCBGV19DRkdfTUFDSElORV9JRCwgaHdkZWYtPm1hY2hpbmVf aWQpOworICAgIGZ3X2NmZ19hZGRfaTMyKGZ3X2NmZywgRldfQ0ZHX0tFUk5FTF9BRERSLCBLRVJO RUxfTE9BRF9BRERSKTsKKyAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxf U0laRSwga2VybmVsX3NpemUpOworICAgIGlmIChrZXJuZWxfY21kbGluZSkgeworICAgICAgICBm d19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfQ01ETElORSwgQ01ETElORV9BRERS KTsKKyAgICAgICAgc3RyY3B5KChjaGFyICopKHBoeXNfcmFtX2Jhc2UgKyBDTURMSU5FX0FERFIp LCBrZXJuZWxfY21kbGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIo ZndfY2ZnLCBGV19DRkdfS0VSTkVMX0NNRExJTkUsIDApOworICAgIH0KKyAgICBmd19jZmdfYWRk X2kzMihmd19jZmcsIEZXX0NGR19JTklUUkRfQUREUiwgSU5JVFJEX0xPQURfQUREUik7CisgICAg ZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfSU5JVFJEX1NJWkUsIGluaXRyZF9zaXplKTsK KyAgICBmd19jZmdfYWRkX2kxNihmd19jZmcsIEZXX0NGR19CT09UX0RFVklDRSwgYm9vdF9kZXZp Y2VzWzBdKTsKKyAgICBxZW11X3JlZ2lzdGVyX2Jvb3Rfc2V0KG52cmFtX2Jvb3Rfc2V0LCBmd19j ZmcpOwogfQogCiBlbnVtIHsKSW5kZXg6IHFlbXUvaHcvZmlybXdhcmVfYWJpLmgKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gcWVtdS5vcmlnL2h3L2Zpcm13YXJlX2FiaS5oCTIwMDktMDItMTcgMTg6MjQ6NDguMDAw MDAwMDAwICswMDAwCisrKyBxZW11L2h3L2Zpcm13YXJlX2FiaS5oCTIwMDktMDItMjggMTU6Mzg6 MDIuMDAwMDAwMDAwICswMDAwCkBAIC0xLDExMyArMSw2IEBACiAjaWZuZGVmIEZJUk1XQVJFX0FC SV9ICiAjZGVmaW5lIEZJUk1XQVJFX0FCSV9ICiAKLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0vKiBP cGVuIEhhY2snV2FyZSBOVlJBTSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSAqLwotCi0vKiBWZXJz aW9uIDMgKi8KLXR5cGVkZWYgc3RydWN0IG9od2NmZ192M190IG9od2NmZ192M190Owotc3RydWN0 IG9od2NmZ192M190IHsKLSAgICAvKiAweDAwOiBzdHJ1Y3R1cmUgaWRlbnRpZmllciAgICAgICAg ICAgICAgICAgICAgKi8KLSAgICB1aW50OF90ICBzdHJ1Y3RfaWRlbnRbMHgxMF07Ci0gICAgLyog MHgxMDogc3RydWN0dXJlIHZlcnNpb24gYW5kIE5WUkFNIGRlc2NyaXB0aW9uICovCi0gICAgdWlu dDMyX3Qgc3RydWN0X3ZlcnNpb247Ci0gICAgdWludDE2X3QgbnZyYW1fc2l6ZTsKLSAgICB1aW50 MTZfdCBwYWQwOwotICAgIHVpbnQxNl90IG52cmFtX2FyY2hfcHRyOwotICAgIHVpbnQxNl90IG52 cmFtX2FyY2hfc2l6ZTsKLSAgICB1aW50MTZfdCBudnJhbV9hcmNoX2NyYzsKLSAgICB1aW50OF90 ICBwYWQxWzB4MDJdOwotICAgIC8qIDB4MjA6IGhvc3QgYXJjaGl0ZWN0dXJlICAgICAgICAgICAg ICAgICAgICAgICAqLwotICAgIHVpbnQ4X3QgIGFyY2hbMHgxMF07Ci0gICAgLyogMHgzMDogUkFN L1JPTSBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICovCi0gICAgdWludDY0X3QgUkFN MF9iYXNlOwotICAgIHVpbnQ2NF90IFJBTTBfc2l6ZTsKLSAgICB1aW50NjRfdCBSQU0xX2Jhc2U7 Ci0gICAgdWludDY0X3QgUkFNMV9zaXplOwotICAgIHVpbnQ2NF90IFJBTTJfYmFzZTsKLSAgICB1 aW50NjRfdCBSQU0yX3NpemU7Ci0gICAgdWludDY0X3QgUkFNM19iYXNlOwotICAgIHVpbnQ2NF90 IFJBTTNfc2l6ZTsKLSAgICB1aW50NjRfdCBST01fYmFzZTsKLSAgICB1aW50NjRfdCBST01fc2l6 ZTsKLSAgICAvKiAweDgwOiBLZXJuZWwgZGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAg Ki8KLSAgICB1aW50NjRfdCBrZXJuZWxfaW1hZ2U7Ci0gICAgdWludDY0X3Qga2VybmVsX3NpemU7 Ci0gICAgLyogMHg5MDogS2VybmVsIGNvbW1hbmQgbGluZSAgICAgICAgICAgICAgICAgICAgICov Ci0gICAgdWludDY0X3QgY21kbGluZTsKLSAgICB1aW50NjRfdCBjbWRsaW5lX3NpemU7Ci0gICAg LyogMHhBMDogS2VybmVsIGJvb3QgaW1hZ2UgICAgICAgICAgICAgICAgICAgICAgICovCi0gICAg dWludDY0X3QgaW5pdHJkX2ltYWdlOwotICAgIHVpbnQ2NF90IGluaXRyZF9zaXplOwotICAgIC8q IDB4QjA6IE5WUkFNIGltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIHVp bnQ2NF90IE5WUkFNX2ltYWdlOwotICAgIHVpbnQ4X3QgIHBhZDJbOF07Ci0gICAgLyogMHhDMDog Z3JhcGhpYyBjb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICovCi0gICAgdWludDE2X3Qg d2lkdGg7Ci0gICAgdWludDE2X3QgaGVpZ2h0OwotICAgIHVpbnQxNl90IGRlcHRoOwotICAgIHVp bnQxNl90IGdyYXBoaWNfZmxhZ3M7Ci0gICAgLyogMHhDODogQ1BVcyBkZXNjcmlwdGlvbiAgICAg ICAgICAgICAgICAgICAgICAgICovCi0gICAgdWludDhfdCAgbmJfY3B1czsKLSAgICB1aW50OF90 ICBib290X2NwdTsKLSAgICB1aW50OF90ICBuYm9vdF9kZXZpY2VzOwotICAgIHVpbnQ4X3QgIHBh ZDNbNV07Ci0gICAgLyogMHhEMDogYm9vdCBkZXZpY2VzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCi0gICAgdWludDhfdCAgYm9vdF9kZXZpY2VzWzB4MTBdOwotICAgIC8qIDB4RTAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgIHVpbnQ4X3QgIHBh ZDRbMHgxQ107IC8qIDI4ICovCi0gICAgLyogMHhGQzogY2hlY2tzdW0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCi0gICAgdWludDE2X3QgY3JjOwotICAgIHVpbnQ4X3QgIHBhZDVb MHgwMl07Ci19IF9fYXR0cmlidXRlX18gKCggcGFja2VkICkpOwotCi0jZGVmaW5lIE9IV19HRl9O T0dSQVBISUNTIDB4MDAwMQotCi1zdGF0aWMgaW5saW5lIHVpbnQxNl90Ci1PSFdfY3JjX3VwZGF0 ZSAodWludDE2X3QgcHJldiwgdWludDE2X3QgdmFsdWUpCi17Ci0gICAgdWludDE2X3QgdG1wOwot ICAgIHVpbnQxNl90IHBkLCBwZDEsIHBkMjsKLQotICAgIHRtcCA9IHByZXYgPj4gODsKLSAgICBw ZCA9IHByZXYgXiB2YWx1ZTsKLSAgICBwZDEgPSBwZCAmIDB4MDAwRjsKLSAgICBwZDIgPSAoKHBk ID4+IDQpICYgMHgwMDBGKSBeIHBkMTsKLSAgICB0bXAgXj0gKHBkMSA8PCAzKSB8IChwZDEgPDwg OCk7Ci0gICAgdG1wIF49IHBkMiB8IChwZDIgPDwgNykgfCAocGQyIDw8IDEyKTsKLQotICAgIHJl dHVybiB0bXA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdWludDE2X3QKLU9IV19jb21wdXRlX2NyYyAo b2h3Y2ZnX3YzX3QgKmhlYWRlciwgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IGNvdW50KQotewot ICAgIHVpbnQzMl90IGk7Ci0gICAgdWludDE2X3QgY3JjID0gMHhGRkZGOwotICAgIHVpbnQ4X3Qg KnB0ciA9ICh1aW50OF90ICopaGVhZGVyOwotICAgIGludCBvZGQ7Ci0KLSAgICBvZGQgPSBjb3Vu dCAmIDE7Ci0gICAgY291bnQgJj0gfjE7Ci0gICAgZm9yIChpID0gMDsgaSAhPSBjb3VudDsgaSsr KSB7Ci0gICAgICAgIGNyYyA9IE9IV19jcmNfdXBkYXRlKGNyYywgKHB0cltzdGFydCArIGldIDw8 IDgpIHwgcHRyW3N0YXJ0ICsgaSArIDFdKTsKLSAgICB9Ci0gICAgaWYgKG9kZCkgewotICAgICAg ICBjcmMgPSBPSFdfY3JjX3VwZGF0ZShjcmMsIHB0cltzdGFydCArIGldIDw8IDgpOwotICAgIH0K LQotICAgIHJldHVybiBjcmM7Ci19Ci0KLS8qIFNwYXJjMzIgcnVudGltZSBOVlJBTSBzdHJ1Y3R1 cmUgZm9yIFNNUCBDUFUgYm9vdCAqLwotc3RydWN0IHNwYXJjX2FyY2hfY2ZnIHsKLSAgICB1aW50 MzJfdCBzbXBfY3R4OwotICAgIHVpbnQzMl90IHNtcF9jdHh0Ymw7Ci0gICAgdWludDMyX3Qgc21w X2VudHJ5OwotICAgIHVpbnQ4X3QgdmFsaWQ7Ci0gICAgdWludDhfdCB1bnVzZWRbNTFdOwotfTsK LQogLyogT3BlbkJJT1MgTlZSQU0gcGFydGl0aW9uICovCiBzdHJ1Y3QgT3BlbkJJT1NfbnZwYXJ0 X3YxIHsKICAgICB1aW50OF90IHNpZ25hdHVyZTsKQEAgLTE3NSwyNCArNjgsNCBAQAogCiAgICAg aGVhZGVyLT5jaGVja3N1bSA9IHRtcDsKIH0KLQotI2Vsc2UgLyogX19BU1NFTUJMWV9fICovCi0K LS8qIFN0cnVjdHVyZSBvZmZzZXRzIGZvciBhc20gdXNlICovCi0KLS8qIE9wZW4gSGFjaydXYXJl IE5WUkFNIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlICovCi0jZGVmaW5lIE9IV19BUkNIX1BUUiAg IDB4MTgKLSNkZWZpbmUgT0hXX1JBTV9TSVpFICAgMHgzOAotI2RlZmluZSBPSFdfQk9PVF9DUFUg ICAweEM5Ci0KLS8qIFNwYXJjMzIgcnVudGltZSBOVlJBTSBzdHJ1Y3R1cmUgZm9yIFNNUCBDUFUg Ym9vdCAqLwotI2RlZmluZSBTUEFSQ19TTVBfQ1RYICAgIDB4MAotI2RlZmluZSBTUEFSQ19TTVBf Q1RYVEJMIDB4NAotI2RlZmluZSBTUEFSQ19TTVBfRU5UUlkgIDB4OAotI2RlZmluZSBTUEFSQ19T TVBfVkFMSUQgIDB4YwotCi0vKiBTdW4gSURQUk9NIHN0cnVjdHVyZSBhdCB0aGUgZW5kIG9mIE5W UkFNICovCi0jZGVmaW5lIFNQQVJDX01BQ0hJTkVfSUQgMHgxZmQ5Ci0KLSNlbmRpZiAvKiBfX0FT U0VNQkxZX18gKi8KICNlbmRpZiAvKiBGSVJNV0FSRV9BQklfSCAqLwpJbmRleDogcWVtdS9ody9w cGNfbmV3d29ybGQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHBjX25ld3dvcmxkLmMJ MjAwOS0wMi0xNyAxODoyNDo0OC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjX25ld3dv cmxkLmMJMjAwOS0wMi0yOCAxNTozODowMi4wMDAwMDAwMDAgKzAwMDAKQEAgLTMyMCw2ICszMjAs MTcgQEAKICAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19JRCwgMSk7CiAgICAgZndf Y2ZnX2FkZF9pNjQoZndfY2ZnLCBGV19DRkdfUkFNX1NJWkUsICh1aW50NjRfdClyYW1fc2l6ZSk7 CiAgICAgZndfY2ZnX2FkZF9pMTYoZndfY2ZnLCBGV19DRkdfTUFDSElORV9JRCwgQVJDSF9NQUM5 OSk7CisgICAgZndfY2ZnX2FkZF9pMzIoZndfY2ZnLCBGV19DRkdfS0VSTkVMX0FERFIsIGtlcm5l bF9iYXNlKTsKKyAgICBmd19jZmdfYWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfU0laRSwg a2VybmVsX3NpemUpOworICAgIGlmIChrZXJuZWxfY21kbGluZSkgeworICAgICAgICBmd19jZmdf YWRkX2kzMihmd19jZmcsIEZXX0NGR19LRVJORUxfQ01ETElORSwgQ01ETElORV9BRERSKTsKKyAg ICAgICAgc3RyY3B5KChjaGFyICopKHBoeXNfcmFtX2Jhc2UgKyBDTURMSU5FX0FERFIpLCBrZXJu ZWxfY21kbGluZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZndfY2ZnX2FkZF9pMzIoZndfY2Zn LCBGV19DRkdfS0VSTkVMX0NNRExJTkUsIDApOworICAgIH0KKyAgICBmd19jZmdfYWRkX2kzMihm d19jZmcsIEZXX0NGR19JTklUUkRfQUREUiwgaW5pdHJkX2Jhc2UpOworICAgIGZ3X2NmZ19hZGRf aTMyKGZ3X2NmZywgRldfQ0ZHX0lOSVRSRF9TSVpFLCBpbml0cmRfc2l6ZSk7CisgICAgZndfY2Zn X2FkZF9pMTYoZndfY2ZnLCBGV19DRkdfQk9PVF9ERVZJQ0UsIHBwY19ib290X2RldmljZSk7CiB9 CiAKIFFFTVVNYWNoaW5lIGNvcmU5OV9tYWNoaW5lID0gewo= --001636c5a768c9b8bb0463fc6de7--