From mboxrd@z Thu Jan 1 00:00:00 1970 From: Doug Goldstein Subject: [PATCH 4/4] x86: add multiboot2 protocol support for EFI platforms Date: Fri, 13 Jan 2017 13:21:49 -0600 Message-ID: <4b42ae6d42d409a44496eb546efe72c5060b1fd9.1484335095.git-series.cardoe@cardoe.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: In-Reply-To: References: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: jgross@suse.com, sstabellini@kernel.org, konrad.wilk@oracle.com, Andrew Cooper , Daniel Kiper , Doug Goldstein , pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, Jan Beulich , qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org RnJvbTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KClRoaXMgd2F5IFhl biBjYW4gYmUgbG9hZGVkIG9uIEVGSSBwbGF0Zm9ybXMgdXNpbmcgR1JVQjIgYW5kCm90aGVyIGJv b3QgbG9hZGVycyB3aGljaCBzdXBwb3J0IG11bHRpYm9vdDIgcHJvdG9jb2wuCgpTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgS2lwZXIgPGRhbmllbC5raXBlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEb3VnIEdvbGRzdGVpbiA8Y2FyZG9lQGNhcmRvZS5jb20+ClJldmlld2VkLWJ5OiBEb3VnIEdv bGRzdGVpbiA8Y2FyZG9lQGNhcmRvZS5jb20+Ci0tLQpEb3VnIHYxIC0gZml4IGluY29ycmVjdCBh c3NlbWJseSAoaWRlbnRpZmllZCBieSBBbmRyZXcgQ29vcGVyKQogICAgICAgIC0gZml4IGlzc3Vl IHdoZXJlIHRoZSB0cmFtcG9saW5lIHNpemUgd2FzIGxlZnQgYXMgMCBhbmQgdGhlCiAgICAgICAg ICB3YXkgdGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZm9yIHRoZSB0cmFtcG9saW5lcyB3ZSB3b3Vs ZCBnbyB0bwogICAgICAgICAgdGhlIGVuZCBvZiBhbiBhdmFpbGFibGUgc2VjdGlvbiBhbmQgdGhl biBzdWJ0cmFjdCBvZmYgdGhlIHNpemUKICAgICAgICAgIHRvIGRlY2lkZSB3aGVyZSB0byBwbGFj ZSBpdC4gVGhlIGVuZCByZXN1bHQgd2FzIHRoYXQgd2Ugd291bGQKICAgICAgICAgIGFsd2F5cyBj b3B5IHRoZSB0cmFtcG9saW5lcyBhbmQgdGhlIDMyLWJpdCBzdGFjayBpbnRvIHNvbWUKICAgICAg ICAgIGZvcm0gb2YgcmVzZXJ2ZWQgbWVtb3J5IGFmdGVyIHRoZSBjb252ZW50aW9uYWwgcmVnaW9u IHdlCiAgICAgICAgICB3YW50ZWQgdG8gcHV0IHRoaW5ncyBpbnRvLiBPbiBzb21lIHN5c3RlbXMg dGhpcyBkaWQgbm90CiAgICAgICAgICBtYW5pZmVzdCBhcyBhIGNyYXNoIHdoaWxlIG9uIG90aGVy cyBpdCBkaWQuIFJld29ya2VkIHRoZQogICAgICAgICAgY2hhbmdlcyB0byBhbHdheXMgcmVzZXJ2 ZSA2NGtiIGZvciBib3RoIHRoZSBzdGFjayBhbmQgdGhlIHNpemUKICAgICAgICAgIG9mIHRoZSB0 cmFtcG9saW5lcy4gQWRkZWQgYW4gQVNTRVJUIHRvIG1ha2Ugc3VyZSB3ZSBuZXZlciBibG93CiAg ICAgICAgICB0aHJvdWdoIHRoaXMgc2l6ZS4KCnYxMCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAg LSByZXBsYWNlIGxqbXBsIHdpdGggbHJldHEKICAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29v cGVyKSwKICAgIC0gaW50cm9kdWNlIGVmaV9wbGF0Zm9ybSB0byBpbmNyZWFzZSBjb2RlIHJlYWRh YmlsaXR5CiAgICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlcikuCgp2OSAtIHN1Z2dlc3Rp b25zL2ZpeGVzOgogICAtIHVzZSAuTCBsYWJlbHMgaW5zdGVhZCBvZiBudW1lcmljIG9uZXMgaW4g bXVsdGlib290MiBkYXRhIHNjYW5uaW5nIGxvb3BzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCkuCgp2OCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHVzZSBfX2Jzc19zdGFydCglcmlw KS9fX2Jzc19lbmQoJXJpcCkgaW5zdGVhZCBvZgogICAgIG9mIC5zdGFydG9mLiguYnNzKSglcmlw KS8kLnNpemVvZi4oLmJzcykgYmVjYXVzZQogICAgIGxhdHRlciBpcyBub3QgdGVzdGVkIGV4dGVu c2l2ZWx5IGluIGRpZmZlcmVudAogICAgIGJ1aWx0IGVudmlyb25tZW50cyB5ZXQKICAgICAoc3Vn Z2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAtIGZpeCBtdWx0aWJvb3QyIGRhdGEgc2Nhbm5p bmcgbG9vcCBpbiB4ODZfMzIgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGFkZCBjaGVjayBmb3IgZXh0cmEgbWVtIGZvciBtYmkgZGF0YSBpZiBYZW4gaXMgbG9hZGVk CiAgICAgdmlhIG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRmb3JtCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjcgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBkbyBub3Qg YWxsb2NhdGUgdHdpY2UgbWVtb3J5IGZvciB0cmFtcG9saW5lIGlmIHdlIHdlcmUKICAgICBsb2Fk ZWQgdmlhIG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRmb3JtLAogICAtIHdyYXAgbG9u ZyBsaW5lCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21t ZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjYgLSBzdWdnZXN0aW9ucy9m aXhlczoKICAgLSBpbXByb3ZlIGxhYmVsIG5hbWVzIGluIGFzc2VtYmx5CiAgICAgZXJyb3IgcHJp bnRpbmcgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUg Y29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1p bm9yIGNsZWFudXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoK djQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSByZW1vdmUgcmVkdW5kYW50IEJTUyBhbGlnbm1l bnQsCiAgIC0gdXBkYXRlIEJTUyBhbGlnbm1lbnQgY2hlY2ssCiAgIC0gdXNlIF9fc2V0X2JpdCgp IGluc3RlYWQgb2Ygc2V0X2JpdCgpIGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgIC0gY2FsbCBlZmlfYXJjaF9jcHUoKSBmcm9tIGVmaV9tdWx0aWJvb3QyKCkK ICAgICBldmVuIGlmIHRoZSBzYW1lIHdvcmsgaXMgZG9uZSBsYXRlciBpbgogICAgIG90aGVyIHBs YWNlIHJpZ2h0IG5vdwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHhlbi9h cmNoL3g4Ni9lZmkvc3R1Yi5jOmVmaV9tdWx0aWJvb3QyKCkKICAgICBmYWlsIHByb3Blcmx5IG9u IEVGSSBwbGF0Zm9ybXMsCiAgIC0gZG8gbm90IHJlYWQgZGF0YSBiZXlvbmQgdGhlIGVuZCBvZiBt dWx0aWJvb3QyCiAgICAgaW5mb3JtYXRpb24gaW4geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIDMyLWJpdCByZWdpc3RlcnMg aW4geDg2XzY0IGNvZGUgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSBtdWx0aWJvb3QyIGluZm9ybWF0aW9uIGFkZHJlc3MgaXMgNjQtYml0CiAgICAgaW4g eDg2XzY0IGNvZGUsIHNvLCB0cmVhdCBpdCBpcyBhcyBpcwogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAtIHVzZSBjbW92Y2MgaWYgcG9zc2libGUsCiAgIC0gbGVhdmUgb25seSBv bmUgc3BhY2UgYmV0d2VlbiByZXAgYW5kIHN0b3NxCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1 bGljaCksCiAgIC0gaW1wcm92ZSBlcnJvciBoYW5kbGluZywKICAgLSBpbXByb3ZlIGVhcmx5IGVy cm9yIG1lc3NhZ2VzLAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJv dmUgZWFybHkgZXJyb3IgbWVzc2FnZXMgcHJpbnRpbmcgY29kZSwKICAgLSBpbXByb3ZlIGxhYmVs IG5hbWVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21t ZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3Ig Y2xlYW51cHMuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHRha2UgaW50byBhY2NvdW50 IGFsaWdubWVudCB3aGVuIHNraXBwaW5nIG11bHRpYm9vdDIgZml4ZWQgcGFydAogICAgIChzdWdn ZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIHNlZ21lbnQgcmVn aXN0ZXJzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2ggYW5kIEtv bnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjIgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBn ZW5lcmF0ZSBtdWx0aWJvb3QyIGhlYWRlciB1c2luZyBtYWNyb3MKICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKSwKICAgLSBzd2l0Y2ggQ1BVIHRvIHg4Nl8zMiBtb2RlIGJlZm9yZQogICAg IGp1bXBpbmcgdG8gMzItYml0IGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIp LAogICAtIHJlZHVjZSBjb2RlIGNoYW5nZXMgdG8gaW5jcmVhc2UgcGF0Y2ggcmVhZGFiaWxpdHkK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaWdub3JlIE1VTFRJQk9PVDJfVEFH X1RZUEVfQkFTSUNfTUVNSU5GTyB0YWcgb24gRUZJIHBsYXRmb3JtCiAgICAgYW5kIGZpbmQgb24g bXkgb3duIG11bHRpYm9vdDIubWVtX2xvd2VyIHZhbHVlLAogICAtIHN0b3AgZXhlY3V0aW9uIGlm IEVGSSBwbGF0Zm9ybSBpcyBkZXRlY3RlZAogICAgIGluIGxlZ2FjeSBCSU9TIHBhdGguCi0tLQoK bWVtb3J5IGFsbG9jYXRpb24gZml4Ci0tLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAg ICAgIHwgMjY0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4Ni9l ZmkvZWZpLWJvb3QuaCAgICAgICB8ICA1NCArKysrKy0KIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5j ICAgICAgICAgICB8ICAzOCArKysrLQogeGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5j IHwgICAyICstCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgICAgICAgfCAgIDQgKy0KIHhl bi9jb21tb24vZWZpL2Jvb3QuYyAgICAgICAgICAgICB8ICAxMSArLQogNiBmaWxlcyBjaGFuZ2Vk LCAzNTEgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IGQ0MjNm ZDguLjg3NmE2YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysgYi94 ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTg5LDYgKzg5LDEzIEBAIG11bHRpYm9vdDJfaGVh ZGVyX3N0YXJ0OgogICAgICAgICAgICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0aGUgbGluZXMg LSBubyBwcmVmZXJlbmNlLiAqLyBcCiAgICAgICAgICAgICAgICAgICAgMCAgLyogTnVtYmVyIG9m IGJpdHMgcGVyIHBpeGVsIC0gbm8gcHJlZmVyZW5jZS4gKi8KIAorICAgICAgICAvKiBJbmhpYml0 IGJvb3Rsb2FkZXIgZnJvbSBjYWxsaW5nIEV4aXRCb290U2VydmljZXMoKS4gKi8KKyAgICAgICAg bWIyaHRfaW5pdCBNQjJfSFQoRUZJX0JTKSwgTUIyX0hUKE9QVElPTkFMKQorCisgICAgICAgIC8q IEVGSTY0IGVudHJ5IHBvaW50LiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9IVChFTlRSWV9B RERSRVNTX0VGSTY0KSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAgICAgICAgIHN5 bV9waHlzKF9fZWZpNjRfc3RhcnQpCisKICAgICAgICAgLyogTXVsdGlib290MiBoZWFkZXIgZW5k IHRhZy4gKi8KICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwgTUIyX0hUKFJFUVVJUkVE KQogLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CkBAIC0xMDAsMjAgKzEwNyw0OCBAQCBtdWx0aWJv b3QyX2hlYWRlcl9zdGFydDoKIGdkdF9ib290X2Rlc2NyOgogICAgICAgICAud29yZCAgIDYqOC0x CiAgICAgICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCisgICAgICAgIC5sb25n ICAgMCAvKiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCisKKyAgICAgICAgLmFsaWduIDQKK3Zn YV90ZXh0X2J1ZmZlcjoKKyAgICAgICAgLmxvbmcgICAweGI4MDAwCisKK2VmaV9wbGF0Zm9ybToK KyAgICAgICAgLmJ5dGUgICAwCiAKIC5MYmFkX2NwdV9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSA2 NC1iaXQgQ1BVISIKIC5MYmFkX2xkcl9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSBNdWx0aWJvb3Qg Ym9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmJzOiAuYXNjaXogIkVSUjogQm9vdGxvYWRlciBzaHV0 ZG93biBFRkkgeDY0IGJvb3Qgc2VydmljZXMhIgorLkxiYWRfbGRyX25zdDogLmFzY2l6ICJFUlI6 IEVGSSBTeXN0ZW1UYWJsZSBpcyBub3QgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJhZF9s ZHJfbmloOiAuYXNjaXogIkVSUjogRUZJIEltYWdlSGFuZGxlIGlzIG5vdCBwcm92aWRlZCBieSBi b290bG9hZGVyISIKKy5MYmFkX2VmaV9tc2c6IC5hc2NpeiAiRVJSOiBFRkkgSUEtMzIgcGxhdGZv cm1zIGFyZSBub3Qgc3VwcG9ydGVkISIKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC50ZXh0LCAi YXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5M YmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICBqbXAgICAgIHByaW50 X2VycgorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRpYm9vdDoKICAgICAgICAg bW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQot cHJpbnRfZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1lYnVm ZmVyCi0xOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0 YgorLkxtYjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbnN0 KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5MbWIy X25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25paCkpLCVlc2kg IyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19iczoK KyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMgRXJyb3Ig bWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAgICAg IyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisuTG1iMl9l ZmlfaWFfMzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSksJWVz aSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRpLCVlZGkgICAgICAgICAgICAg ICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2No cgorLkxnZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1ZmZlciks JWVkaQorLkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVzaSksJWJsCiAgICAgICAgIHRl c3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50aW5lbAogICAgICAg ICBqZSAgICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNmOCs1LCVkeCAgICMgVUFSVCBM aW5lIFN0YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNTgsMTg2IEBAIHByaW50X2VycjoKICAg ICAgICAgbW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJhbnNtaXQgSG9sZGluZyBSZWdp c3RlcgogICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAgb3V0ICAgICAlYWwsJWR4ICAg ICAgICAjIFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFsIGxpbmUKLSAgICAgICAgbW92 c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgZnJhbWVi dWZmZXIKKyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAjIElzIHRoZSBWR0EgdGV4dCBi dWZmZXIgYXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2VuZF9jaHIKKyAgICAgICAgbW92 c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgdGV4dCBi dWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAgc3Rvc2IgICAgICAgICAgICAg ICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZyYW1lYnVmZmVyCi0gICAgICAg IGptcCAgICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGF0 dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2No cgogLkxoYWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQKIAorICAgICAgICAuY29kZTY0 CisKK19fZWZpNjRfc3RhcnQ6CisgICAgICAgIGNsZAorCisgICAgICAgIC8qIFZHQSBpcyBub3Qg YXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCisgICAgICAgIG1vdmwgICAkMCx2Z2FfdGV4 dF9idWZmZXIoJXJpcCkKKworICAgICAgICAvKiBDaGVjayBmb3IgTXVsdGlib290MiBib290bG9h ZGVyLiAqLworICAgICAgICBjbXAgICAgICRNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMsJWVh eAorICAgICAgICBqZSAgICAgIC5MZWZpX211bHRpYm9vdDJfcHJvdG8KKworICAgICAgICAvKiBK dW1wIHRvIG5vdF9tdWx0aWJvb3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4g Ki8KKyAgICAgICAgbGVhICAgICBub3RfbXVsdGlib290KCVyaXApLCVlZGkKKyAgICAgICAgam1w ICAgICB4ODZfMzJfc3dpdGNoCisKKy5MZWZpX211bHRpYm9vdDJfcHJvdG86CisgICAgICAgIC8q IFplcm8gRUZJIFN5c3RlbVRhYmxlIGFuZCBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVzc2VzLiAqLwor ICAgICAgICB4b3IgICAgICVlc2ksJWVzaQorICAgICAgICB4b3IgICAgICVlZGksJWVkaQorCisg ICAgICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAg ICAgICBsZWEgICAgIChNQjJfZml4ZWRfc2l6ZW9mK01VTFRJQk9PVDJfVEFHX0FMSUdOLTEpKCVy YngpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4 CisKKy5MZWZpX21iMl90c2l6ZToKKyAgICAgICAgLyogQ2hlY2sgTXVsdGlib290MiBpbmZvcm1h dGlvbiB0b3RhbCBzaXplLiAqLworICAgICAgICBtb3YgICAgICVlY3gsJXI4ZAorICAgICAgICBz dWIgICAgICVlYngsJXI4ZAorICAgICAgICBjbXAgICAgICVyOGQsTUIyX2ZpeGVkX3RvdGFsX3Np emUoJXJieCkKKyAgICAgICAgamJlICAgICBydW5fYnMKKworICAgICAgICAvKiBBcmUgRUZJIGJv b3Qgc2VydmljZXMgYXZhaWxhYmxlPyAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RB R19UWVBFX0VGSV9CUyxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgam5lICAgICAuTGVmaV9t YjJfc3QKKworICAgICAgICAvKiBXZSBhcmUgb24gRUZJIHBsYXRmb3JtIGFuZCBFRkkgYm9vdCBz ZXJ2aWNlcyBhcmUgYXZhaWxhYmxlLiAqLworICAgICAgICBpbmNiICAgIGVmaV9wbGF0Zm9ybSgl cmlwKQorCisgICAgICAgIC8qCisgICAgICAgICAqIERpc2FibGUgcmVhbCBtb2RlIGFuZCBvdGhl ciBsZWdhY3kgc3R1ZmYgd2hpY2ggc2hvdWxkIG5vdAorICAgICAgICAgKiBiZSBydW4gb24gRUZJ IHBsYXRmb3Jtcy4KKyAgICAgICAgICovCisgICAgICAgIGluY2IgICAgc2tpcF9yZWFsbW9kZSgl cmlwKQorICAgICAgICBqbXAgICAgIC5MZWZpX21iMl9uZXh0X3RhZworCisuTGVmaV9tYjJfc3Q6 CisgICAgICAgIC8qIEdldCBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBmcm9tIE11bHRpYm9vdDIg aW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJ NjQsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAgTUIyX2VmaTY0X3N0KCVyY3gp LCVyc2kKKyAgICAgICAgamUgICAgICAuTGVmaV9tYjJfbmV4dF90YWcKKworICAgICAgICAvKiBH ZXQgRUZJIEltYWdlSGFuZGxlIGFkZHJlc3MgZnJvbSBNdWx0aWJvb3QyIGluZm9ybWF0aW9uLiAq LworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0X0lILE1CMl90YWdf dHlwZSglcmN4KQorICAgICAgICBjbW92ZSAgIE1CMl9lZmk2NF9paCglcmN4KSwlcmRpCisgICAg ICAgIGplICAgICAgLkxlZmlfbWIyX25leHRfdGFnCisKKyAgICAgICAgLyogSXMgaXQgdGhlIGVu ZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJP T1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAgICAgamUgICAgICBydW5f YnMKKworLkxlZmlfbWIyX25leHRfdGFnOgorICAgICAgICAvKiBHbyB0byBuZXh0IE11bHRpYm9v dDIgaW5mb3JtYXRpb24gdGFnLiAqLworICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6ZSglcmN4 KSwlZWN4CisgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4Cisg ICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAgICAgICBq bXAgICAgIC5MZWZpX21iMl90c2l6ZQorCitydW5fYnM6CisgICAgICAgIC8qIEFyZSBFRkkgYm9v dCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNtcGIgICAgJDAsZWZpX3BsYXRmb3Jt KCVyaXApCisgICAgICAgIGpueiAgICAgMGYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25v X2JzIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAg ICAgLkxtYjJfbm9fYnMoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gK KworMDoKKyAgICAgICAgLyogSXMgRUZJIFN5c3RlbVRhYmxlIGFkZHJlc3MgcHJvdmlkZWQgYnkg Ym9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJzaSwlcnNpCisgICAgICAgIGpueiAg ICAgMWYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX3N0IGFmdGVyIHN3aXRjaGluZyBD UFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9fc3QoJXJpcCks JWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKworMToKKyAgICAgICAgLyogSXMg RUZJIEltYWdlSGFuZGxlIGFkZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAg ICAgIHRlc3QgICAgJXJkaSwlcmRpCisgICAgICAgIGpueiAgICAgMmYKKworICAgICAgICAvKiBK dW1wIHRvIC5MbWIyX25vX2loIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICov CisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9faWgoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAg IHg4Nl8zMl9zd2l0Y2gKKworMjoKKyAgICAgICAgcHVzaCAgICAlcmF4CisgICAgICAgIHB1c2gg ICAgJXJkaQorCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUgQlNTIChubyBuYXN0 eSBzdXJwcmlzZXMhKS4KKyAgICAgICAgICogSXQgbXVzdCBiZSBkb25lIGVhcmxpZXIgdGhhbiBp biBCSU9TIGNhc2UKKyAgICAgICAgICogYmVjYXVzZSBlZmlfbXVsdGlib290MigpIHRvdWNoZXMg aXQuCisgICAgICAgICAqLworICAgICAgICBsZWEgICAgIF9fYnNzX3N0YXJ0KCVyaXApLCVlZGkK KyAgICAgICAgbGVhICAgICBfX2Jzc19lbmQoJXJpcCksJWVjeAorICAgICAgICBzdWIgICAgICVl ZGksJWVjeAorICAgICAgICBzaHIgICAgICQzLCVlY3gKKyAgICAgICAgeG9yICAgICAlZWF4LCVl YXgKKyAgICAgICAgcmVwIHN0b3NxCisKKyAgICAgICAgcG9wICAgICAlcmRpCisKKyAgICAgICAg LyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBpcyBjYWxsZWQgYWNjb3JkaW5nIHRvIFN5 c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAtIElOOiAlcmRpIC0gRUZJIEltYWdlSGFu ZGxlLCAlcnNpIC0gRUZJIFN5c3RlbVRhYmxlLAorICAgICAgICAgKiAgIC0gT1VUOiAlcmF4IC0g aGlnaGVzdCB1c2FibGUgbWVtb3J5IGFkZHJlc3MgYmVsb3cgMSBNaUI7CisgICAgICAgICAqICAg ICAgICAgICAgICAgICBtZW1vcnkgYWJvdmUgdGhpcyBhZGRyZXNzIGlzIHJlc2VydmVkIGZvciB0 cmFtcG9saW5lOworICAgICAgICAgKiAgICAgICAgICAgICAgICAgbWVtb3J5IGJlbG93IHRoaXMg YWRkcmVzcyBpcyB1c2VkIGFzIGEgc3RvcmFnZSBmb3IKKyAgICAgICAgICogICAgICAgICAgICAg ICAgIG1iaSBzdHJ1Y3QgY3JlYXRlZCBpbiByZWxvYygpLgorICAgICAgICAgKgorICAgICAgICAg KiBNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lDX01FTUlORk8gdGFnIGlzIG5vdCBwcm92aWRlZAor ICAgICAgICAgKiBvbiBFRkkgcGxhdGZvcm1zLiBIZW5jZSwgaXQgY291bGQgbm90IGJlIHVzZWQg bGlrZQorICAgICAgICAgKiBvbiBsZWdhY3kgQklPUyBwbGF0Zm9ybXMuCisgICAgICAgICAqLwor ICAgICAgICBjYWxsICAgIGVmaV9tdWx0aWJvb3QyCisKKyAgICAgICAgLyogQ29udmVydCBtZW1v cnkgYWRkcmVzcyB0byBieXRlcy8xNiBhbmQgc3RvcmUgaXQgaW4gc2FmZSBwbGFjZS4gKi8KKyAg ICAgICAgc2hyICAgICAkNCwlZWF4CisgICAgICAgIG1vdiAgICAgJWVheCwlZWN4CisKKyAgICAg ICAgcG9wICAgICAlcmF4CisKKyAgICAgICAgLyogSnVtcCB0byB0cmFtcG9saW5lX3NldHVwIGFm dGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgdHJh bXBvbGluZV9zZXR1cCglcmlwKSwlZWRpCisKK3g4Nl8zMl9zd2l0Y2g6CisgICAgICAgIGNsaQor CisgICAgICAgIC8qIEluaXRpYWxpemUgR0RUUi4gKi8KKyAgICAgICAgbGdkdCAgICBnZHRfYm9v dF9kZXNjciglcmlwKQorCisgICAgICAgIC8qIFJlbG9hZCBjb2RlIHNlbGVjdG9yLiAqLworICAg ICAgICBwdXNocSAgICRCT09UX0NTMzIKKyAgICAgICAgbGVhICAgICBjczMyX3N3aXRjaCglcmlw KSwlZWR4CisgICAgICAgIHB1c2ggICAgJXJkeAorICAgICAgICBscmV0cQorCisgICAgICAgIC5j b2RlMzIKKworY3MzMl9zd2l0Y2g6CisgICAgICAgIC8qIEluaXRpYWxpemUgYmFzaWMgZGF0YSBz ZWdtZW50cy4gKi8KKyAgICAgICAgbW92ICAgICAkQk9PVF9EUywlZWR4CisgICAgICAgIG1vdiAg ICAgJWVkeCwlZHMKKyAgICAgICAgbW92ICAgICAlZWR4LCVlcworICAgICAgICBtb3YgICAgICVl ZHgsJXNzCisgICAgICAgIC8qICVlc3AgaXMgaW5pdGlhbGl6ZWQgbGF0ZXIuICovCisKKyAgICAg ICAgLyogTG9hZCBudWxsIGRlc2NyaXB0b3IgdG8gdW51c2VkIHNlZ21lbnQgcmVnaXN0ZXJzLiAq LworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorICAgICAgICBtb3YgICAgICVlZHgsJWZzCisg ICAgICAgIG1vdiAgICAgJWVkeCwlZ3MKKworICAgICAgICAvKiBEaXNhYmxlIHBhZ2luZy4gKi8K KyAgICAgICAgbW92ICAgICAlY3IwLCVlZHgKKyAgICAgICAgYW5kICAgICAkKH5YODZfQ1IwX1BH KSwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlY3IwCisKKyAgICAgICAgLyogSnVtcCB0byBl YXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAqLworICAgICAgICBqbXAgICAgIColZWRpCisKIF9fc3Rh cnQ6CiAgICAgICAgIGNsZAogICAgICAgICBjbGkKQEAgLTE1Nyw3ICszNjUsNyBAQCBfX3N0YXJ0 OgogCiAgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1ZSB3aWxsIGJlIGZpbmUuICov CiAgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVlZHgKLSAgICAgICAgam1wICAg ICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGptcCAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVw CiAKIC5MbXVsdGlib290Ml9wcm90bzoKICAgICAgICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9y bWF0aW9uIGZpeGVkIHBhcnQuICovCkBAIC0xNjksMjQgKzM3NywzMyBAQCBfX3N0YXJ0OgogICAg ICAgICBtb3YgICAgICVlY3gsJWVkaQogICAgICAgICBzdWIgICAgICVlYngsJWVkaQogICAgICAg ICBjbXAgICAgICVlZGksTUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVieCkKLSAgICAgICAgamJlICAg ICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGpiZSAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVw CiAKICAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24u ICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyxN QjJfdGFnX3R5cGUoJWVjeCkKICAgICAgICAgY21vdmUgICBNQjJfbWVtX2xvd2VyKCVlY3gpLCVl ZHgKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgLkxt YjJfbmV4dF90YWcKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3Vw cG9ydGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1C Ml90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIyX2VmaV9pYV8zMgorCisgICAg ICAgIC8qIEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290IHNlcnZpY2VzLiAqLworICAg ICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0LE1CMl90YWdfdHlwZSglZWN4 KQorICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAgICAgLyogSXMgaXQgdGhlIGVu ZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAgICBjbXBsICAgICRNVUxUSUJP T1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAgICAgICAgamUgICAgICB0cmFt cG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKKy5M bWIyX25leHRfdGFnOgogICAgICAgICAvKiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRp b24gdGFnLiAqLwogICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CiAgICAg ICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CiAgICAgICAgIGFuZCAg ICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAogICAgICAgICBqbXAgICAgIC5MbWIy X3RzaXplCiAKLXRyYW1wb2xpbmVfc2V0dXA6Cit0cmFtcG9saW5lX2Jpb3Nfc2V0dXA6CiAgICAg ICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAg ICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAg ICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpA QCAtMjAyLDE2ICs0MTksMTkgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgICogbXVsdGli b290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxlKSBhbmQgdXNlIHRoZSBzbWFsbGVzdC4KICAgICAg ICAgICovCiAgICAgICAgIGNtcCAgICAgJDB4MTAwLCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVs dGlib290IHZhbHVlIHRvbyBzbWFsbD8gKi8KLSAgICAgICAgamIgICAgICAyZiAgICAgICAgICAg ICAgICAgIC8qIGlmIHNvLCBkbyBub3QgdXNlIGl0ICovCisgICAgICAgIGpiICAgICAgdHJhbXBv bGluZV9zZXR1cCAgICAvKiBpZiBzbywgZG8gbm90IHVzZSBpdCAqLwogICAgICAgICBzaGwgICAg ICQxMC00LCVlZHgKICAgICAgICAgY21wICAgICAlZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBh cmUgd2l0aCBCREEgdmFsdWUgKi8KICAgICAgICAgY21vdmIgICAlZWR4LCVlY3ggICAgICAgICAg IC8qIGFuZCB1c2UgdGhlIHNtYWxsZXIgKi8KIAotMjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9y IHRoZSB0cmFtcG9saW5lICovCisgICAgICAgIC8qIFJlc2VydmUgNjRrYiBmb3IgdGhlIHRyYW1w b2xpbmUuICovCiAgICAgICAgIHN1YiAgICAgJDB4MTAwMCwlZWN4CiAKICAgICAgICAgLyogRnJv bSBhcmNoL3g4Ni9zbXBib290LmM6IHN0YXJ0X2VpcCBoYWQgYmV0dGVyIGJlIHBhZ2UtYWxpZ25l ZCEgKi8KICAgICAgICAgeG9yICAgICAlY2wsICVjbAorCit0cmFtcG9saW5lX3NldHVwOgorICAg ICAgICAvKiBTYXZlIHRyYW1wb2xpbmUgYWRkcmVzcyBmb3IgbGF0ZXIgdXNlLiAqLwogICAgICAg ICBzaGwgICAgICQ0LCAlZWN4CiAgICAgICAgIG1vdiAgICAgJWVjeCxzeW1fcGh5cyh0cmFtcG9s aW5lX3BoeXMpCiAKQEAgLTIyMyw3ICs0NDMsMTQgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAg ICAgY2FsbCAgICByZWxvYwogICAgICAgICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290 X3B0cikKIAotICAgICAgICAvKiBJbml0aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkg Ki8KKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gbm90IHplcm8gQlNTIG9uIEVGSSBwbGF0Zm9y bSBoZXJlLgorICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4KKyAgICAgICAg ICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3BsYXRmb3JtKQorICAgICAgICBq bnogICAgIDFmCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNl cyEpLiAqLwogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQogICAg ICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAgc3ViICAgICAl ZWRpLCVlY3gKQEAgLTIzMSw2ICs0NTgsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBz aHIgICAgICQyLCVlY3gKICAgICAgICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAgIC8qIEludGVy cm9nYXRlIENQVSBleHRlbmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAgICAgIG1vdiAg ICAgJDB4ODAwMDAwMDAsJWVheAogICAgICAgICBjcHVpZApAQCAtMjgyLDEwICs1MTAsMTYgQEAg dHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgY21wICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5l X3NlZ19zdG9wKSwlZWRpCiAgICAgICAgIGpiICAgICAgMWIKIAorICAgICAgICAvKiBEbyBub3Qg cGFyc2UgY29tbWFuZCBsaW5lIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLiAqLworICAgICAgICBjbXBi ICAgICQwLHN5bV9waHlzKGVmaV9wbGF0Zm9ybSkKKyAgICAgICAgam56ICAgICAxZgorCiAgICAg ICAgIGNhbGwgICAgY21kbGluZV9wYXJzZV9lYXJseQogCisxOgogICAgICAgICAvKiBTd2l0Y2gg dG8gbG93LW1lbW9yeSBzdGFjay4gICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBv bGluZV9waHlzKSwlZWRpCisgICAgICAgIC8qIFRoZSBzdGFjayBzdGFydHMgNjRrYiBhZnRlciB0 aGUgbG9jYXRpb24gb2YgdHJhbXBvbGluZV9waHlzICovCiAgICAgICAgIGxlYSAgICAgMHgxMDAw MCglZWRpKSwlZXNwCiAgICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9ib290X2NwdV9lbnRyeS10 cmFtcG9saW5lX3N0YXJ0KCVlZGkpLCVlYXgKICAgICAgICAgcHVzaGwgICAkQk9PVF9DUzMyCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmggYi94ZW4vYXJjaC94ODYvZWZp L2VmaS1ib290LmgKaW5kZXggNjJjMDEwZS4uMzg3MWRlNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2VmaS9lZmktYm9vdC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaApAQCAt MTY5LDYgKzE2OSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJjaF9wcm9jZXNzX21lbW9y eV9tYXAoRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUsCiAgICAgICAgIGNhc2UgRWZpQ29u dmVudGlvbmFsTWVtb3J5OgogICAgICAgICAgICAgaWYgKCAhdHJhbXBvbGluZV9waHlzICYmIGRl c2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPD0gMHgxMDAwMDAgJiYKICAgICAgICAgICAgICAgICAg bGVuID49IGNmZy5zaXplICYmIGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPiBjZmcuYWRkciAp CisgICAgICAgICAgICAgICAgQVNTRVJUKGNmZy5zaXplID4gMCk7CiAgICAgICAgICAgICAgICAg Y2ZnLmFkZHIgPSAoZGVzYy0+UGh5c2ljYWxTdGFydCArIGxlbiAtIGNmZy5zaXplKSAmIFBBR0Vf TUFTSzsKICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICBjYXNlIEVmaUxv YWRlckNvZGU6CkBAIC0yMTAsMTIgKzIxMSwxNCBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGVmaV9h cmNoX2FsbG9jYXRlX21tYXBfYnVmZmVyKFVJTlROIG1hcF9zaXplKQogCiBzdGF0aWMgdm9pZCBf X2luaXQgZWZpX2FyY2hfcHJlX2V4aXRfYm9vdCh2b2lkKQogewotICAgIGlmICggIXRyYW1wb2xp bmVfcGh5cyApCi0gICAgewotICAgICAgICBpZiAoICFjZmcuYWRkciApCi0gICAgICAgICAgICBi bGV4aXQoTCJObyBtZW1vcnkgZm9yIHRyYW1wb2xpbmUiKTsKKyAgICBpZiAoIHRyYW1wb2xpbmVf cGh5cyApCisgICAgICAgIHJldHVybjsKKworICAgIGlmICggIWNmZy5hZGRyICkKKyAgICAgICAg YmxleGl0KEwiTm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7CisKKyAgICBpZiAoIGVmaV9lbmFi bGVkKEVGSV9MT0FERVIpICkKICAgICAgICAgcmVsb2NhdGVfdHJhbXBvbGluZShjZmcuYWRkcik7 Ci0gICAgfQogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgbm9yZXR1cm4gZWZpX2FyY2hfcG9zdF9l eGl0X2Jvb3Qodm9pZCkKQEAgLTY1Myw2ICs2NTYsNDcgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQg ZWZpX2FyY2hfdXNlX2NvbmZpZ19maWxlKEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQog CiBzdGF0aWMgdm9pZCBlZmlfYXJjaF9mbHVzaF9kY2FjaGVfYXJlYShjb25zdCB2b2lkICp2YWRk ciwgVUlOVE4gc2l6ZSkgeyB9CiAKK3BhZGRyX3QgX19pbml0IGVmaV9tdWx0aWJvb3QyKEVGSV9I QU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAg IEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcDsKKyAgICBVSU5UTiBjb2xzLCBnb3Bf bW9kZSA9IH4wLCByb3dzOworCisgICAgX19zZXRfYml0KEVGSV9CT09ULCAmZWZpX2ZsYWdzKTsK KyAgICBfX3NldF9iaXQoRUZJX1JTLCAmZWZpX2ZsYWdzKTsKKworICAgIGVmaV9pbml0KEltYWdl SGFuZGxlLCBTeXN0ZW1UYWJsZSk7CisKKyAgICBlZmlfY29uc29sZV9zZXRfbW9kZSgpOworCisg ICAgaWYgKCBTdGRPdXQtPlF1ZXJ5TW9kZShTdGRPdXQsIFN0ZE91dC0+TW9kZS0+TW9kZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICZjb2xzLCAmcm93cykgPT0gRUZJX1NVQ0NFU1MgKQor ICAgICAgICBlZmlfYXJjaF9jb25zb2xlX2luaXQoY29scywgcm93cyk7CisKKyAgICBnb3AgPSBl ZmlfZ2V0X2dvcCgpOworCisgICAgaWYgKCBnb3AgKQorICAgICAgICBnb3BfbW9kZSA9IGVmaV9m aW5kX2dvcF9tb2RlKGdvcCwgMCwgMCwgMCk7CisKKyAgICBlZmlfYXJjaF9lZGQoKTsKKyAgICBl ZmlfYXJjaF9jcHUoKTsKKworICAgIGVmaV90YWJsZXMoKTsKKyAgICBzZXR1cF9lZmlfcGNpKCk7 CisgICAgZWZpX3ZhcmlhYmxlcygpOworCisgICAgLyogVGhpcyBpcyB0aGUgbWF4aW11bSBzaXpl IG9mIG91ciB0cmFtcG9saW5lICsgb3VyIGxvdyBtZW1vcnkgc3RhY2sgKi8KKyAgICBjZmcuc2l6 ZSA9IDY0IDw8IDEwOworICAgIEFTU0VSVChjZmcuc2l6ZSA+PSAoKHRyYW1wb2xpbmVfZW5kIC0g dHJhbXBvbGluZV9zdGFydCkgKyA0MDk2KSk7CisKKyAgICBpZiAoIGdvcCApCisgICAgICAgIGVm aV9zZXRfZ29wX21vZGUoZ29wLCBnb3BfbW9kZSk7CisKKyAgICBlZmlfZXhpdF9ib290KEltYWdl SGFuZGxlLCBTeXN0ZW1UYWJsZSk7CisKKyAgICAvKiBSZXR1cm4gaGlnaGVzdCB1c2FibGUgbWVt b3J5IGFkZHJlc3MgYmVsb3cgMSBNaUIuICovCisgICAgcmV0dXJuIGNmZy5hZGRyOworfQorCiAv KgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2VmaS9zdHViLmMgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwppbmRleCA0MTU4MTI0Li5i ODFhZGMwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYworKysgYi94ZW4vYXJj aC94ODYvZWZpL3N0dWIuYwpAQCAtMyw2ICszLDQ0IEBACiAjaW5jbHVkZSA8eGVuL2luaXQuaD4K ICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxh c20vZWZpYmluZC5oPgorI2luY2x1ZGUgPGVmaS9lZmlkZWYuaD4KKyNpbmNsdWRlIDxlZmkvZWZp Y2Fwc3VsZS5oPgorI2luY2x1ZGUgPGVmaS9lZmljb24uaD4KKyNpbmNsdWRlIDxlZmkvZWZpZGV2 cC5oPgorI2luY2x1ZGUgPGVmaS9lZmlhcGkuaD4KKworLyoKKyAqIEhlcmUgd2UgYXJlIGluIEVG SSBzdHViLiBFRkkgY2FsbHMgYXJlIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIGxhY2sKKyAqIG9mIHJl bGV2YW50IGZ1bmN0aW9uYWxpdHkgaW4gY29tcGlsZXIgYW5kL29yIGxpbmtlci4KKyAqCisgKiBl ZmlfbXVsdGlib290MigpIGlzIGFuIGV4Y2VwdGlvbi4gUGxlYXNlIGxvb2sgYmVsb3cgZm9yIG1v cmUgZGV0YWlscy4KKyAqLworCitwYWRkcl90IF9faW5pdCBub3JldHVybiBlZmlfbXVsdGlib290 MihFRklfSEFORExFIEltYWdlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCit7CisgICAgQ0hBUjE2ICpl cnIgPSBMIlhlbiBkb2VzIG5vdCBoYXZlIEVGSSBjb2RlIGJ1aWxkIGluISEhXHJcblN5c3RlbSBo YWx0ZWQhISFcclxuIjsKKyAgICBTSU1QTEVfVEVYVF9PVVRQVVRfSU5URVJGQUNFICpTdGRFcnI7 CisKKyAgICBTdGRFcnIgPSBTeXN0ZW1UYWJsZS0+U3RkRXJyID8gU3lzdGVtVGFibGUtPlN0ZEVy ciA6IFN5c3RlbVRhYmxlLT5Db25PdXQ7CisKKyAgICAvKgorICAgICAqIFByaW50IGVycm9yIG1l c3NhZ2UgYW5kIGhhbHQgdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIFdlIGhhdmUgdG8gb3Bl biBjb2RlIE1TIHg2NCBjYWxsaW5nIGNvbnZlbnRpb24KKyAgICAgKiBpbiBhc3NlbWJseSBiZWNh dXNlIGhlcmUgdGhpcyBjb252ZW50aW9uIG1heQorICAgICAqIG5vdCBiZSBkaXJlY3RseSBzdXBw b3J0ZWQgYnkgQyBjb21waWxlci4KKyAgICAgKi8KKyAgICBhc20gdm9sYXRpbGUoCisgICAgIiAg ICBjYWxsIColMiAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIwOiAgaGx0ICAgICAgICAg ICAgICAgICAgICAgICAgICBcbiIKKyAgICAiICAgIGptcCAgMGIgICAgICAgICAgICAgICAgICAg ICAgXG4iCisgICAgICAgOiAiK2MiIChTdGRFcnIpLCAiK2QiIChlcnIpIDogImciIChTdGRFcnIt Pk91dHB1dFN0cmluZykKKyAgICAgICA6ICJyYXgiLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIs ICJtZW1vcnkiKTsKKworICAgIHVucmVhY2hhYmxlKCk7Cit9CiAKIGJvb2wgZWZpX2VuYWJsZWQo dW5zaWduZWQgaW50IGZlYXR1cmUpCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKaW5kZXgg OTJmNWQ4MS4uZjEzNTY1NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zm c2V0cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAtMTc1LDYg KzE3NSw4IEBAIHZvaWQgX19kdW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKE1CMl90YWdfdHlwZSwg bXVsdGlib290Ml90YWdfdCwgdHlwZSk7CiAgICAgT0ZGU0VUKE1CMl90YWdfc2l6ZSwgbXVsdGli b290Ml90YWdfdCwgc2l6ZSk7CiAgICAgT0ZGU0VUKE1CMl9tZW1fbG93ZXIsIG11bHRpYm9vdDJf dGFnX2Jhc2ljX21lbWluZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBPRkZTRVQoTUIyX2VmaTY0X3N0 LCBtdWx0aWJvb3QyX3RhZ19lZmk2NF90LCBwb2ludGVyKTsKKyAgICBPRkZTRVQoTUIyX2VmaTY0 X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsKICAgICBCTEFOSygpOwog CiAgICAgT0ZGU0VUKERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZtX2Fzc2lzdCk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveGVuLmxkcy5TIGIveGVuL2FyY2gveDg2L3hlbi5s ZHMuUwppbmRleCBiMGIxYzliLi5lMGUyNTI5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveGVu Lmxkcy5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKQEAgLTMzMSw1ICszMzEsNSBAQCBB U1NFUlQoSVNfQUxJR05FRChfX2luaXRfZW5kLCAgIFBBR0VfU0laRSksICJfX2luaXRfZW5kIG1p c2FsaWduZWQiKQogCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFtcG9saW5lX3N0YXJ0LCA0KSwgInRy YW1wb2xpbmVfc3RhcnQgbWlzYWxpZ25lZCIpCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFtcG9saW5l X2VuZCwgICA0KSwgInRyYW1wb2xpbmVfZW5kIG1pc2FsaWduZWQiKQotQVNTRVJUKElTX0FMSUdO RUQoX19ic3Nfc3RhcnQsICAgICAgNCksICJfX2Jzc19zdGFydCBtaXNhbGlnbmVkIikKLUFTU0VS VChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDQpLCAiX19ic3NfZW5kIG1pc2FsaWduZWQi KQorQVNTRVJUKElTX0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAgOCksICJfX2Jzc19zdGFydCBt aXNhbGlnbmVkIikKK0FTU0VSVChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDgpLCAiX19i c3NfZW5kIG1pc2FsaWduZWQiKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jIGIv eGVuL2NvbW1vbi9lZmkvYm9vdC5jCmluZGV4IDM2ZGJiNzEuLmI2Y2JkYWQgMTAwNjQ0Ci0tLSBh L3hlbi9jb21tb24vZWZpL2Jvb3QuYworKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKQEAgLTc5 LDYgKzc5LDE3IEBAIHN0YXRpYyBzaXplX3Qgd3N0cmxlbihjb25zdCBDSEFSMTYgKiBzKTsKIHN0 YXRpYyBpbnQgc2V0X2NvbG9yKHUzMiBtYXNrLCBpbnQgYnBwLCB1OCAqcG9zLCB1OCAqc3opOwog c3RhdGljIGJvb2xfdCBtYXRjaF9ndWlkKGNvbnN0IEVGSV9HVUlEICpndWlkMSwgY29uc3QgRUZJ X0dVSUQgKmd1aWQyKTsKIAorc3RhdGljIHZvaWQgZWZpX2luaXQoRUZJX0hBTkRMRSBJbWFnZUhh bmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworc3RhdGljIHZvaWQgZWZpX2Nv bnNvbGVfc2V0X21vZGUodm9pZCk7CitzdGF0aWMgRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NP TCAqZWZpX2dldF9nb3Aodm9pZCk7CitzdGF0aWMgVUlOVE4gZWZpX2ZpbmRfZ29wX21vZGUoRUZJ X0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFVJTlROIGNvbHMsIFVJTlROIHJvd3MsIFVJTlROIGRlcHRoKTsKK3N0YXRpYyB2b2lk IGVmaV90YWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBzZXR1cF9lZmlfcGNpKHZvaWQpOworc3Rh dGljIHZvaWQgZWZpX3ZhcmlhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV9zZXRfZ29wX21v ZGUoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wLCBVSU5UTiBnb3BfbW9kZSk7Citz dGF0aWMgdm9pZCBlZmlfZXhpdF9ib290KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNU RU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKKwogc3RhdGljIGNvbnN0IEVGSV9CT09UX1NFUlZJQ0VT ICpfX2luaXRkYXRhIGVmaV9iczsKIHN0YXRpYyBVSU5UMzIgX19pbml0ZGF0YSBlZmlfYnNfcmV2 aXNpb247CiBzdGF0aWMgRUZJX0hBTkRMRSBfX2luaXRkYXRhIGVmaV9paDsKLS0gCmdpdC1zZXJp ZXMgMC45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9s aXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=