From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v13 4/9] x86: add multiboot2 protocol support for EFI platforms Date: Wed, 25 Jan 2017 23:11:28 +0100 Message-ID: <1485382293-13800-5-git-send-email-daniel.kiper@oracle.com> References: <1485382293-13800-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cWVno-0002m6-Go for xen-devel@lists.xenproject.org; Wed, 25 Jan 2017 22:12:28 +0000 In-Reply-To: <1485382293-13800-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 Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org VGhpcyB3YXkgWGVuIGNhbiBiZSBsb2FkZWQgb24gRUZJIHBsYXRmb3JtcyB1c2luZyBHUlVCMiBh bmQKb3RoZXIgYm9vdCBsb2FkZXJzIHdoaWNoIHN1cHBvcnQgbXVsdGlib290MiBwcm90b2NvbC4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0t LQp2MTMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gbW92ZSB2Z2FfdGV4dF9idWZmZXIgYW5k IGVmaV9wbGF0Zm9ybSB0byAuaW5pdC5kYXRhIHNlY3Rpb24KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgICAtIHJlZHVjZSBudW1iZXIgb2YgZXJyb3IgYnJhbmNoZXMgaW4gRUZJ IGNvZGUgaW4geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAgLSByZW5hbWUgcnVuX2JzIGxhYmVsIHRvIC5McnVuX2JzCiAgICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBhbGlnbiB0aGUgc3RhY2sgYXMgVUVGSSBz cGVjIHJlcXVpcmVzCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBjaGFu Z2UgdHJhbXBvbGluZSByZWdpb24gbWVtb3J5IGxheW91dAogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgIC0gcmV2ZXJ0IGNoYW5nZXMgaW4gZWZpX2FyY2hfcHJlX2V4aXRfYm9v dCgpCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSByZWxvY2F0ZV90cmFt cG9saW5lKCkgbXVzdCBzZXQgdHJhbXBvbGluZV9waHlzIGZvciBhbGwgYm9vdGxvYWRlcnM7CiAg ICAgIG90aGVyd2lzZSBmYWxsYmFjayBhbGxvY2F0b3IgaXMgYWx3YXlzIHVzZWQgaWYgWGVuIHdh cyBsb2FkZWQgd2l0aAogICAgICBNdWx0aWJvb3QyIHByb3RvY29sLAogICAgLSBjaGFuZ2UgZXJy IHR5cGUgaW4gZWZpX211bHRpYm9vdDIoKSB0byAic3RhdGljIGNvbnN0IENIQVIxNiBfX2luaXRj b25zdCIKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIGNoYW5nZSBhc20g ImciIGNvbnN0cmFpbnQgdG8gInJtIiBpbiBlZmlfbXVsdGlib290MigpCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2ggYW5kIERvdWcgR29sZHN0ZWluKS4KCnYxMiAtIHN1Z2dlc3Rpb25z L2ZpeGVzOgogICAgLSByZW5hbWUgX19lZmk2NF9zdGFydCB0byBfX2VmaTY0X21iMl9zdGFydAog ICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAgLSB1c2UgZWZpX2FyY2hfbWVt b3J5X3NldHVwKCkgbWFjaGluZXJ5IGFzIHRyYW1wb2xpbmUKICAgICAgZXQgY29uc29ydGVzIG1h aW4gbWVtb3J5IGFsbG9jYXRvcgogICAgICAoc3VnZ2VzdGVkIGJ5IERvdWcgR29sZHN0ZWluKSwK ICAgIC0gYWxsb2NhdGUgc3BhY2UgZm9yIG1iaSBzdHJ1Y3QgaW4gZWZpX2FyY2hfbWVtb3J5X3Nl dHVwKCkgdG9vOwogICAgICB0aGlzIHRoaW5nIHdhcyBub3QgdGFrZW4gaW50byBhY2NvdW50IGlu IGVhcmxpZXIgcmVsZWFzZXMsCiAgICAtIHJldmVydCB0cmFtcG9saW5lIGV0IGNvbnNvcnRlcyBm YWxsYmFjayBtZW1vcnkgYWxsb2NhdG9yIGNvZGUKICAgICAgaW4gZWZpX2FyY2hfcHJvY2Vzc19t ZW1vcnlfbWFwKCkgdG8gY3VycmVudCB1cHN0cmVhbSBzdGF0ZQogICAgICAoc3VnZ2VzdGVkIGJ5 IERvdWcgR29sZHN0ZWluKSwKICAgIC0gZnVydGhlciBzaW1wbGlmeSBlZmlfYXJjaF9wcmVfZXhp dF9ib290KCkgY29kZSwKICAgIC0gY2FsbCBlZmlfYXJjaF9tZW1vcnlfc2V0dXAoKSBmcm9tIGVm aV9tdWx0aWJvb3QyKCkKICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRzdGVpbiksCiAgICAt IGZpeCBhc2VtYmx5IGNhbGwgYXJndW1lbnQgaW4geGVuL2FyY2gveDg2L2VmaS9zdHViLmMKICAg ICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKSwKICAgIC0gYWRkIEFTU0VSVCgpIGZvciB0 cmFtcG9saW5lIHNpemUKICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRzdGVpbiksCiAgICAt IGFkZCBLQigpIG1hY3JvCiAgICAgIChzdWdnZXN0ZWQgYnkgRG91ZyBHb2xkc3RlaW4pLAogICAg LSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciBhbmQg RG91ZyBHb2xkc3RlaW4pLgoKdjEwIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgICAtIHJlcGxhY2Ug bGptcGwgd2l0aCBscmV0cQogICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAg LSBpbnRyb2R1Y2UgZWZpX3BsYXRmb3JtIHRvIGluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkKICAg ICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKS4KCnY5IC0gc3VnZ2VzdGlvbnMvZml4ZXM6 CiAgIC0gdXNlIC5MIGxhYmVscyBpbnN0ZWFkIG9mIG51bWVyaWMgb25lcyBpbiBtdWx0aWJvb3Qy IGRhdGEgc2Nhbm5pbmcgbG9vcHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY4 IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIF9fYnNzX3N0YXJ0KCVyaXApL19fYnNzX2Vu ZCglcmlwKSBpbnN0ZWFkIG9mCiAgICAgb2YgLnN0YXJ0b2YuKC5ic3MpKCVyaXApLyQuc2l6ZW9m LiguYnNzKSBiZWNhdXNlCiAgICAgbGF0dGVyIGlzIG5vdCB0ZXN0ZWQgZXh0ZW5zaXZlbHkgaW4g ZGlmZmVyZW50CiAgICAgYnVpbHQgZW52aXJvbm1lbnRzIHlldAogICAgIChzdWdnZXN0ZWQgYnkg QW5kcmV3IENvb3BlciksCiAgIC0gZml4IG11bHRpYm9vdDIgZGF0YSBzY2FubmluZyBsb29wIGlu IHg4Nl8zMiBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gYWRkIGNo ZWNrIGZvciBleHRyYSBtZW0gZm9yIG1iaSBkYXRhIGlmIFhlbiBpcyBsb2FkZWQKICAgICB2aWEg bXVsdGlib290MiBwcm90b2NvbCBvbiBFRkkgcGxhdGZvcm0KICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkuCgp2NyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGRvIG5vdCBhbGxvY2F0ZSB0 d2ljZSBtZW1vcnkgZm9yIHRyYW1wb2xpbmUgaWYgd2Ugd2VyZQogICAgIGxvYWRlZCB2aWEgbXVs dGlib290MiBwcm90b2NvbCBvbiBFRkkgcGxhdGZvcm0sCiAgIC0gd3JhcCBsb25nIGxpbmUKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAt IGltcHJvdmUgbGFiZWwgbmFtZXMgaW4gYXNzZW1ibHkKICAgICBlcnJvciBwcmludGluZyBjb2Rl CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51 cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NCAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAtIHJlbW92ZSByZWR1bmRhbnQgQlNTIGFsaWdubWVudCwKICAgLSB1 cGRhdGUgQlNTIGFsaWdubWVudCBjaGVjaywKICAgLSB1c2UgX19zZXRfYml0KCkgaW5zdGVhZCBv ZiBzZXRfYml0KCkgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgpIGZyb20gZWZpX211bHRpYm9vdDIoKQogICAgIGV2ZW4g aWYgdGhlIHNhbWUgd29yayBpcyBkb25lIGxhdGVyIGluCiAgICAgb3RoZXIgcGxhY2UgcmlnaHQg bm93CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0geGVuL2FyY2gveDg2L2Vm aS9zdHViLmM6ZWZpX211bHRpYm9vdDIoKQogICAgIGZhaWwgcHJvcGVybHkgb24gRUZJIHBsYXRm b3JtcywKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9mIG11bHRpYm9vdDIK ICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgMzItYml0IHJlZ2lzdGVycyBpbiB4ODZfNjQg Y29kZSBpZiBwb3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG11 bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRkcmVzcyBpcyA2NC1iaXQKICAgICBpbiB4ODZfNjQgY29k ZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJsZSwKICAgLSBsZWF2ZSBvbmx5IG9uZSBzcGFjZSBi ZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nLAogICAtIGltcHJvdmUgZWFybHkgZXJyb3IgbWVzc2Fn ZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBlYXJseSBl cnJvciBtZXNzYWdlcyBwcmludGluZyBjb2RlLAogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcy4K CnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdGFrZSBpbnRvIGFjY291bnQgYWxpZ25tZW50 IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBmaXhlZCBwYXJ0CiAgICAgKHN1Z2dlc3RlZCBieSBL b25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgc2VnbWVudCByZWdpc3RlcnMgaW5p dGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3Zl IGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCBhbmQgS29ucmFkIFJ6ZXN6 dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGdlbmVyYXRlIG11 bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3JvcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIHN3aXRjaCBDUFUgdG8geDg2XzMyIG1vZGUgYmVmb3JlCiAgICAganVtcGluZyB0 byAzMi1iaXQgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgIC0gcmVk dWNlIGNvZGUgY2hhbmdlcyB0byBpbmNyZWFzZSBwYXRjaCByZWFkYWJpbGl0eQogICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpZ25vcmUgTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJ Q19NRU1JTkZPIHRhZyBvbiBFRkkgcGxhdGZvcm0KICAgICBhbmQgZmluZCBvbiBteSBvd24gbXVs dGlib290Mi5tZW1fbG93ZXIgdmFsdWUsCiAgIC0gc3RvcCBleGVjdXRpb24gaWYgRUZJIHBsYXRm b3JtIGlzIGRldGVjdGVkCiAgICAgaW4gbGVnYWN5IEJJT1MgcGF0aC4KLS0tCiB4ZW4vYXJjaC94 ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAgMjk3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgICAgICAgICB8ICAgIDIgKy0K IHhlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaCAgICAgICB8ICAgNTIgKysrKysrLQogeGVuL2Fy Y2gveDg2L2VmaS9zdHViLmMgICAgICAgICAgIHwgICAzOSArKysrKwogeGVuL2FyY2gveDg2L3g4 Nl82NC9hc20tb2Zmc2V0cy5jIHwgICAgMiArCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAg ICAgICAgfCAgICA3ICstCiB4ZW4vY29tbW9uL2VmaS9ib290LmMgICAgICAgICAgICAgfCAgIDEx ICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oICAgICAgfCAgICAzICsKIHhlbi9pbmNs dWRlL3hlbi9jb25maWcuaCAgICAgICAgICB8ICAgIDEgKwogOSBmaWxlcyBjaGFuZ2VkLCAzOTEg aW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IDg0Y2Y0NGQuLjJl Y2RjYjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysgYi94ZW4vYXJj aC94ODYvYm9vdC9oZWFkLlMKQEAgLTg5LDYgKzg5LDEzIEBAIG11bHRpYm9vdDJfaGVhZGVyX3N0 YXJ0OgogICAgICAgICAgICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0aGUgbGluZXMgLSBubyBw cmVmZXJlbmNlLiAqLyBcCiAgICAgICAgICAgICAgICAgICAgMCAgLyogTnVtYmVyIG9mIGJpdHMg cGVyIHBpeGVsIC0gbm8gcHJlZmVyZW5jZS4gKi8KIAorICAgICAgICAvKiBSZXF1ZXN0IHRoYXQg RXhpdEJvb3RTZXJ2aWNlcygpIG5vdCBiZSBjYWxsZWQuICovCisgICAgICAgIG1iMmh0X2luaXQg TUIyX0hUKEVGSV9CUyksIE1CMl9IVChPUFRJT05BTCkKKworICAgICAgICAvKiBFRkk2NCBNdWx0 aWJvb3QyIGVudHJ5IHBvaW50LiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChFTlRSWV9B RERSRVNTX0VGSTY0KSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAgICAgICAgIHN5 bV9waHlzKF9fZWZpNjRfbWIyX3N0YXJ0KQorCiAgICAgICAgIC8qIE11bHRpYm9vdDIgaGVhZGVy IGVuZCB0YWcuICovCiAgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVORCksIE1CMl9IVChSRVFV SVJFRCkKIC5MbXVsdGlib290Ml9oZWFkZXJfZW5kOgpAQCAtMTAwLDIwICsxMDcsNTAgQEAgbXVs dGlib290Ml9oZWFkZXJfc3RhcnQ6CiBnZHRfYm9vdF9kZXNjcjoKICAgICAgICAgLndvcmQgICA2 KjgtMQogICAgICAgICAubG9uZyAgIHN5bV9waHlzKHRyYW1wb2xpbmVfZ2R0KQorICAgICAgICAu bG9uZyAgIDAgLyogTmVlZGVkIGZvciA2NC1iaXQgbGdkdCAqLwogCiAuTGJhZF9jcHVfbXNnOiAu YXNjaXogIkVSUjogTm90IGEgNjQtYml0IENQVSEiCiAuTGJhZF9sZHJfbXNnOiAuYXNjaXogIkVS UjogTm90IGEgTXVsdGlib290IGJvb3Rsb2FkZXIhIgorLkxiYWRfbGRyX25iczogLmFzY2l6ICJF UlI6IEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290IHNlcnZpY2VzISIKKy5MYmFkX2xk cl9uc3Q6IC5hc2NpeiAiRVJSOiBFRkkgU3lzdGVtVGFibGUgaXMgbm90IHByb3ZpZGVkIGJ5IGJv b3Rsb2FkZXIhIgorLkxiYWRfbGRyX25paDogLmFzY2l6ICJFUlI6IEVGSSBJbWFnZUhhbmRsZSBp cyBub3QgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJhZF9lZmlfbXNnOiAuYXNjaXogIkVS UjogRUZJIElBLTMyIHBsYXRmb3JtcyBhcmUgbm90IHN1cHBvcnRlZCEiCisKKyAgICAgICAgLnNl Y3Rpb24gLmluaXQuZGF0YSwgImEiLCBAcHJvZ2JpdHMKKyAgICAgICAgLmFsaWduIDQKKwordmdh X3RleHRfYnVmZmVyOgorICAgICAgICAubG9uZyAgIDB4YjgwMDAKKworZWZpX3BsYXRmb3JtOgor ICAgICAgICAuYnl0ZSAgIDAKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC50ZXh0LCAiYXgiLCBA cHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2Nw dV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICBqbXAgICAgIHByaW50X2Vycgor ICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRpYm9vdDoKICAgICAgICAgbW92ICAg ICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotcHJpbnRf ZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1lYnVmZmVyCi0x OiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0YgorLkxt YjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbnN0KSksJWVz aSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5MbWIyX25vX2lo OgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25paCkpLCVlc2kgIyBFcnJv ciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19iczoKKyAgICAg ICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMgRXJyb3IgbWVzc2Fn ZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAgICAgIyBObyBW R0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisuTG1iMl9lZmlfaWFf MzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSksJWVzaSAjIEVy cm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRpLCVlZGkgICAgICAgICAgICAgICAgICAg ICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2NocgorLkxn ZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1ZmZlciksJWVkaQor LkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVzaSksJWJsCiAgICAgICAgIHRlc3QgICAg JWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50aW5lbAogICAgICAgICBqZSAg ICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNmOCs1LCVkeCAgICMgVUFSVCBMaW5lIFN0 YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNjAsMTkzIEBAIHByaW50X2VycjoKICAgICAgICAg bW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJhbnNtaXQgSG9sZGluZyBSZWdpc3Rlcgog ICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAgb3V0ICAgICAlYWwsJWR4ICAgICAgICAj IFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFsIGxpbmUKLSAgICAgICAgbW92c2IgICAg ICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgZnJhbWVidWZmZXIK KyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAjIElzIHRoZSBWR0EgdGV4dCBidWZmZXIg YXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2VuZF9jaHIKKyAgICAgICAgbW92c2IgICAg ICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgdGV4dCBidWZmZXIK ICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAj IFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZyYW1lYnVmZmVyCi0gICAgICAgIGptcCAg ICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0 ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2NocgogLkxo YWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQKIAorICAgICAgICAuY29kZTY0CisKK19f ZWZpNjRfbWIyX3N0YXJ0OgorICAgICAgICAvKgorICAgICAgICAgKiBNdWx0aWJvb3QyIHNwZWMg c2F5cyB0aGF0IGhlcmUgQ1BVIGlzIGluIDY0LWJpdCBtb2RlLiBIb3dldmVyLCB0aGVyZQorICAg ICAgICAgKiBpcyBhbHNvIGd1YXJhbnRlZSB0aGF0IGFsbCBjb2RlIGFuZCBkYXRhIGlzIGFsd2F5 cyBwdXQgYnkgdGhlIGJvb3Rsb2FkZXIKKyAgICAgICAgICogYmVsb3cgNCBHaUIuIEhlbmNlLCB3 ZSBjYW4gc2FmZWx5IHVzZSBpbiBtb3N0IGNhc2VzIDMyLWJpdCBhZGRyZXNzaW5nLgorICAgICAg ICAgKi8KKworICAgICAgICBjbGQKKworICAgICAgICAvKiBWR0EgaXMgbm90IGF2YWlsYWJsZSBv biBFRkkgcGxhdGZvcm1zLiAqLworICAgICAgICBtb3ZsICAgJDAsdmdhX3RleHRfYnVmZmVyKCVy aXApCisKKyAgICAgICAgLyogQ2hlY2sgZm9yIE11bHRpYm9vdDIgYm9vdGxvYWRlci4gKi8KKyAg ICAgICAgY21wICAgICAkTVVMVElCT09UMl9CT09UTE9BREVSX01BR0lDLCVlYXgKKyAgICAgICAg amUgICAgICAuTGVmaV9tdWx0aWJvb3QyX3Byb3RvCisKKyAgICAgICAgLyogSnVtcCB0byBub3Rf bXVsdGlib290IGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAg IGxlYSAgICAgbm90X211bHRpYm9vdCglcmlwKSwlcjE1ZAorICAgICAgICBqbXAgICAgIHg4Nl8z Ml9zd2l0Y2gKKworLkxlZmlfbXVsdGlib290Ml9wcm90bzoKKyAgICAgICAgLyogWmVybyBFRkkg U3lzdGVtVGFibGUgYW5kIEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzZXMuICovCisgICAgICAgIHhv ciAgICAgJWVzaSwlZXNpCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpCisKKyAgICAgICAgLyog U2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAgIGxlYSAg ICAgKE1CMl9maXhlZF9zaXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJXJieCksJWVjeAor ICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKworLkxlZmlf bWIyX3RzaXplOgorICAgICAgICAvKiBDaGVjayBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRvdGFs IHNpemUuICovCisgICAgICAgIG1vdiAgICAgJWVjeCwlcjhkCisgICAgICAgIHN1YiAgICAgJWVi eCwlcjhkCisgICAgICAgIGNtcCAgICAgJXI4ZCxNQjJfZml4ZWRfdG90YWxfc2l6ZSglcmJ4KQor ICAgICAgICBqYmUgICAgIC5McnVuX2JzCisKKyAgICAgICAgLyogQXJlIEVGSSBib290IHNlcnZp Y2VzIGF2YWlsYWJsZT8gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9F RklfQlMsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGpuZSAgICAgLkxlZmlfbWIyX3N0CisK KyAgICAgICAgLyogV2UgYXJlIG9uIEVGSSBwbGF0Zm9ybSBhbmQgRUZJIGJvb3Qgc2VydmljZXMg YXJlIGF2YWlsYWJsZS4gKi8KKyAgICAgICAgaW5jYiAgICBlZmlfcGxhdGZvcm0oJXJpcCkKKwor ICAgICAgICAvKgorICAgICAgICAgKiBEaXNhYmxlIHJlYWwgbW9kZSBhbmQgb3RoZXIgbGVnYWN5 IHN0dWZmIHdoaWNoIHNob3VsZCBub3QKKyAgICAgICAgICogYmUgcnVuIG9uIEVGSSBwbGF0Zm9y bXMuCisgICAgICAgICAqLworICAgICAgICBpbmNiICAgIHNraXBfcmVhbG1vZGUoJXJpcCkKKyAg ICAgICAgam1wICAgICAuTGVmaV9tYjJfbmV4dF90YWcKKworLkxlZmlfbWIyX3N0OgorICAgICAg ICAvKiBHZXQgRUZJIFN5c3RlbVRhYmxlIGFkZHJlc3MgZnJvbSBNdWx0aWJvb3QyIGluZm9ybWF0 aW9uLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0LE1CMl90 YWdfdHlwZSglcmN4KQorICAgICAgICBjbW92ZSAgIE1CMl9lZmk2NF9zdCglcmN4KSwlcnNpCisg ICAgICAgIGplICAgICAgLkxlZmlfbWIyX25leHRfdGFnCisKKyAgICAgICAgLyogR2V0IEVGSSBJ bWFnZUhhbmRsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAgICAg ICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NF9JSCxNQjJfdGFnX3R5cGUoJXJj eCkKKyAgICAgICAgY21vdmUgICBNQjJfZWZpNjRfaWgoJXJjeCksJXJkaQorICAgICAgICBqZSAg ICAgIC5MZWZpX21iMl9uZXh0X3RhZworCisgICAgICAgIC8qIElzIGl0IHRoZSBlbmQgb2YgTXVs dGlib290MiBpbmZvcm1hdGlvbj8gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdf VFlQRV9FTkQsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGplICAgICAgLkxydW5fYnMKKwor LkxlZmlfbWIyX25leHRfdGFnOgorICAgICAgICAvKiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5m b3JtYXRpb24gdGFnLiAqLworICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6ZSglcmN4KSwlZWN4 CisgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAg IGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAgICAgICBqbXAgICAg IC5MZWZpX21iMl90c2l6ZQorCisuTHJ1bl9iczoKKyAgICAgICAgLyogQXJlIEVGSSBib290IHNl cnZpY2VzIGF2YWlsYWJsZT8gKi8KKyAgICAgICAgY21wYiAgICAkMCxlZmlfcGxhdGZvcm0oJXJp cCkKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX2JzIGFmdGVyIHN3aXRjaGluZyBDUFUg dG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9fYnMoJXJpcCksJXIx NWQKKyAgICAgICAganogICAgICB4ODZfMzJfc3dpdGNoCisKKyAgICAgICAgLyogSXMgRUZJIFN5 c3RlbVRhYmxlIGFkZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRl c3QgICAgJXJzaSwlcnNpCisKKyAgICAgICAgLyogSnVtcCB0byAuTG1iMl9ub19zdCBhZnRlciBz d2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIC5MbWIyX25v X3N0KCVyaXApLCVyMTVkCisgICAgICAgIGp6ICAgICAgeDg2XzMyX3N3aXRjaAorCisgICAgICAg IC8qIElzIEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzIHByb3ZpZGVkIGJ5IGJvb3QgbG9hZGVyPyAq LworICAgICAgICB0ZXN0ICAgICVyZGksJXJkaQorCisgICAgICAgIC8qIEp1bXAgdG8gLkxtYjJf bm9faWggYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVh ICAgICAuTG1iMl9ub19paCglcmlwKSwlcjE1ZAorICAgICAgICBqeiAgICAgIHg4Nl8zMl9zd2l0 Y2gKKworICAgICAgICAvKiBBbGlnbiB0aGUgc3RhY2sgYXMgVUVGSSBzcGVjIHJlcXVpcmVzLiAq LworICAgICAgICBhZGQgICAgICQxNSwlcnNwCisgICAgICAgIGFuZCAgICAgJH4xNSwlcnNwCisK KyAgICAgICAgcHVzaCAgICAlcmF4CisgICAgICAgIHB1c2ggICAgJXJkaQorCisgICAgICAgIC8q CisgICAgICAgICAqIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4KKyAgICAg ICAgICogSXQgbXVzdCBiZSBkb25lIGVhcmxpZXIgdGhhbiBpbiBCSU9TIGNhc2UKKyAgICAgICAg ICogYmVjYXVzZSBlZmlfbXVsdGlib290MigpIHRvdWNoZXMgaXQuCisgICAgICAgICAqLworICAg ICAgICBsZWEgICAgIF9fYnNzX3N0YXJ0KCVyaXApLCVlZGkKKyAgICAgICAgbGVhICAgICBfX2Jz c19lbmQoJXJpcCksJWVjeAorICAgICAgICBzdWIgICAgICVlZGksJWVjeAorICAgICAgICBzaHIg ICAgICQzLCVlY3gKKyAgICAgICAgeG9yICAgICAlZWF4LCVlYXgKKyAgICAgICAgcmVwIHN0b3Nx CisKKyAgICAgICAgcG9wICAgICAlcmRpCisKKyAgICAgICAgLyogQWxpZ24gdGhlIHN0YWNrIGFz IFVFRkkgc3BlYyByZXF1aXJlcy4gKi8KKyAgICAgICAgcHVzaCAgICAlcmRpCisKKyAgICAgICAg LyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBpcyBjYWxsZWQgYWNjb3JkaW5nIHRvIFN5 c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAtIElOOiAgJXJkaSAtIEVGSSBJbWFnZUhh bmRsZSwgJXJzaSAtIEVGSSBTeXN0ZW1UYWJsZSwKKyAgICAgICAgICogICAtIE9VVDogJXJheCAt IHRyYW1wb2xpbmUgYWRkcmVzcy4KKyAgICAgICAgICoKKyAgICAgICAgICogTVVMVElCT09UMl9U QUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBpcyBub3QgcHJvdmlkZWQKKyAgICAgICAgICogb24g RUZJIHBsYXRmb3Jtcy4gSGVuY2UsIGl0IGNvdWxkIG5vdCBiZSB1c2VkIGxpa2UKKyAgICAgICAg ICogb24gbGVnYWN5IEJJT1MgcGxhdGZvcm1zLgorICAgICAgICAgKi8KKyAgICAgICAgY2FsbCAg ICBlZmlfbXVsdGlib290MgorCisgICAgICAgIC8qIENvbnZlcnQgbWVtb3J5IGFkZHJlc3MgdG8g Ynl0ZXMvMTYgYW5kIHN0b3JlIGl0IGluIHNhZmUgcGxhY2UuICovCisgICAgICAgIHNociAgICAg JDQsJWVheAorICAgICAgICBtb3YgICAgICVlYXgsJWVjeAorCisgICAgICAgIHBvcCAgICAgJXJk aQorICAgICAgICBwb3AgICAgICVyYXgKKworICAgICAgICAvKiBKdW1wIHRvIHRyYW1wb2xpbmVf c2V0dXAgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVh ICAgICB0cmFtcG9saW5lX3NldHVwKCVyaXApLCVyMTVkCisKK3g4Nl8zMl9zd2l0Y2g6CisgICAg ICAgIG1vdiAgICAgJXIxNWQsJWVkaQorCisgICAgICAgIGNsaQorCisgICAgICAgIC8qIEluaXRp YWxpemUgR0RUUi4gKi8KKyAgICAgICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQorCisg ICAgICAgIC8qIFJlbG9hZCBjb2RlIHNlbGVjdG9yLiAqLworICAgICAgICBwdXNocSAgICRCT09U X0NTMzIKKyAgICAgICAgbGVhICAgICBjczMyX3N3aXRjaCglcmlwKSwlZWR4CisgICAgICAgIHB1 c2ggICAgJXJkeAorICAgICAgICBscmV0cQorCisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0 Y2g6CisgICAgICAgIC8qIEluaXRpYWxpemUgYmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAg ICAgbW92ICAgICAkQk9PVF9EUywlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAg ICAgbW92ICAgICAlZWR4LCVlcworICAgICAgICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8q ICVlc3AgaXMgaW5pdGlhbGl6ZWQgbGF0ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRl c2NyaXB0b3IgdG8gdW51c2VkIHNlZ21lbnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAg ICVlZHgsJWVkeAorICAgICAgICBtb3YgICAgICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVk eCwlZ3MKKworICAgICAgICAvKiBEaXNhYmxlIHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAl Y3IwLCVlZHgKKyAgICAgICAgYW5kICAgICAkKH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1v diAgICAgJWVkeCwlY3IwCisKKyAgICAgICAgLyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRy ZXNzLiAqLworICAgICAgICBqbXAgICAgIColZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAog ICAgICAgICBjbGkKQEAgLTE1Nyw3ICszNzQsNyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5v dCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAg TUJfbWVtX2xvd2VyKCVlYngpLCVlZHgKLSAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVw CisgICAgICAgIGptcCAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9w cm90bzoKICAgICAgICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQu ICovCkBAIC0xNjksMjQgKzM4NiwzMyBAQCBfX3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gs JWVkaQogICAgICAgICBzdWIgICAgICVlYngsJWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIy X2ZpeGVkX3RvdGFsX3NpemUoJWVieCkKLSAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVw CisgICAgICAgIGpiZSAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0 IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwg ICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkK ICAgICAgICAgY21vdmUgICBNQjJfbWVtX2xvd2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAg ICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgLkxtYjJfbmV4dF90YWcKKworICAg ICAgICAvKiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkLiAqLworICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1CMl90YWdfdHlwZSglZWN4KQor ICAgICAgICBqZSAgICAgIC5MbWIyX2VmaV9pYV8zMgorCisgICAgICAgIC8qIEJvb3Rsb2FkZXIg c2h1dGRvd24gRUZJIHg2NCBib290IHNlcnZpY2VzLiAqLworICAgICAgICBjbXBsICAgICRNVUxU SUJPT1QyX1RBR19UWVBFX0VGSTY0LE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAg IC5MbWIyX25vX2JzCiAKICAgICAgICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGlu Zm9ybWF0aW9uPyAqLwogICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxN QjJfdGFnX3R5cGUoJWVjeCkKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAg ICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKKy5MbWIyX25leHRfdGFnOgogICAg ICAgICAvKiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLwogICAgICAg ICBhZGQgICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CiAgICAgICAgIGFkZCAgICAgJChNVUxU SUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CiAgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9U QUdfQUxJR04tMSksJWVjeAogICAgICAgICBqbXAgICAgIC5MbWIyX3RzaXplCiAKLXRyYW1wb2xp bmVfc2V0dXA6Cit0cmFtcG9saW5lX2Jpb3Nfc2V0dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFt cG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwl ZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAs JWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpAQCAtMjAyLDI4ICs0MjgsNTYg QEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgICogbXVsdGlib290IHN0cnVjdHVyZSAoaWYg YXZhaWxhYmxlKSBhbmQgdXNlIHRoZSBzbWFsbGVzdC4KICAgICAgICAgICovCiAgICAgICAgIGNt cCAgICAgJDB4MTAwLCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVlIHRvbyBz bWFsbD8gKi8KLSAgICAgICAgamIgICAgICAyZiAgICAgICAgICAgICAgICAgIC8qIGlmIHNvLCBk byBub3QgdXNlIGl0ICovCisgICAgICAgIGpiICAgICAgdHJhbXBvbGluZV9zZXR1cCAgICAvKiBp ZiBzbywgZG8gbm90IHVzZSBpdCAqLwogICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKICAgICAg ICAgY21wICAgICAlZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEgdmFsdWUg Ki8KICAgICAgICAgY21vdmIgICAlZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2UgdGhlIHNt YWxsZXIgKi8KIAotMjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICov Ci0gICAgICAgIHN1YiAgICAgJDB4MTAwMCwlZWN4CisgICAgICAgIC8qIFJlc2VydmUgbWVtb3J5 IGZvciB0aGUgdHJhbXBvbGluZSBhbmQgdGhlIGxvdy1tZW1vcnkgc3RhY2suICovCisgICAgICAg IHN1YiAgICAgJCgoVFJBTVBPTElORV9TUEFDRStUUkFNUE9MSU5FX1NUQUNLX1NQQUNFKT4+NCks JWVjeAogCiAgICAgICAgIC8qIEZyb20gYXJjaC94ODYvc21wYm9vdC5jOiBzdGFydF9laXAgaGFk IGJldHRlciBiZSBwYWdlLWFsaWduZWQhICovCiAgICAgICAgIHhvciAgICAgJWNsLCAlY2wKKwor dHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgc2hsICAgICAkNCwgJWVjeAogICAgICAgICBtb3Yg ICAgICVlY3gsc3ltX3BoeXModHJhbXBvbGluZV9waHlzKQogCisgICAgICAgIC8qIEdldCB0b3Bt b3N0IGxvdy1tZW1vcnkgc3RhY2sgYWRkcmVzcy4gKi8KKyAgICAgICAgYWRkICAgICAkVFJBTVBP TElORV9TUEFDRSwlZWN4CisKICAgICAgICAgLyogU2F2ZSB0aGUgTXVsdGlib290IGluZm8gc3Ry dWN0IChhZnRlciByZWxvY2F0aW9uKSBmb3IgbGF0ZXIgdXNlLiAqLwogICAgICAgICBtb3YgICAg ICRzeW1fcGh5cyhjcHUwX3N0YWNrKSsxMDI0LCVlc3AKLSAgICAgICAgcHVzaCAgICAlZWN4ICAg ICAgICAgICAgICAgIC8qIEJvb3QgdHJhbXBvbGluZSBhZGRyZXNzLiAqLworICAgICAgICBwdXNo ICAgICVlY3ggICAgICAgICAgICAgICAgLyogVG9wbW9zdCBsb3ctbWVtb3J5IHN0YWNrIGFkZHJl c3MuICovCiAgICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBNdWx0aWJvb3Qg aW5mb3JtYXRpb24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAg ICAgIC8qIE11bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAg ICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKIAotICAgICAgICAvKiBJbml0 aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkgKi8KKyAgICAgICAgLyoKKyAgICAgICAg ICogTm93IHRyYW1wb2xpbmVfcGh5cyBwb2ludHMgdG8gdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUg KGxvd2VzdAorICAgICAgICAgKiBhZGRyZXNzIGlzIGF0IHRoZSB0b3ApOgorICAgICAgICAgKgor ICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgKiB8ICAgIFRS QU1QT0xJTkVfU1BBQ0UgICAgfAorICAgICAgICAgKiArLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0g KworICAgICAgICAgKiB8ICAgICAgIG1iaSBzdHJ1Y3QgICAgICAgfAorICAgICAgICAgKiArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgKiB8IFRSQU1QT0xJTkVfU1RBQ0tfU1BB Q0UgfAorICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgKgor ICAgICAgICAgKiBtYmkgc3RydWN0IGxpdmVzIGF0IHRoZSBlbmQgb2YgVFJBTVBPTElORV9TUEFD RS4gVGhlIHJlc3Qgb2YKKyAgICAgICAgICogVFJBTVBPTElORV9TUEFDRSBpcyByZXNlcnZlZCBm b3IgdHJhbXBvbGluZSBjb2RlIGFuZCBkYXRhLgorICAgICAgICAgKi8KKworICAgICAgICAvKgor ICAgICAgICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCisgICAgICAg ICAqIEl0IHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLgorICAgICAgICAgKi8KKyAgICAgICAgY21w YiAgICAkMCxzeW1fcGh5cyhlZmlfcGxhdGZvcm0pCisgICAgICAgIGpueiAgICAgMWYKKworICAg ICAgICAvKiBJbml0aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkuICovCiAgICAgICAg IG1vdiAgICAgJHN5bV9waHlzKF9fYnNzX3N0YXJ0KSwlZWRpCiAgICAgICAgIG1vdiAgICAgJHN5 bV9waHlzKF9fYnNzX2VuZCksJWVjeAogICAgICAgICBzdWIgICAgICVlZGksJWVjeApAQCAtMjMx LDYgKzQ4NSw3IEBAIHRyYW1wb2xpbmVfc2V0dXA6CiAgICAgICAgIHNociAgICAgJDIsJWVjeAog ICAgICAgICByZXAgc3Rvc2wKIAorMToKICAgICAgICAgLyogSW50ZXJyb2dhdGUgQ1BVIGV4dGVu ZGVkIGZlYXR1cmVzIHZpYSBDUFVJRC4gKi8KICAgICAgICAgbW92ICAgICAkMHg4MDAwMDAwMCwl ZWF4CiAgICAgICAgIGNwdWlkCkBAIC0yODIsNiArNTM3LDEwIEBAIHRyYW1wb2xpbmVfc2V0dXA6 CiAgICAgICAgIGNtcCAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3RvcCksJWVkaQog ICAgICAgICBqYiAgICAgIDFiCiAKKyAgICAgICAgLyogRG8gbm90IHBhcnNlIGNvbW1hbmQgbGlu ZSBvbiBFRkkgcGxhdGZvcm0gaGVyZS4gKi8KKyAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhl ZmlfcGxhdGZvcm0pCisgICAgICAgIGpueiAgICAgMWYKKwogICAgICAgICAvKiBCYWlsIGlmIHRo ZXJlIGlzIG5vIGNvbW1hbmQgbGluZSB0byBwYXJzZS4gKi8KICAgICAgICAgbW92ICAgICBzeW1f cGh5cyhtdWx0aWJvb3RfcHRyKSwlZWJ4CiAgICAgICAgIHRlc3RsICAgJE1CSV9DTURMSU5FLE1C X2ZsYWdzKCVlYngpCkBAIC0yOTIsOSArNTUxLDkgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAg ICAgY2FsbCAgICBjbWRsaW5lX3BhcnNlX2Vhcmx5CiAKIDE6Ci0gICAgICAgIC8qIFN3aXRjaCB0 byBsb3ctbWVtb3J5IHN0YWNrLiAgKi8KKyAgICAgICAgLyogU3dpdGNoIHRvIGxvdy1tZW1vcnkg c3RhY2sgd2hpY2ggbGl2ZXMgYXQgdGhlIGVuZCBvZiB0cmFtcG9saW5lIHJlZ2lvbi4gKi8KICAg ICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKLSAgICAgICAgbGVh ICAgICAweDEwMDAwKCVlZGkpLCVlc3AKKyAgICAgICAgbGVhICAgICBUUkFNUE9MSU5FX1NQQUNF K1RSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UoJWVkaSksJWVzcAogICAgICAgICBsZWEgICAgIHRyYW1w b2xpbmVfYm9vdF9jcHVfZW50cnktdHJhbXBvbGluZV9zdGFydCglZWRpKSwlZWF4CiAgICAgICAg IHB1c2hsICAgJEJPT1RfQ1MzMgogICAgICAgICBwdXNoICAgICVlYXgKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgYi94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCmluZGV4 IDkxZmFiOWQuLmI5OTI2NzggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMK KysrIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYwpAQCAtMTYsNyArMTYsNyBAQAogICogVGhp cyBlbnRyeSBwb2ludCBpcyBlbnRlcmVkIGZyb20geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIHdp dGg6CiAgKiAgIC0gMHg0KCVlc3ApID0gTVVMVElCT09UX01BR0lDLAogICogICAtIDB4OCglZXNw KSA9IE1VTFRJQk9PVF9JTkZPUk1BVElPTl9BRERSRVNTLAotICogICAtIDB4YyglZXNwKSA9IEJP T1RfVFJBTVBPTElORV9BRERSRVNTLgorICogICAtIDB4YyglZXNwKSA9IFRPUE1PU1RfTE9XX01F TU9SWV9TVEFDS19BRERSRVNTLgogICovCiBhc20gKAogICAgICIgICAgLnRleHQgICAgICAgICAg ICAgICAgICAgICAgICAgXG4iCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290 LmggYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKaW5kZXggNjJjMDEwZS4uZDE5Mzg0NyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCisrKyBiL3hlbi9hcmNoL3g4 Ni9lZmkvZWZpLWJvb3QuaApAQCAtMTAxLDYgKzEwMSwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cmVsb2NhdGVfdHJhbXBvbGluZSh1bnNpZ25lZCBsb25nIHBoeXMpCiAgICAgY29uc3QgczMyICp0 cmFtcG9saW5lX3B0cjsKIAogICAgIHRyYW1wb2xpbmVfcGh5cyA9IHBoeXM7CisKKyAgICBpZiAo ICFlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCisgICAgICAgIHJldHVybjsKKwogICAgIC8qIEFw cGx5IHJlbG9jYXRpb25zIHRvIHRyYW1wb2xpbmUuICovCiAgICAgZm9yICggdHJhbXBvbGluZV9w dHIgPSBfX3RyYW1wb2xpbmVfcmVsX3N0YXJ0OwogICAgICAgICAgIHRyYW1wb2xpbmVfcHRyIDwg X190cmFtcG9saW5lX3JlbF9zdG9wOwpAQCAtNTUwLDcgKzU1NCwxMiBAQCBzdGF0aWMgdm9pZCBf X2luaXQgZWZpX2FyY2hfbWVtb3J5X3NldHVwKHZvaWQpCiAKICAgICAvKiBBbGxvY2F0ZSBzcGFj ZSBmb3IgdHJhbXBvbGluZSAoaW4gZmlyc3QgTWIpLiAqLwogICAgIGNmZy5hZGRyID0gMHgxMDAw MDA7Ci0gICAgY2ZnLnNpemUgPSB0cmFtcG9saW5lX2VuZCAtIHRyYW1wb2xpbmVfc3RhcnQ7CisK KyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9MT0FERVIpICkKKyAgICAgICAgY2ZnLnNpemUgPSB0 cmFtcG9saW5lX2VuZCAtIHRyYW1wb2xpbmVfc3RhcnQ7CisgICAgZWxzZQorICAgICAgICBjZmcu c2l6ZSA9IFRSQU1QT0xJTkVfU1BBQ0UgKyBUUkFNUE9MSU5FX1NUQUNLX1NQQUNFOworCiAgICAg c3RhdHVzID0gZWZpX2JzLT5BbGxvY2F0ZVBhZ2VzKEFsbG9jYXRlTWF4QWRkcmVzcywgRWZpTG9h ZGVyRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEZOX1VQKGNmZy5z aXplKSwgJmNmZy5hZGRyKTsKICAgICBpZiAoIHN0YXR1cyA9PSBFRklfU1VDQ0VTUyApCkBAIC01 NjEsNiArNTcwLDkgQEAgc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX21lbW9yeV9zZXR1cCh2 b2lkKQogICAgICAgICBQcmludFN0cihMIlRyYW1wb2xpbmUgc3BhY2UgY2Fubm90IGJlIGFsbG9j YXRlZDsgd2lsbCB0cnkgZmFsbGJhY2suXHJcbiIpOwogICAgIH0KIAorICAgIGlmICggIWVmaV9l bmFibGVkKEVGSV9MT0FERVIpICkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLyogSW5pdGlhbGlz ZSBMMiBpZGVudGl0eS1tYXAgYW5kIGJvb3QtbWFwIHBhZ2UgdGFibGUgZW50cmllcyAoMTZNQiku ICovCiAgICAgZm9yICggaSA9IDA7IGkgPCA4OyArK2kgKQogICAgIHsKQEAgLTY1Myw2ICs2NjUs NDQgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgZWZpX2FyY2hfdXNlX2NvbmZpZ19maWxlKEVGSV9T WVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQogCiBzdGF0aWMgdm9pZCBlZmlfYXJjaF9mbHVzaF9k Y2FjaGVfYXJlYShjb25zdCB2b2lkICp2YWRkciwgVUlOVE4gc2l6ZSkgeyB9CiAKK3BhZGRyX3Qg X19pbml0IGVmaV9tdWx0aWJvb3QyKEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1f VEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAgIEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wg KmdvcDsKKyAgICBVSU5UTiBjb2xzLCBnb3BfbW9kZSA9IH4wLCByb3dzOworCisgICAgX19zZXRf Yml0KEVGSV9CT09ULCAmZWZpX2ZsYWdzKTsKKyAgICBfX3NldF9iaXQoRUZJX1JTLCAmZWZpX2Zs YWdzKTsKKworICAgIGVmaV9pbml0KEltYWdlSGFuZGxlLCBTeXN0ZW1UYWJsZSk7CisKKyAgICBl ZmlfY29uc29sZV9zZXRfbW9kZSgpOworCisgICAgaWYgKCBTdGRPdXQtPlF1ZXJ5TW9kZShTdGRP dXQsIFN0ZE91dC0+TW9kZS0+TW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb2xz LCAmcm93cykgPT0gRUZJX1NVQ0NFU1MgKQorICAgICAgICBlZmlfYXJjaF9jb25zb2xlX2luaXQo Y29scywgcm93cyk7CisKKyAgICBnb3AgPSBlZmlfZ2V0X2dvcCgpOworCisgICAgaWYgKCBnb3Ag KQorICAgICAgICBnb3BfbW9kZSA9IGVmaV9maW5kX2dvcF9tb2RlKGdvcCwgMCwgMCwgMCk7CisK KyAgICBlZmlfYXJjaF9lZGQoKTsKKyAgICBlZmlfYXJjaF9jcHUoKTsKKworICAgIGVmaV90YWJs ZXMoKTsKKyAgICBzZXR1cF9lZmlfcGNpKCk7CisgICAgZWZpX3ZhcmlhYmxlcygpOworICAgIGVm aV9hcmNoX21lbW9yeV9zZXR1cCgpOworCisgICAgaWYgKCBnb3AgKQorICAgICAgICBlZmlfc2V0 X2dvcF9tb2RlKGdvcCwgZ29wX21vZGUpOworCisgICAgZWZpX2V4aXRfYm9vdChJbWFnZUhhbmRs ZSwgU3lzdGVtVGFibGUpOworCisgICAgLyogUmV0dXJuIHRyYW1wb2xpbmUgYWRkcmVzcy4gKi8K KyAgICByZXR1cm4gdHJhbXBvbGluZV9waHlzOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVz OgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMgYi94ZW4v YXJjaC94ODYvZWZpL3N0dWIuYwppbmRleCA0MTU4MTI0Li44ZGY5YmEyIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvZWZpL3N0dWIuYworKysgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwpAQCAt Myw2ICszLDQ1IEBACiAjaW5jbHVkZSA8eGVuL2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+ CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vZWZpYmluZC5oPgorI2luY2x1 ZGUgPGVmaS9lZmlkZWYuaD4KKyNpbmNsdWRlIDxlZmkvZWZpY2Fwc3VsZS5oPgorI2luY2x1ZGUg PGVmaS9lZmljb24uaD4KKyNpbmNsdWRlIDxlZmkvZWZpZGV2cC5oPgorI2luY2x1ZGUgPGVmaS9l ZmlhcGkuaD4KKworLyoKKyAqIEhlcmUgd2UgYXJlIGluIEVGSSBzdHViLiBFRkkgY2FsbHMgYXJl IG5vdCBzdXBwb3J0ZWQgZHVlIHRvIGxhY2sKKyAqIG9mIHJlbGV2YW50IGZ1bmN0aW9uYWxpdHkg aW4gY29tcGlsZXIgYW5kL29yIGxpbmtlci4KKyAqCisgKiBlZmlfbXVsdGlib290MigpIGlzIGFu IGV4Y2VwdGlvbi4gUGxlYXNlIGxvb2sgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCitw YWRkcl90IF9faW5pdCBub3JldHVybiBlZmlfbXVsdGlib290MihFRklfSEFORExFIEltYWdlSGFu ZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1NZU1RFTV9U QUJMRSAqU3lzdGVtVGFibGUpCit7CisgICAgc3RhdGljIGNvbnN0IENIQVIxNiBfX2luaXRjb25z dCBlcnJbXSA9CisgICAgICAgIEwiKFhFTikgWGVuIGRvZXMgbm90IGhhdmUgRUZJIGNvZGUgYnVp bGQgaW4hXHJcbihYRU4pIFN5c3RlbSBoYWx0ZWQhXHJcbiI7CisgICAgU0lNUExFX1RFWFRfT1VU UFVUX0lOVEVSRkFDRSAqU3RkRXJyOworCisgICAgU3RkRXJyID0gU3lzdGVtVGFibGUtPlN0ZEVy ciA/IFN5c3RlbVRhYmxlLT5TdGRFcnIgOiBTeXN0ZW1UYWJsZS0+Q29uT3V0OworCisgICAgLyoK KyAgICAgKiBQcmludCBlcnJvciBtZXNzYWdlIGFuZCBoYWx0IHRoZSBzeXN0ZW0uCisgICAgICoK KyAgICAgKiBXZSBoYXZlIHRvIG9wZW4gY29kZSBNUyB4NjQgY2FsbGluZyBjb252ZW50aW9uCisg ICAgICogaW4gYXNzZW1ibHkgYmVjYXVzZSBoZXJlIHRoaXMgY29udmVudGlvbiBtYXkKKyAgICAg KiBub3QgYmUgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IEMgY29tcGlsZXIuCisgICAgICovCisgICAg YXNtIHZvbGF0aWxlKAorICAgICIgICAgY2FsbCAqJTIgICAgICAgICAgICAgICAgICAgICBcbiIK KyAgICAiMDogIGhsdCAgICAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIiAgICBqbXAg IDBiICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICAgIDogIitjIiAoU3RkRXJyKSwgIitk IiAoZXJyKSA6ICJybSIgKFN0ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJheCIsICJy OCIsICJyOSIsICJyMTAiLCAicjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFibGUoKTsK K30KIAogYm9vbCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZf NjQvYXNtLW9mZnNldHMuYwppbmRleCA5MmY1ZDgxLi5mMTM1NjU0IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9h c20tb2Zmc2V0cy5jCkBAIC0xNzUsNiArMTc1LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAg ICBPRkZTRVQoTUIyX3RhZ190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAgICBPRkZT RVQoTUIyX3RhZ19zaXplLCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZTRVQoTUIy X21lbV9sb3dlciwgbXVsdGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOwor ICAgIE9GRlNFVChNQjJfZWZpNjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBvaW50ZXIp OworICAgIE9GRlNFVChNQjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2loX3QsIHBv aW50ZXIpOwogICAgIEJMQU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lzdCwgc3Ry dWN0IGRvbWFpbiwgdm1fYXNzaXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRz LlMgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCmluZGV4IGIwYjFjOWIuLmFkZGYyZWYgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMu UwpAQCAtMzMxLDUgKzMzMSw4IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQsICAgUEFH RV9TSVpFKSwgIl9faW5pdF9lbmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElHTkVEKHRy YW1wb2xpbmVfc3RhcnQsIDQpLCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikKIEFTU0VS VChJU19BTElHTkVEKHRyYW1wb2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQgbWlzYWxp Z25lZCIpCi1BU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9fYnNzX3N0 YXJ0IG1pc2FsaWduZWQiKQotQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgNCks ICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwg ICAgICA4KSwgIl9fYnNzX3N0YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19i c3NfZW5kLCAgICAgICAgOCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCisKK0FTU0VSVCgodHJh bXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX3N0YXJ0KSA8IFRSQU1QT0xJTkVfU1BBQ0UsCisgICAg Im5vdCBlbm91Z2ggcm9vbSBmb3IgdHJhbXBvbGluZSIpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5kZXggMzZkYmI3MS4uYjZjYmRh ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisrKyBiL3hlbi9jb21tb24vZWZp L2Jvb3QuYwpAQCAtNzksNiArNzksMTcgQEAgc3RhdGljIHNpemVfdCB3c3RybGVuKGNvbnN0IENI QVIxNiAqIHMpOwogc3RhdGljIGludCBzZXRfY29sb3IodTMyIG1hc2ssIGludCBicHAsIHU4ICpw b3MsIHU4ICpzeik7CiBzdGF0aWMgYm9vbF90IG1hdGNoX2d1aWQoY29uc3QgRUZJX0dVSUQgKmd1 aWQxLCBjb25zdCBFRklfR1VJRCAqZ3VpZDIpOwogCitzdGF0aWMgdm9pZCBlZmlfaW5pdChFRklf SEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSk7CitzdGF0 aWMgdm9pZCBlZmlfY29uc29sZV9zZXRfbW9kZSh2b2lkKTsKK3N0YXRpYyBFRklfR1JBUEhJQ1Nf T1VUUFVUX1BST1RPQ09MICplZmlfZ2V0X2dvcCh2b2lkKTsKK3N0YXRpYyBVSU5UTiBlZmlfZmlu ZF9nb3BfbW9kZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVUlOVE4gY29scywgVUlOVE4gcm93cywgVUlOVE4gZGVwdGgp Oworc3RhdGljIHZvaWQgZWZpX3RhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHNldHVwX2VmaV9w Y2kodm9pZCk7CitzdGF0aWMgdm9pZCBlZmlfdmFyaWFibGVzKHZvaWQpOworc3RhdGljIHZvaWQg ZWZpX3NldF9nb3BfbW9kZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsIFVJTlRO IGdvcF9tb2RlKTsKK3N0YXRpYyB2b2lkIGVmaV9leGl0X2Jvb3QoRUZJX0hBTkRMRSBJbWFnZUhh bmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworCiBzdGF0aWMgY29uc3QgRUZJ X0JPT1RfU0VSVklDRVMgKl9faW5pdGRhdGEgZWZpX2JzOwogc3RhdGljIFVJTlQzMiBfX2luaXRk YXRhIGVmaV9ic19yZXZpc2lvbjsKIHN0YXRpYyBFRklfSEFORExFIF9faW5pdGRhdGEgZWZpX2lo OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvY29uZmlnLmgKaW5kZXggNmZkODRlNy4uOWNkMDVhMiAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZp Zy5oCkBAIC03Myw2ICs3Myw5IEBACiAjZGVmaW5lIFNUQUNLX09SREVSIDMKICNkZWZpbmUgU1RB Q0tfU0laRSAgKFBBR0VfU0laRSA8PCBTVEFDS19PUkRFUikKIAorI2RlZmluZSBUUkFNUE9MSU5F X1NUQUNLX1NQQUNFICBQQUdFX1NJWkUKKyNkZWZpbmUgVFJBTVBPTElORV9TUEFDRSAgICAgICAg KEtCKDY0KSAtIFRSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UpCisKIC8qIFByaW1hcnkgc3RhY2sgaXMg cmVzdHJpY3RlZCB0byA4a0IgYnkgZ3VhcmQgcGFnZXMuICovCiAjZGVmaW5lIFBSSU1BUllfU1RB Q0tfU0laRSA4MTkyCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9jb25maWcuaCBiL3hl bi9pbmNsdWRlL3hlbi9jb25maWcuaAppbmRleCA0NzNjNWU4Li4wNGU0ZGE1IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2NvbmZpZy5o CkBAIC03MCw2ICs3MCw3IEBACiAjZGVmaW5lIF9fZm9yY2UKICNkZWZpbmUgX19iaXR3aXNlCiAK KyNkZWZpbmUgS0IoX2tiKSAgICAgKF9BQyhfa2IsIFVMTCkgPDwgMTApCiAjZGVmaW5lIE1CKF9t YikgICAgIChfQUMoX21iLCBVTEwpIDw8IDIwKQogI2RlZmluZSBHQihfZ2IpICAgICAoX0FDKF9n YiwgVUxMKSA8PCAzMCkKIAotLSAKMS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK