From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v3 15/16 - RFC] x86: make Xen early boot code relocatable Date: Fri, 15 Apr 2016 14:33:15 +0200 Message-ID: <1460723596-13261-16-git-send-email-daniel.kiper@oracle.com> References: <1460723596-13261-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.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ar2xk-0005yO-QN for xen-devel@lists.xenproject.org; Fri, 15 Apr 2016 12:35:05 +0000 In-Reply-To: <1460723596-13261-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, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org RXZlcnkgbXVsdGlib290IHByb3RvY29sIChyZWdhcmRsZXNzIG9mIHZlcnNpb24pIGNvbXBhdGli bGUgaW1hZ2UgbXVzdApzcGVjaWZ5IGl0cyBsb2FkIGFkZHJlc3MgKGluIEVMRiBvciBtdWx0aWJv b3QgaGVhZGVyKS4gTXVsdGlib290IHByb3RvY29sCmNvbXBhdGlibGUgbG9hZGVyIGhhdmUgdG8g bG9hZCBpbWFnZSBhdCBzcGVjaWZpZWQgYWRkcmVzcy4gSG93ZXZlciwgdGhlcmUKaXMgbm8gZ3Vh cmFudGVlIHRoYXQgdGhlIHJlcXVlc3RlZCBtZW1vcnkgcmVnaW9uIChpbiBjYXNlIG9mIFhlbiBp dCBzdGFydHMKYXQgMSBNaUIgYW5kIGVuZHMgYXQgMTcgTWlCKSB3aGVyZSBpbWFnZSBzaG91bGQg YmUgbG9hZGVkIGluaXRpYWxseSBpcyBhIFJBTQphbmQgaXQgaXMgZnJlZSAobGVnYWN5IEJJT1Mg cGxhdGZvcm1zIGFyZSBtZXJjaWZ1bCBmb3IgWGVuIGJ1dCBJIGZvdW5kIGF0CmxlYXN0IG9uZSBF RkkgcGxhdGZvcm0gb24gd2hpY2ggWGVuIGxvYWQgYWRkcmVzcyBjb25mbGljdHMgd2l0aCBFRkkg Ym9vdApzZXJ2aWNlczsgaXQgaXMgRGVsbCBQb3dlckVkZ2UgUjgyMCB3aXRoIGxhdGVzdCBmaXJt d2FyZSkuIFRvIGNvcGUgd2l0aAp0aGF0IHByb2JsZW0gd2UgbXVzdCBtYWtlIFhlbiBlYXJseSBi b290IGNvZGUgcmVsb2NhdGFibGUuIFRoaXMgcGF0Y2ggZG9lcwp0aGF0LiBIb3dldmVyLCBpdCBk b2VzIG5vdCBhZGQgbXVsdGlib290MiBwcm90b2NvbCBpbnRlcmZhY2Ugd2hpY2ggaXMgZG9uZQpp biAieDg2OiBhZGQgbXVsdGlib290MiBwcm90b2NvbCBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBp bWFnZXMiIHBhdGNoLgoKVGhpcyBwYXRjaCBjaGFuZ2VzIGZvbGxvd2luZyB0aGluZ3M6CiAgLSBk ZWZhdWx0IGxvYWQgYWRkcmVzcyBpcyBjaGFuZ2VkIGZyb20gMSBNaUIgdG8gMiBNaUI7IEkgZGlk IHRoYXQgYmVjYXVzZQogICAgaW5pdGlhbCBwYWdlIHRhYmxlcyBhcmUgdXNpbmcgMiBNaUIgaHVn ZSBwYWdlcyBhbmQgdGhpcyB3YXkgcmVxdWlyZWQKICAgIHVwZGF0ZXMgZm9yIHRoZW0gYXJlIHF1 aXRlIGVhc3k7IGl0IG1lYW5zIHRoYXQgZS5nLiB3ZSBhdm9pZCBzcGFjaWFsCiAgICBjYXNlcyBm b3Igc3RhcnQgYW5kIGVuZCBvZiByZXF1aXJlZCBtZW1vcnkgcmVnaW9uIGlmIGl0IGxpdmUgYXQg YWRkcmVzcwogICAgbm90IGFsaWduZWQgdG8gMiBNaUIsCiAgLSAlZXNpIGFuZCAlcjE1ZCByZWdp c3RlcnMgYXJlIHVzZWQgYXMgYSBzdG9yYWdlIGZvciBYZW4gaW1hZ2UgbG9hZCBiYXNlCiAgICBh ZGRyZXNzICglcjE1ZCBzaG9ydGx5IGJlY2F1c2UgJXJzaSBpcyB1c2VkIGZvciBFRkkgU3lzdGVt VGFibGUgYWRkcmVzcwogICAgaW4gNjQtYml0IGNvZGUpOyBib3RoIHJlZ2lzdGVycyBhcmUgKCVl c2kgaXMgbW9zdGx5KSB1bnVzZWQgaW4gZWFybHkKICAgIGJvb3QgY29kZSBhbmQgcHJlc2VydmVk IGR1cmluZyBDIGZ1bmN0aW9ucyBjYWxscywKICAtICVlc2kgaXMgdXNlZCBhcyBiYXNlIGZvciBY ZW4gZGF0YSByZWxhdGl2ZSBhZGRyZXNzaW5nIGluIDMyLWJpdCBjb2RlLgoKU2lnbmVkLW9mZi1i eTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KLS0tCnYzIC0gc3VnZ2Vz dGlvbnMvZml4ZXM6CiAgIC0gaW1wcm92ZSBzZWdtZW50IHJlZ2lzdGVycyBpbml0aWFsaXphdGlv bgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHNpbXBsaWZ5IFhlbiBpbWFn ZSBsb2FkIGJhc2UgYWRkcmVzcyBjYWxjdWxhdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpLAogICAtIHVzZSAlZXNpIGFuZCAlcjE1ZCBpbnN0ZWFkIG9mICVlYnAgdG8gc3RvcmUK ICAgICBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MsCiAgIC0gdXNlICVlc2kgaW5zdGVhZCBv ZiAlZnMgZm9yIHJlbGF0aXZlIGFkZHJlc3Npbmc7CiAgICAgdGhpcyB3YXkgd2UgZ2V0IHNob3J0 ZXIgYW5kIHNpbXBsZXIgY29kZSwKICAgLSByZW5hbWUgc29tZSB2YXJpYWJsZXMgYW5kIGNvbnN0 YW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVu dHMKICAgICAoc3VnZ2VzdGVkIGJ5IEtvbnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gaW1wcm92 ZSBjb21taXQgbWVzc2FnZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjMgLSBu b3QgZml4ZWQgeWV0OgogICAtIHNtYWxsIGlzc3VlIHdpdGggcmVtYXBwaW5nIGNvZGUgaW4geGVu L2FyY2gveDg2L3NldHVwLmMsCiAgIC0gPGZpbmFsLWV4ZWMtYWRkcj4gbWtlbGYzMiBhcmd1bWVu dCBzaG91bGQKICAgICBiZSBjYWxjdWxhdGVkIGR5bmFtaWNhbGx5OyB0aGlzIGlzc3VlIGhhcwog ICAgIG1pbmltYWwgaW1wYWN0IG9uIG90aGVyIHBhcnRzIG9mIHRoaXMgcGF0Y2guCi0tLQogeGVu L2FyY2gveDg2L01ha2VmaWxlICAgICAgICAgIHwgICAgNiArLQogeGVuL2FyY2gveDg2L1J1bGVz Lm1rICAgICAgICAgIHwgICAgNCArCiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgfCAg MTYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9ib290L3RyYW1wb2xpbmUuUyB8ICAgIDYgKy0KIHhlbi9hcmNoL3g4Ni9ib290L3dha2V1cC5T ICAgICB8ICAgIDYgKy0KIHhlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TICAgICB8ICAgNDQgKysr KystLS0tLS0KIHhlbi9hcmNoL3g4Ni9zZXR1cC5jICAgICAgICAgICB8ICAgNDQgKysrKysrLS0t LS0KIHhlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgICAgICAgICB8ICAgIDIgKy0KIHhlbi9pbmNsdWRl L2FzbS14ODYvY29uZmlnLmggICB8ICAgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgg ICAgIHwgICAgMiArLQogMTAgZmlsZXMgY2hhbmdlZCwgMTg2IGluc2VydGlvbnMoKyksIDkxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZSBiL3hlbi9hcmNo L3g4Ni9NYWtlZmlsZQppbmRleCAzMmQyNDA3Li4wY2M2ZjVmIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2VmaWxlCkBAIC03MSw4ICs3MSwx MCBAQCBlZmkteSA6PSAkKHNoZWxsIGlmIFsgISAtciAkKEJBU0VESVIpL2luY2x1ZGUveGVuL2Nv bXBpbGUuaCAtbyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnJChUQVJHRVQpLmVm aSc7IGZpKQogCiAkKFRBUkdFVCk6ICQoVEFSR0VUKS1zeW1zICQoZWZpLXkpIGJvb3QvbWtlbGYz MgotCS4vYm9vdC9ta2VsZjMyICQoVEFSR0VUKS1zeW1zICQoVEFSR0VUKSAweDEwMDAwMCBcCi0J YCQoTk0pIC1uciAkKFRBUkdFVCktc3ltcyB8IGhlYWQgLW4gMSB8IHNlZCAtZSAncy9eXChbXiBd KlwpLiovMHhcMS8nYAorIwlUSElTIElTIFVHTFkgSEFDSyEgUExFQVNFIERPIE5PVCBDT01QTEFJ Ti4gSSBXSUxMIEZJWCBJVCBJTiBORVhUIFJFTEVBU0UuCisJLi9ib290L21rZWxmMzIgJChUQVJH RVQpLXN5bXMgJChUQVJHRVQpICQoWEVOX0lNR19PRkZTRVQpIDB4ZmZmZjgyZDA4MTAwMDAwMAor IwkuL2Jvb3QvbWtlbGYzMiAkKFRBUkdFVCktc3ltcyAkKFRBUkdFVCkgMHgxMDAwMDAgXAorIwlg JChOTSkgLW5yICQoVEFSR0VUKS1zeW1zIHwgaGVhZCAtbiAxIHwgc2VkIC1lICdzL15cKFteIF0q XCkuKi8weFwxLydgCiAKIAogQUxMX09CSlMgOj0gJChCQVNFRElSKS9hcmNoL3g4Ni9ib290L2J1 aWx0X2luLm8gJChCQVNFRElSKS9hcmNoL3g4Ni9lZmkvYnVpbHRfaW4ubyAkKEFMTF9PQkpTKQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L1J1bGVzLm1rIGIveGVuL2FyY2gveDg2L1J1bGVzLm1r CmluZGV4IDMxMzk4ODYuLjdjNzZmODAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9SdWxlcy5t aworKysgYi94ZW4vYXJjaC94ODYvUnVsZXMubWsKQEAgLTEsNiArMSwxMCBAQAogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyB4ODYtc3BlY2lmaWMgZGVmaW5pdGlv bnMKIAorWEVOX0lNR19PRkZTRVQgPSAweDIwMDAwMAorCitDRkxBR1MgKz0gLURYRU5fSU1HX09G RlNFVD0kKFhFTl9JTUdfT0ZGU0VUKQorCiBDRkxBR1MgKz0gLUkkKEJBU0VESVIpL2luY2x1ZGUK IENGTEFHUyArPSAtSSQoQkFTRURJUikvaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYwogQ0ZM QUdTICs9IC1JJChCQVNFRElSKS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMK aW5kZXggOTY0ODUxYi4uZTMyMjI3MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVh ZC5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwpAQCAtMTIsNyArMTIsNyBAQAogICAg ICAgICAudGV4dAogICAgICAgICAuY29kZTMyCiAKLSNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAg KChzeW0pIC0gX19YRU5fVklSVF9TVEFSVCkKKyNkZWZpbmUgc3ltX29mZnNldChzeW0pICAgKChz eW0pIC0gX19YRU5fVklSVF9TVEFSVCkKIAogI2RlZmluZSBCT09UX0NTMzIgICAgICAgIDB4MDAw OAogI2RlZmluZSBCT09UX0NTNjQgICAgICAgIDB4MDAxMApAQCAtOTQsNyArOTQsNyBAQCBtdWx0 aWJvb3QyX2hlYWRlcl9zdGFydDoKIAogICAgICAgICAvKiBFRkk2NCBlbnRyeSBwb2ludC4gKi8K ICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5UUllfQUREUkVTU19FRkk2NCksIE1CMl9IVChP UFRJT05BTCksIFwKLSAgICAgICAgICAgICAgICAgICBzeW1fcGh5cyhfX2VmaTY0X3N0YXJ0KQor ICAgICAgICAgICAgICAgICAgIHN5bV9vZmZzZXQoX19lZmk2NF9zdGFydCkKIAogICAgICAgICAv KiBNdWx0aWJvb3QyIGhlYWRlciBlbmQgdGFnLiAqLwogICAgICAgICBtYjJodF9pbml0IE1CMl9I VChFTkQpLCBNQjJfSFQoUkVRVUlSRUQpCkBAIC0xMDYsMTEgKzEwNiwxMiBAQCBtdWx0aWJvb3Qy X2hlYWRlcl9lbmQ6CiAgICAgICAgIC53b3JkICAgMAogZ2R0X2Jvb3RfZGVzY3I6CiAgICAgICAg IC53b3JkICAgNio4LTEKLSAgICAgICAgLmxvbmcgICBzeW1fcGh5cyh0cmFtcG9saW5lX2dkdCkK K2dkdF9ib290X2Jhc2U6CisgICAgICAgIC5sb25nICAgc3ltX29mZnNldCh0cmFtcG9saW5lX2dk dCkKICAgICAgICAgLmxvbmcgICAwIC8qIE5lZWRlZCBmb3IgNjQtYml0IGxnZHQgKi8KIAogY3Mz Ml9zd2l0Y2hfYWRkcjoKLSAgICAgICAgLmxvbmcgICBzeW1fcGh5cyhjczMyX3N3aXRjaCkKKyAg ICAgICAgLmxvbmcgICBzeW1fb2Zmc2V0KGNzMzJfc3dpdGNoKQogICAgICAgICAud29yZCAgIEJP T1RfQ1MzMgogCiAuTGJhZF9jcHVfbXNnOiAuYXNjaXogIkVSUjogTm90IGEgNjQtYml0IENQVSEi CkBAIC0xMjAsMTYgKzEyMSwxNiBAQCBjczMyX3N3aXRjaF9hZGRyOgogICAgICAgICAuc2VjdGlv biAuaW5pdC50ZXh0LCAiYXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKLSAgICAgICAgbW92ICAg ICAkKHN5bV9waHlzKC5MYmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAg ICBtb3YgICAgICQweEI4MDAwLCVlZGkgICAgICAgICAgICAgICAgICAgIyBWR0EgZnJhbWVidWZm ZXIKKyAgICAgICAgbGVhICAgICBzeW1fb2Zmc2V0KC5MYmFkX2NwdV9tc2cpKCVlc2kpLCVlc2kg IyBFcnJvciBtZXNzYWdlCisgICAgICAgIG1vdiAgICAgJDB4QjgwMDAsJWVkaSAgICAgICAgICAg ICAgICAgICAgICAgICMgVkdBIGZyYW1lYnVmZmVyCiAgICAgICAgIGptcCAgICAgMWYKIG5vdF9t dWx0aWJvb3Q6Ci0gICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbXNnKSksJWVz aSAjIEVycm9yIG1lc3NhZ2UKLSAgICAgICAgbW92ICAgICAkMHhCODAwMCwlZWRpICAgICAgICAg ICAgICAgICAgICMgVkdBIGZyYW1lYnVmZmVyCisgICAgICAgIGxlYSAgICAgc3ltX29mZnNldCgu TGJhZF9sZHJfbXNnKSglZXNpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBtb3YgICAg ICQweEI4MDAwLCVlZGkgICAgICAgICAgICAgICAgICAgICAgICAjIFZHQSBmcmFtZWJ1ZmZlcgog ICAgICAgICBqbXAgICAgIDFmCiBtYjJfdG9vX29sZDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9w aHlzKC5MYmFkX2xkcl9tYjIpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICB4b3IgICAg ICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAgICAgIyBObyBWR0EgZnJhbWVidWZmZXIKKyAg ICAgICAgbGVhICAgICBzeW1fb2Zmc2V0KC5MYmFkX2xkcl9tYjIpKCVlc2kpLCVlc2kgIyBFcnJv ciBtZXNzYWdlCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgTm8gVkdBIGZyYW1lYnVmZmVyCiAxOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAog ICAgICAgICB0ZXN0ICAgICVibCwlYmwgICAgICAgICMgVGVybWluYXRlIG9uICdcMCcgc2VudGlu ZWwKICAgICAgICAgamUgICAgICAuTGhhbHQKQEAgLTE1NCw2ICsxNTUsOSBAQCBtYjJfdG9vX29s ZDoKIF9fZWZpNjRfc3RhcnQ6CiAgICAgICAgIGNsZAogCisgICAgICAgIC8qIExvYWQgZGVmYXVs dCBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MuICovCisgICAgICAgIG1vdiAgICAgJHN5bV9v ZmZzZXQoX19pbWFnZV9iYXNlX18pLCVyMTVkCisKICAgICAgICAgLyogQ2hlY2sgZm9yIE11bHRp Ym9vdDIgYm9vdGxvYWRlci4gKi8KICAgICAgICAgY21wICAgICAkTVVMVElCT09UMl9CT09UTE9B REVSX01BR0lDLCVlYXgKICAgICAgICAgamUgICAgICBlZmlfbXVsdGlib290Ml9wcm90bwpAQCAt MjM4LDYgKzI0Miw5IEBAIHJ1bl9iczoKIAogICAgICAgICBwb3AgICAgICVyYXgKIAorICAgICAg ICAvKiBTdG9yZSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MgaW4gcGxhY2UgYWNjZXNzaWJs ZSBmb3IgMzItYml0IGNvZGUuICovCisgICAgICAgIG1vdiAgICAgJXIxNWQsJWVzaQorCiAgICAg ICAgIC8qIEp1bXAgdG8gdHJhbXBvbGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4 Nl8zMiBtb2RlLiAqLwogICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJXJk aQogCkBAIC0yNDUsOSArMjUyLDExIEBAIHg4Nl8zMl9zd2l0Y2g6CiAgICAgICAgIGNsaQogCiAg ICAgICAgIC8qIEluaXRpYWxpc2UgR0RULiAqLworICAgICAgICBhZGQgICAgICVlc2ksZ2R0X2Jv b3RfYmFzZSglcmlwKQogICAgICAgICBsZ2R0ICAgIGdkdF9ib290X2Rlc2NyKCVyaXApCiAKICAg ICAgICAgLyogUmVsb2FkIGNvZGUgc2VsZWN0b3IuICovCisgICAgICAgIGFkZCAgICAgJWVzaSxj czMyX3N3aXRjaF9hZGRyKCVyaXApCiAgICAgICAgIGxqbXBsICAgKmNzMzJfc3dpdGNoX2FkZHIo JXJpcCkKIAogICAgICAgICAuY29kZTMyCkBAIC0yNzcsMTIgKzI4Niw4IEBAIF9fc3RhcnQ6CiAg ICAgICAgIGNsZAogICAgICAgICBjbGkKIAotICAgICAgICAvKiBJbml0aWFsaXNlIEdEVCBhbmQg YmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KLSAgICAgICAgbGdkdCAgICAlY3M6c3ltX3BoeXMoZ2R0 X2Jvb3RfZGVzY3IpCi0gICAgICAgIG1vdiAgICAgJEJPT1RfRFMsJWVjeAotICAgICAgICBtb3Yg ICAgICVlY3gsJWRzCi0gICAgICAgIG1vdiAgICAgJWVjeCwlZXMKLSAgICAgICAgbW92ICAgICAl ZWN4LCVzcworICAgICAgICAvKiBMb2FkIGRlZmF1bHQgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRy ZXNzLiAqLworICAgICAgICBtb3YgICAgICRzeW1fb2Zmc2V0KF9faW1hZ2VfYmFzZV9fKSwlZXNp CiAKICAgICAgICAgLyogQm9vdGxvYWRlcnMgbWF5IHNldCBtdWx0aWJvb3R7MSwyfS5tZW1fbG93 ZXIgdG8gYSBub256ZXJvIHZhbHVlLiAqLwogICAgICAgICB4b3IgICAgICVlZHgsJWVkeApAQCAt MzM0LDYgKzMzOSwyNSBAQCBtdWx0aWJvb3QyX3Byb3RvOgogICAgICAgICBqbXAgICAgIDBiCiAK IHRyYW1wb2xpbmVfYmlvc19zZXR1cDoKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGVkIG9u IGxlZ2FjeSBCSU9TIHBsYXRmb3JtcyBvbmx5LgorICAgICAgICAgKgorICAgICAgICAgKiBJbml0 aWFsaXNlIEdEVCBhbmQgYmFzaWMgZGF0YSBzZWdtZW50cy4KKyAgICAgICAgICovCisgICAgICAg IGFkZCAgICAgJWVzaSxzeW1fb2Zmc2V0KGdkdF9ib290X2Jhc2UpKCVlc2kpCisgICAgICAgIGxn ZHQgICAgc3ltX29mZnNldChnZHRfYm9vdF9kZXNjcikoJWVzaSkKKworICAgICAgICBtb3YgICAg ICRCT09UX0RTLCVlY3gKKyAgICAgICAgbW92ICAgICAlZWN4LCVkcworICAgICAgICBtb3YgICAg ICVlY3gsJWVzCisgICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAgICAgLyogJWVzcCBpcyBp bml0aWFsaXNlZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2FkIG51bGwgZGVzY3JpcHRvciB0 byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAgIHhvciAgICAgJWVjeCwlZWN4 CisgICAgICAgIG1vdiAgICAgJWVjeCwlZnMKKyAgICAgICAgbW92ICAgICAlZWN4LCVncworCiAg ICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAg ICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAg ICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAq LwpAQCAtMzU1LDMzICszNzksNDIgQEAgdHJhbXBvbGluZV9iaW9zX3NldHVwOgogICAgICAgICBj bW92YiAgICVlZHgsJWVjeCAgICAgICAgICAgLyogYW5kIHVzZSB0aGUgc21hbGxlciAqLwogCiB0 cmFtcG9saW5lX3NldHVwOgotICAgICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9s aW5lLiAqLworICAgICAgICAvKgorICAgICAgICAgKiBDYWxsZWQgb24gbGVnYWN5IEJJT1MgYW5k IEVGSSBwbGF0Zm9ybXMuCisgICAgICAgICAqCisgICAgICAgICAqIFJlc2VydmUgNjRrYiBmb3Ig dGhlIHRyYW1wb2xpbmUuCisgICAgICAgICAqLwogICAgICAgICBzdWIgICAgICQweDEwMDAsJWVj eAogCiAgICAgICAgIC8qIEZyb20gYXJjaC94ODYvc21wYm9vdC5jOiBzdGFydF9laXAgaGFkIGJl dHRlciBiZSBwYWdlLWFsaWduZWQhICovCiAgICAgICAgIHhvciAgICAgJWNsLCAlY2wKICAgICAg ICAgc2hsICAgICAkNCwgJWVjeAotICAgICAgICBtb3YgICAgICVlY3gsc3ltX3BoeXModHJhbXBv bGluZV9waHlzKQorICAgICAgICBtb3YgICAgICVlY3gsc3ltX29mZnNldCh0cmFtcG9saW5lX3Bo eXMpKCVlc2kpCisKKyAgICAgICAgLyogU2F2ZSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3Mg Zm9yIGxhdGVyIHVzZS4gKi8KKyAgICAgICAgbW92ICAgICAlZXNpLHN5bV9vZmZzZXQoeGVuX2lt Z19sb2FkX2Jhc2VfYWRkcikoJWVzaSkKKworICAgICAgICAvKiBTZXR1cCBzdGFjay4gJXNzIHdh cyBpbml0aWFsaXplZCBlYXJsaWVyLiAqLworICAgICAgICBsZWEgICAgIChzeW1fb2Zmc2V0KGNw dTBfc3RhY2spKzEwMjQpKCVlc2kpLCVlc3AKIAogICAgICAgICAvKiBTYXZlIHRoZSBNdWx0aWJv b3QgaW5mbyBzdHJ1Y3QgKGFmdGVyIHJlbG9jYXRpb24pIGZvciBsYXRlciB1c2UuICovCi0gICAg ICAgIG1vdiAgICAgJHN5bV9waHlzKGNwdTBfc3RhY2spKzEwMjQsJWVzcAogICAgICAgICBwdXNo ICAgICVlY3ggICAgICAgICAgICAgICAgLyogQm9vdCB0cmFtcG9saW5lIGFkZHJlc3MuICovCiAg ICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBNdWx0aWJvb3QgaW5mb3JtYXRp b24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAgICAgIC8qIE11 bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAgICBhZGQgICAg ICQxMiwlZXNwICAgICAgICAgICAgLyogUmVtb3ZlIHJlbG9jKCkgYXJncyBmcm9tIHN0YWNrLiAq LwotICAgICAgICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKKyAgICAgICAg bW92ICAgICAlZWF4LHN5bV9vZmZzZXQobXVsdGlib290X3B0cikoJWVzaSkKIAogICAgICAgICAv KgogICAgICAgICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCiAgICAg ICAgICAqIEl0IHdhcyBpbml0aWFsaXplZCBlYXJsaWVyLgogICAgICAgICAgKi8KLSAgICAgICAg Y21wYiAgICAkMSxzeW1fcGh5cyhza2lwX3JlYWxtb2RlKQorICAgICAgICBjbXBiICAgICQxLHN5 bV9vZmZzZXQoc2tpcF9yZWFsbW9kZSkoJWVzaSkKICAgICAgICAgamUgICAgICAxZgogCiAgICAg ICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4gKi8KLSAgICAgICAg bW92ICAgICAkc3ltX3BoeXMoX19ic3Nfc3RhcnQpLCVlZGkKLSAgICAgICAgbW92ICAgICAkc3lt X3BoeXMoX19ic3NfZW5kKSwlZWN4CisgICAgICAgIGxlYSAgICAgc3ltX29mZnNldChfX2Jzc19z dGFydCkoJWVzaSksJWVkaQorICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQoX19ic3NfZW5kKSgl ZXNpKSwlZWN4CiAgICAgICAgIHN1YiAgICAgJWVkaSwlZWN4CiAgICAgICAgIHNociAgICAgJDIs JWVjeAogICAgICAgICB4b3IgICAgICVlYXgsJWVheApAQCAtMzk2LDggKzQyOSw4IEBAIHRyYW1w b2xpbmVfc2V0dXA6CiAgICAgICAgIGpiZSAgICAgMWYKICAgICAgICAgbW92ICAgICAkMHg4MDAw MDAwMSwlZWF4CiAgICAgICAgIGNwdWlkCi0xOiAgICAgIG1vdiAgICAgJWVkeCxzeW1fcGh5cyhj cHVpZF9leHRfZmVhdHVyZXMpCi0gICAgICAgIG1vdiAgICAgJWVkeCxzeW1fcGh5cyhib290X2Nw dV9kYXRhKStDUFVJTkZPX0ZFQVRVUkVfT0ZGU0VUKFg4Nl9GRUFUVVJFX0xNKQorMTogICAgICBt b3YgICAgICVlZHgsc3ltX29mZnNldChjcHVpZF9leHRfZmVhdHVyZXMpKCVlc2kpCisgICAgICAg IG1vdiAgICAgJWVkeCxzeW1fb2Zmc2V0KGJvb3RfY3B1X2RhdGEpK0NQVUlORk9fRkVBVFVSRV9P RkZTRVQoWDg2X0ZFQVRVUkVfTE0pKCVlc2kpCiAKICAgICAgICAgLyogQ2hlY2sgZm9yIGF2YWls YWJpbGl0eSBvZiBsb25nIG1vZGUuICovCiAgICAgICAgIGJ0ICAgICAgJGNwdWZlYXRfYml0KFg4 Nl9GRUFUVVJFX0xNKSwlZWR4CkBAIC00MDUsNjQgKzQzOCwxMTUgQEAgdHJhbXBvbGluZV9zZXR1 cDoKIAogICAgICAgICAvKiBTdGFzaCBUU0MgdG8gY2FsY3VsYXRlIGEgZ29vZCBhcHByb3hpbWF0 aW9uIG9mIHRpbWUtc2luY2UtYm9vdCAqLwogICAgICAgICByZHRzYwotICAgICAgICBtb3YgICAg ICVlYXgsc3ltX3BoeXMoYm9vdF90c2Nfc3RhbXApCi0gICAgICAgIG1vdiAgICAgJWVkeCxzeW1f cGh5cyhib290X3RzY19zdGFtcCs0KQorICAgICAgICBtb3YgICAgICVlYXgsc3ltX29mZnNldChi b290X3RzY19zdGFtcCkoJWVzaSkKKyAgICAgICAgbW92ICAgICAlZWR4LHN5bV9vZmZzZXQoYm9v dF90c2Nfc3RhbXArNCkoJWVzaSkKKworICAgICAgICAvKiBVcGRhdGUgZnJhbWUgYWRkcmVzZXMg aW4gcGFnZSB0YWJsZXMuICovCisgICAgICAgIGxlYSAgICAgc3ltX29mZnNldChfX3BhZ2VfdGFi bGVzX3N0YXJ0KSglZXNpKSwlZWR4CisgICAgICAgIG1vdiAgICAgJCgoX19wYWdlX3RhYmxlc19l bmQtX19wYWdlX3RhYmxlc19zdGFydCkvOCksJWVjeAorMTogICAgICB0ZXN0bCAgICRfUEFHRV9Q UkVTRU5ULCglZWR4KQorICAgICAgICBqeiAgICAgIDJmCisgICAgICAgIGFkZCAgICAgJWVzaSwo JWVkeCkKKzI6ICAgICAgYWRkICAgICAkOCwlZWR4CisgICAgICAgIGxvb3AgICAgMWIKKworICAg ICAgICAvKiBJbml0aWFsaXNlIEwyIGJvb3QtbWFwIHBhZ2UgdGFibGUgZW50cmllcyAoMTRNQiku ICovCisgICAgICAgIGxlYSAgICAgc3ltX29mZnNldChsMl9ib290bWFwKSglZXNpKSwlZWR4Cisg ICAgICAgIGxlYSAgICAgc3ltX29mZnNldChzdGFydCkoJWVzaSksJWVheAorICAgICAgICBhbmQg ICAgICR+KCgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpLTEpLCVlYXgKKyAgICAgICAgbW92ICAgICAl ZWF4LCVlYngKKyAgICAgICAgc2hyICAgICAkKEwyX1BBR0VUQUJMRV9TSElGVC0zKSwlZWJ4Cisg ICAgICAgIGFuZCAgICAgJChMMl9QQUdFVEFCTEVfRU5UUklFUyo0KjgtMSksJWVieAorICAgICAg ICBhZGQgICAgICVlYngsJWVkeAorICAgICAgICBhZGQgICAgICQoUEFHRV9IWVBFUlZJU09SfF9Q QUdFX1BTRSksJWVheAorICAgICAgICBtb3YgICAgICQ3LCVlY3gKKzE6ICAgICAgbW92ICAgICAl ZWF4LCglZWR4KQorICAgICAgICBhZGQgICAgICQ4LCVlZHgKKyAgICAgICAgYWRkICAgICAkKDE8 PEwyX1BBR0VUQUJMRV9TSElGVCksJWVheAorICAgICAgICBsb29wICAgIDFiCisKKyAgICAgICAg LyogSW5pdGlhbGlzZSBMMyBib290LW1hcCBwYWdlIGRpcmVjdG9yeSBlbnRyeS4gKi8KKyAgICAg ICAgbGVhICAgICBzeW1fb2Zmc2V0KGwyX2Jvb3RtYXApK19fUEFHRV9IWVBFUlZJU09SKCVlc2kp LCVlYXgKKyAgICAgICAgbGVhICAgICBzeW1fb2Zmc2V0KGwzX2Jvb3RtYXApKCVlc2kpLCVlYngK KyAgICAgICAgbW92ICAgICAkNCwlZWN4CisxOiAgICAgIG1vdiAgICAgJWVheCwoJWVieCkKKyAg ICAgICAgYWRkICAgICAkOCwlZWJ4CisgICAgICAgIGFkZCAgICAgJChMMl9QQUdFVEFCTEVfRU5U UklFUyo4KSwlZWF4CisgICAgICAgIGxvb3AgICAgMWIKKworICAgICAgICAvKiBJbml0aWFsaXNl IEwyIGRpcmVjdCBtYXAgcGFnZSB0YWJsZSBlbnRyaWVzICgxNE1CKS4gKi8KKyAgICAgICAgbGVh ICAgICBzeW1fb2Zmc2V0KGwyX2lkZW50bWFwKSglZXNpKSwlZWR4CisgICAgICAgIGxlYSAgICAg c3ltX29mZnNldChzdGFydCkoJWVzaSksJWVheAorICAgICAgICBhbmQgICAgICR+KCgxPDxMMl9Q QUdFVEFCTEVfU0hJRlQpLTEpLCVlYXgKKyAgICAgICAgbW92ICAgICAlZWF4LCVlYngKKyAgICAg ICAgc2hyICAgICAkKEwyX1BBR0VUQUJMRV9TSElGVC0zKSwlZWJ4CisgICAgICAgIGFuZCAgICAg JChMMl9QQUdFVEFCTEVfRU5UUklFUyo0KjgtMSksJWVieAorICAgICAgICBhZGQgICAgICVlYngs JWVkeAorICAgICAgICBhZGQgICAgICQoUEFHRV9IWVBFUlZJU09SfF9QQUdFX1BTRSksJWVheAor ICAgICAgICBtb3YgICAgICQ3LCVlY3gKKzE6ICAgICAgbW92ICAgICAlZWF4LCglZWR4KQorICAg ICAgICBhZGQgICAgICQ4LCVlZHgKKyAgICAgICAgYWRkICAgICAkKDE8PEwyX1BBR0VUQUJMRV9T SElGVCksJWVheAorICAgICAgICBsb29wICAgIDFiCiAKICAgICAgICAgLyoKICAgICAgICAgICog RHVyaW5nIGJvb3QsIGhvb2sgNGtCIG1hcHBpbmdzIG9mIGZpcnN0IDJNQiBvZiBtZW1vcnkgaW50 byBMMi4KICAgICAgICAgICogVGhpcyBhdm9pZHMgbWl4aW5nIGNhY2hhYmlsaXR5IGZvciB0aGUg bGVnYWN5IFZHQSByZWdpb24sIGFuZCBpcwogICAgICAgICAgKiBjb3JyZWN0ZWQgd2hlbiBYZW4g cmVsb2NhdGVzIGl0c2VsZi4KICAgICAgICAgICovCi0gICAgICAgIG1vdiAgICAgJHN5bV9waHlz KGwxX2lkZW50bWFwKStfX1BBR0VfSFlQRVJWSVNPUiwlZWRpCi0gICAgICAgIG1vdiAgICAgJWVk aSxzeW1fcGh5cyhsMl94ZW5tYXApCisgICAgICAgIGxlYSAgICAgKHN5bV9vZmZzZXQobDFfaWRl bnRtYXApK19fUEFHRV9IWVBFUlZJU09SKSglZXNpKSwlZWRpCisgICAgICAgIG1vdiAgICAgJWVk aSxzeW1fb2Zmc2V0KGwyX2Jvb3RtYXApKCVlc2kpCiAKICAgICAgICAgLyogQXBwbHkgcmVsb2Nh dGlvbnMgdG8gYm9vdHN0cmFwIHRyYW1wb2xpbmUuICovCi0gICAgICAgIG1vdiAgICAgc3ltX3Bo eXModHJhbXBvbGluZV9waHlzKSwlZWR4Ci0gICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fdHJh bXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1fb2Zmc2V0KHRyYW1w b2xpbmVfcGh5cykoJWVzaSksJWVkeAorICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQoX190cmFt cG9saW5lX3JlbF9zdGFydCkoJWVzaSksJWVkaQorICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQo X190cmFtcG9saW5lX3JlbF9zdG9wKSglZXNpKSwlZWJ4CiAxOgogICAgICAgICBtb3YgICAgICgl ZWRpKSwlZWF4CiAgICAgICAgIGFkZCAgICAgJWVkeCwoJWVkaSwlZWF4KQogICAgICAgICBhZGQg ICAgICQ0LCVlZGkKLSAgICAgICAgY21wICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3JlbF9z dG9wKSwlZWRpCisgICAgICAgIGNtcCAgICAgJWVieCwlZWRpCiAgICAgICAgIGpiICAgICAgMWIK IAogICAgICAgICAvKiBQYXRjaCBpbiB0aGUgdHJhbXBvbGluZSBzZWdtZW50LiAqLwogICAgICAg ICBzaHIgICAgICQ0LCVlZHgKLSAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5l X3NlZ19zdGFydCksJWVkaQorICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQoX190cmFtcG9saW5l X3NlZ19zdGFydCkoJWVzaSksJWVkaQorICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQoX190cmFt cG9saW5lX3NlZ19zdG9wKSglZXNpKSwlZWJ4CiAxOgogICAgICAgICBtb3YgICAgICglZWRpKSwl ZWF4CiAgICAgICAgIG1vdiAgICAgJWR4LCglZWRpLCVlYXgpCiAgICAgICAgIGFkZCAgICAgJDQs JWVkaQotICAgICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVl ZGkKKyAgICAgICAgY21wICAgICAlZWJ4LCVlZGkKICAgICAgICAgamIgICAgICAxYgogCiAgICAg ICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUuICov Ci0gICAgICAgIGNtcGIgICAgJDEsc3ltX3BoeXMoc2tpcF9yZWFsbW9kZSkKKyAgICAgICAgY21w YiAgICAkMSxzeW1fb2Zmc2V0KHNraXBfcmVhbG1vZGUpKCVlc2kpCiAgICAgICAgIGplICAgICAg MWYKIAogICAgICAgICAvKiBCYWlsIGlmIHRoZXJlIGlzIG5vIGNvbW1hbmQgbGluZSB0byBwYXJz ZS4gKi8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKSwlZWJ4CisgICAg ICAgIG1vdiAgICAgc3ltX29mZnNldChtdWx0aWJvb3RfcHRyKSglZXNpKSwlZWJ4CiAgICAgICAg IHRlc3RsICAgJE1CSV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCiAgICAgICAgIGp6ICAgICAgMWYK IAogICAgICAgICBjbXBsICAgICQwLE1CX2NtZGxpbmUoJWVieCkKICAgICAgICAganogICAgICAx ZgogCi0gICAgICAgIHB1c2hsICAgJHN5bV9waHlzKGVhcmx5X2Jvb3Rfb3B0cykKKyAgICAgICAg bGVhICAgICBzeW1fb2Zmc2V0KGVhcmx5X2Jvb3Rfb3B0cykoJWVzaSksJWVheAorICAgICAgICBw dXNoICAgICVlYXgKICAgICAgICAgcHVzaGwgICBNQl9jbWRsaW5lKCVlYngpCiAgICAgICAgIGNh bGwgICAgY21kbGluZV9wYXJzZV9lYXJseQogICAgICAgICBhZGQgICAgICQ4LCVlc3AgICAgICAg ICAgICAgLyogUmVtb3ZlIGNtZGxpbmVfcGFyc2VfZWFybHkoKSBhcmdzIGZyb20gc3RhY2suICov CiAKIDE6CiAgICAgICAgIC8qIFN3aXRjaCB0byBsb3ctbWVtb3J5IHN0YWNrLiAgKi8KLSAgICAg ICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKKyAgICAgICAgbW92ICAg ICBzeW1fb2Zmc2V0KHRyYW1wb2xpbmVfcGh5cykoJWVzaSksJWVkaQogICAgICAgICBsZWEgICAg IDB4MTAwMDAoJWVkaSksJWVzcAogICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfYm9vdF9jcHVf ZW50cnktdHJhbXBvbGluZV9zdGFydCglZWRpKSwlZWF4CiAgICAgICAgIHB1c2hsICAgJEJPT1Rf Q1MzMgogICAgICAgICBwdXNoICAgICVlYXgKIAogICAgICAgICAvKiBDb3B5IGJvb3RzdHJhcCB0 cmFtcG9saW5lIHRvIGxvdyBtZW1vcnksIGJlbG93IDFNQi4gKi8KLSAgICAgICAgbW92ICAgICAk c3ltX3BoeXModHJhbXBvbGluZV9zdGFydCksJWVzaQorICAgICAgICBsZWEgICAgIHN5bV9vZmZz ZXQodHJhbXBvbGluZV9zdGFydCkoJWVzaSksJWVzaQogICAgICAgICBtb3YgICAgICR0cmFtcG9s aW5lX2VuZCAtIHRyYW1wb2xpbmVfc3RhcnQsJWVjeAogICAgICAgICByZXAgICAgIG1vdnNiCiAK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUyBiL3hlbi9hcmNoL3g4 Ni9ib290L3RyYW1wb2xpbmUuUwppbmRleCA4YTMyNzI4Li40N2RkNjVhIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvdHJh bXBvbGluZS5TCkBAIC02MCw2ICs2MCw5IEBAIHRyYW1wb2xpbmVfZ2R0OgogICAgICAgICAubG9u ZyAgIHRyYW1wb2xpbmVfZ2R0ICsgQk9PVF9QU0VVRE9STV9EUyArIDIgLSAuCiAgICAgICAgIC5w b3BzZWN0aW9uCiAKK0dMT0JBTCh4ZW5faW1nX2xvYWRfYmFzZV9hZGRyKQorICAgICAgICAubG9u ZyAgIDAKKwogR0xPQkFMKHRyYW1wb2xpbmVfbWlzY19lbmFibGVfb2ZmKQogICAgICAgICAucXVh ZCAgIDAKIApAQCAtODcsNyArOTAsOCBAQCB0cmFtcG9saW5lX3Byb3Rtb2RlX2VudHJ5OgogICAg ICAgICBtb3YgICAgICVlY3gsJWNyNAogCiAgICAgICAgIC8qIExvYWQgcGFnZXRhYmxlIGJhc2Ug cmVnaXN0ZXIuICovCi0gICAgICAgIG1vdiAgICAgJHN5bV9waHlzKGlkbGVfcGdfdGFibGUpLCVl YXgKKyAgICAgICAgbW92ICAgICBib290c3ltX3JlbCh4ZW5faW1nX2xvYWRfYmFzZV9hZGRyLDQs JWVheCkKKyAgICAgICAgbGVhICAgICBzeW1fb2Zmc2V0KGlkbGVfcGdfdGFibGUpKCVlYXgpLCVl YXgKICAgICAgICAgYWRkICAgICBib290c3ltX3JlbCh0cmFtcG9saW5lX3hlbl9waHlzX3N0YXJ0 LDQsJWVheCkKICAgICAgICAgbW92ICAgICAlZWF4LCVjcjMKIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2Jvb3Qvd2FrZXVwLlMgYi94ZW4vYXJjaC94ODYvYm9vdC93YWtldXAuUwppbmRleCAw OGVhOWIyLi42MWMxMjYxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC93YWtldXAuUwor KysgYi94ZW4vYXJjaC94ODYvYm9vdC93YWtldXAuUwpAQCAtMTE5LDggKzExOSwxMCBAQCB3YWtl dXBfMzI6CiAgICAgICAgIG1vdiAgICAgJWVheCwgJXNzCiAgICAgICAgIG1vdiAgICAgJGJvb3Rz eW1fcmVsKHdha2V1cF9zdGFjaywgNCwgJWVzcCkKIAorICAgICAgICBtb3YgICAgIGJvb3RzeW1f cmVsKHhlbl9pbWdfbG9hZF9iYXNlX2FkZHIsIDQsICVlYngpCisKICAgICAgICAgIyBjaGVjayBz YXZlZCBtYWdpYyBhZ2FpbgotICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhzYXZlZF9tYWdpYyks ICVlYXgKKyAgICAgICAgbGVhICAgICBzeW1fb2Zmc2V0KHNhdmVkX21hZ2ljKSglZWJ4KSwgJWVh eAogICAgICAgICBhZGQgICAgIGJvb3RzeW1fcmVsKHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQs IDQsICVlYXgpCiAgICAgICAgIG1vdiAgICAgKCVlYXgpLCAlZWF4CiAgICAgICAgIGNtcCAgICAg JDB4OWFiY2RlZjAsICVlYXgKQEAgLTEzMyw3ICsxMzUsNyBAQCB3YWtldXBfMzI6CiAgICAgICAg IG1vdiAgICAgJWVjeCwgJWNyNAogCiAgICAgICAgIC8qIExvYWQgcGFnZXRhYmxlIGJhc2UgcmVn aXN0ZXIgKi8KLSAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoaWRsZV9wZ190YWJsZSksJWVheAor ICAgICAgICBsZWEgICAgIHN5bV9vZmZzZXQoaWRsZV9wZ190YWJsZSkoJWVieCksJWVheAogICAg ICAgICBhZGQgICAgIGJvb3RzeW1fcmVsKHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQsNCwlZWF4 KQogICAgICAgICBtb3YgICAgICVlYXgsJWNyMwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv Ym9vdC94ODZfNjQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCmluZGV4IDlhYjkyMzEu LjMwZDJlYmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCisrKyBiL3hl bi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCkBAIC04MSw3ICs4MSw2IEBAIEdMT0JBTChib290X2Nw dV9jb21wYXRfZ2R0X3RhYmxlKQogICAgICAgICAucXVhZCAweDAwMDA5MTAwMDAwMDAwMDAgICAg IC8qIHBlci1DUFUgZW50cnkgKGxpbWl0ID09IGNwdSkgICAgICAqLwogICAgICAgICAuYWxpZ24g UEFHRV9TSVpFLCAwCiAKLUdMT0JBTChfX3BhZ2VfdGFibGVzX3N0YXJ0KQogLyoKICAqIE1hcHBp bmcgb2YgZmlyc3QgMiBtZWdhYnl0ZXMgb2YgbWVtb3J5LiBUaGlzIGlzIG1hcHBlZCB3aXRoIDRr QiBtYXBwaW5ncwogICogdG8gYXZvaWQgdHlwZSBjb25mbGljdHMgd2l0aCBmaXhlZC1yYW5nZSBN VFJScyBjb3ZlcmluZyB0aGUgbG93ZXN0IG1lZ2FieXRlCkBAIC0xMDEsMTggKzEwMCwxNSBAQCBH TE9CQUwobDFfaWRlbnRtYXApCiAgICAgICAgIC5lbmRyCiAgICAgICAgIC5zaXplIGwxX2lkZW50 bWFwLCAuIC0gbDFfaWRlbnRtYXAKIAorR0xPQkFMKF9fcGFnZV90YWJsZXNfc3RhcnQpCisKIC8q CiAgKiBTcGFjZSBmb3IgbWFwcGluZyB0aGUgZmlyc3QgNEdCIG9mIG1lbW9yeSwgd2l0aCB0aGUg Zmlyc3QgMTYgbWVnYWJ5dGVzCiAgKiBhY3R1YWx5IG1hcHBlZCAobW9zdGx5IHVzaW5nIHN1cGVy cGFnZXMpLiAgVXNlcyA0eCA0ayBwYWdlcy4KICAqLwogR0xPQkFMKGwyX2lkZW50bWFwKQotICAg ICAgICAucXVhZCBzeW1fcGh5cyhsMV9pZGVudG1hcCkgKyBfX1BBR0VfSFlQRVJWSVNPUgotICAg ICAgICBpZHggPSAxCi0gICAgICAgIC5yZXB0IDcKLSAgICAgICAgLnF1YWQgKGlkeCA8PCBMMl9Q QUdFVEFCTEVfU0hJRlQpIHwgUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfUFNFCi0gICAgICAgIGlk eCA9IGlkeCArIDEKLSAgICAgICAgLmVuZHIKLSAgICAgICAgLmZpbGwgNCAqIEwyX1BBR0VUQUJM RV9FTlRSSUVTIC0gOCwgOCwgMAorICAgICAgICAucXVhZCBzeW1fb2Zmc2V0KGwxX2lkZW50bWFw KSArIF9fUEFHRV9IWVBFUlZJU09SCisgICAgICAgIC5maWxsIDQgKiBMMl9QQUdFVEFCTEVfRU5U UklFUyAtIDEsIDgsIDAKICAgICAgICAgLnNpemUgbDJfaWRlbnRtYXAsIC4gLSBsMl9pZGVudG1h cAogCiAvKgpAQCAtMTIxLDkgKzExNywxMCBAQCBHTE9CQUwobDJfaWRlbnRtYXApCiAgKiBwYWdl LgogICovCiBHTE9CQUwobDJfeGVubWFwKQotICAgICAgICBpZHggPSAwCi0gICAgICAgIC5yZXB0 IDgKLSAgICAgICAgLnF1YWQgc3ltX3BoeXMoX19pbWFnZV9iYXNlX18pICsgKGlkeCA8PCBMMl9Q QUdFVEFCTEVfU0hJRlQpICsgKFBBR0VfSFlQRVJWSVNPUiB8IF9QQUdFX1BTRSkKKyAgICAgICAg LnF1YWQgMAorICAgICAgICBpZHggPSAxCisgICAgICAgIC5yZXB0IDcKKyAgICAgICAgLnF1YWQg c3ltX29mZnNldChfX2ltYWdlX2Jhc2VfXykgKyAoaWR4IDw8IEwyX1BBR0VUQUJMRV9TSElGVCkg KyAoUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfUFNFKQogICAgICAgICBpZHggPSBpZHggKyAxCiAg ICAgICAgIC5lbmRyCiAgICAgICAgIC5maWxsIEwyX1BBR0VUQUJMRV9FTlRSSUVTIC0gOCwgOCwg MApAQCAtMTM0LDcgKzEzMSw3IEBAIGwyX2ZpeG1hcDoKICAgICAgICAgaWR4ID0gMAogICAgICAg ICAucmVwdCBMMl9QQUdFVEFCTEVfRU5UUklFUwogICAgICAgICAuaWYgaWR4ID09IGwyX3RhYmxl X29mZnNldChGSVhBRERSX1RPUCAtIDEpCi0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwxX2ZpeG1h cCkgKyBfX1BBR0VfSFlQRVJWSVNPUgorICAgICAgICAucXVhZCBzeW1fb2Zmc2V0KGwxX2ZpeG1h cCkgKyBfX1BBR0VfSFlQRVJWSVNPUgogICAgICAgICAuZWxzZQogICAgICAgICAucXVhZCAwCiAg ICAgICAgIC5lbmRpZgpAQCAtMTQ2LDcgKzE0Myw3IEBAIGwyX2ZpeG1hcDoKIEdMT0JBTChsM19p ZGVudG1hcCkKICAgICAgICAgaWR4ID0gMAogICAgICAgICAucmVwdCA0Ci0gICAgICAgIC5xdWFk IHN5bV9waHlzKGwyX2lkZW50bWFwKSArIChpZHggPDwgUEFHRV9TSElGVCkgKyBfX1BBR0VfSFlQ RVJWSVNPUgorICAgICAgICAucXVhZCBzeW1fb2Zmc2V0KGwyX2lkZW50bWFwKSArIChpZHggPDwg UEFHRV9TSElGVCkgKyBfX1BBR0VfSFlQRVJWSVNPUgogICAgICAgICBpZHggPSBpZHggKyAxCiAg ICAgICAgIC5lbmRyCiAgICAgICAgIC5maWxsIEwzX1BBR0VUQUJMRV9FTlRSSUVTIC0gNCwgOCwg MApAQCAtMTU3LDkgKzE1NCw5IEBAIGwzX3hlbm1hcDoKICAgICAgICAgaWR4ID0gMAogICAgICAg ICAucmVwdCBMM19QQUdFVEFCTEVfRU5UUklFUwogICAgICAgICAuaWYgaWR4ID09IGwzX3RhYmxl X29mZnNldChYRU5fVklSVF9TVEFSVCkKLSAgICAgICAgLnF1YWQgc3ltX3BoeXMobDJfeGVubWFw KSArIF9fUEFHRV9IWVBFUlZJU09SCisgICAgICAgIC5xdWFkIHN5bV9vZmZzZXQobDJfeGVubWFw KSArIF9fUEFHRV9IWVBFUlZJU09SCiAgICAgICAgIC5lbHNlaWYgaWR4ID09IGwzX3RhYmxlX29m ZnNldChGSVhBRERSX1RPUCAtIDEpCi0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwyX2ZpeG1hcCkg KyBfX1BBR0VfSFlQRVJWSVNPUgorICAgICAgICAucXVhZCBzeW1fb2Zmc2V0KGwyX2ZpeG1hcCkg KyBfX1BBR0VfSFlQRVJWSVNPUgogICAgICAgICAuZWxzZQogICAgICAgICAucXVhZCAwCiAgICAg ICAgIC5lbmRpZgpAQCAtMTY5LDEzICsxNjYsMTMgQEAgbDNfeGVubWFwOgogCiAvKiBUb3AtbGV2 ZWwgbWFzdGVyIChhbmQgaWRsZS1kb21haW4pIHBhZ2UgZGlyZWN0b3J5LiAqLwogR0xPQkFMKGlk bGVfcGdfdGFibGUpCi0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwzX2Jvb3RtYXApICsgX19QQUdF X0hZUEVSVklTT1IKKyAgICAgICAgLnF1YWQgc3ltX29mZnNldChsM19ib290bWFwKSArIF9fUEFH RV9IWVBFUlZJU09SCiAgICAgICAgIGlkeCA9IDEKICAgICAgICAgLnJlcHQgTDRfUEFHRVRBQkxF X0VOVFJJRVMgLSAxCiAgICAgICAgIC5pZiBpZHggPT0gbDRfdGFibGVfb2Zmc2V0KERJUkVDVE1B UF9WSVJUX1NUQVJUKQotICAgICAgICAucXVhZCBzeW1fcGh5cyhsM19pZGVudG1hcCkgKyBfX1BB R0VfSFlQRVJWSVNPUgorICAgICAgICAucXVhZCBzeW1fb2Zmc2V0KGwzX2lkZW50bWFwKSArIF9f UEFHRV9IWVBFUlZJU09SCiAgICAgICAgIC5lbHNlaWYgaWR4ID09IGw0X3RhYmxlX29mZnNldChY RU5fVklSVF9TVEFSVCkKLSAgICAgICAgLnF1YWQgc3ltX3BoeXMobDNfeGVubWFwKSArIF9fUEFH RV9IWVBFUlZJU09SCisgICAgICAgIC5xdWFkIHN5bV9vZmZzZXQobDNfeGVubWFwKSArIF9fUEFH RV9IWVBFUlZJU09SCiAgICAgICAgIC5lbHNlCiAgICAgICAgIC5xdWFkIDAKICAgICAgICAgLmVu ZGlmCkBAIC0xOTAsMTYgKzE4Nyw5IEBAIEdMT0JBTChfX3BhZ2VfdGFibGVzX2VuZCkKICAgICAg ICAgLmFsaWduIFBBR0VfU0laRSwgMAogCiBHTE9CQUwobDJfYm9vdG1hcCkKLSAgICAgICAgLnF1 YWQgc3ltX3BoeXMobDFfaWRlbnRtYXApICsgX19QQUdFX0hZUEVSVklTT1IKLSAgICAgICAgaWR4 ID0gMQotICAgICAgICAucmVwdCA3Ci0gICAgICAgIC5xdWFkIChpZHggPDwgTDJfUEFHRVRBQkxF X1NISUZUKSB8IF9fUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfUFNFCi0gICAgICAgIGlkeCA9IGlk eCArIDEKLSAgICAgICAgLmVuZHIKLSAgICAgICAgLmZpbGwgTDJfUEFHRVRBQkxFX0VOVFJJRVMg LSA4LCA4LCAwCisgICAgICAgIC5maWxsIDQgKiBMMl9QQUdFVEFCTEVfRU5UUklFUywgOCwgMAog ICAgICAgICAuc2l6ZSBsMl9ib290bWFwLCAuIC0gbDJfYm9vdG1hcAogCiBHTE9CQUwobDNfYm9v dG1hcCkKLSAgICAgICAgLnF1YWQgc3ltX3BoeXMobDJfYm9vdG1hcCkgKyBfX1BBR0VfSFlQRVJW SVNPUgotICAgICAgICAuZmlsbCBMM19QQUdFVEFCTEVfRU5UUklFUyAtIDEsIDgsIDAKKyAgICAg ICAgLmZpbGwgTDNfUEFHRVRBQkxFX0VOVFJJRVMsIDgsIDAKICAgICAgICAgLnNpemUgbDNfYm9v dG1hcCwgLiAtIGwzX2Jvb3RtYXAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIv eGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMjFiYmU2YS4uZjZkMmZhMCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTI4MSw5 ICsyODEsNiBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGJvb3RzdHJhcF9tYXAoY29uc3QgbW9kdWxl X3QgKm1vZCkKICAgICBpZiAoIHN0YXJ0ID49IGVuZCApCiAgICAgICAgIHJldHVybiBOVUxMOwog Ci0gICAgaWYgKCBlbmQgPD0gQk9PVFNUUkFQX01BUF9CQVNFICkKLSAgICAgICAgcmV0dXJuICh2 b2lkICopKHVuc2lnbmVkIGxvbmcpc3RhcnQ7Ci0KICAgICByZXQgPSAodm9pZCAqKShtYXBfY3Vy ICsgKHVuc2lnbmVkIGxvbmcpKHN0YXJ0ICYgbWFzaykpOwogICAgIHN0YXJ0ICY9IH5tYXNrOwog ICAgIGVuZCA9IChlbmQgKyBtYXNrKSAmIH5tYXNrOwpAQCAtNjYxLDYgKzY1OCw5IEBAIHZvaWQg X19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICBw cmludGsoIkNvbW1hbmQgbGluZTogJXNcbiIsIGNtZGxpbmUpOwogCisgICAgcHJpbnRrKCJYZW4g aW1hZ2UgYmFzZSBhZGRyZXNzOiAweCUwOGx4XG4iLAorICAgICAgICAgICB4ZW5fcGh5c19zdGFy dCA/IHhlbl9waHlzX3N0YXJ0IDogKHVuc2lnbmVkIGxvbmcpeGVuX2ltZ19sb2FkX2Jhc2VfYWRk cik7CisKICAgICBwcmludGsoIlZpZGVvIGluZm9ybWF0aW9uOlxuIik7CiAKICAgICAvKiBQcmlu dCBWR0EgZGlzcGxheSBtb2RlIGluZm9ybWF0aW9uLiAqLwpAQCAtODU1LDEwICs4NTUsOCBAQCB2 b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAg ICAgICB1aW50NjRfdCBzLCBlLCBtYXNrID0gKDFVTCA8PCBMMl9QQUdFVEFCTEVfU0hJRlQpIC0g MTsKICAgICAgICAgdWludDY0X3QgZW5kLCBsaW1pdCA9IEFSUkFZX1NJWkUobDJfaWRlbnRtYXAp IDw8IEwyX1BBR0VUQUJMRV9TSElGVDsKIAotICAgICAgICAvKiBTdXBlcnBhZ2UtYWxpZ25lZCBj aHVua3MgZnJvbSBCT09UU1RSQVBfTUFQX0JBU0UuICovCiAgICAgICAgIHMgPSAoYm9vdF9lODIw Lm1hcFtpXS5hZGRyICsgbWFzaykgJiB+bWFzazsKICAgICAgICAgZSA9IChib290X2U4MjAubWFw W2ldLmFkZHIgKyBib290X2U4MjAubWFwW2ldLnNpemUpICYgfm1hc2s7Ci0gICAgICAgIHMgPSBt YXhfdCh1aW50NjRfdCwgcywgQk9PVFNUUkFQX01BUF9CQVNFKTsKICAgICAgICAgaWYgKCAoYm9v dF9lODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKSB8fCAocyA+PSBlKSApCiAgICAgICAgICAg ICBjb250aW51ZTsKIApAQCAtODk2LDcgKzg5NCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9f c3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAvKiBTZWxlY3QgcmVs b2NhdGlvbiBhZGRyZXNzLiAqLwogICAgICAgICAgICAgZSA9IGVuZCAtIHJlbG9jX3NpemU7CiAg ICAgICAgICAgICB4ZW5fcGh5c19zdGFydCA9IGU7Ci0gICAgICAgICAgICBib290c3ltKHRyYW1w b2xpbmVfeGVuX3BoeXNfc3RhcnQpID0gZTsKKyAgICAgICAgICAgIGJvb3RzeW0odHJhbXBvbGlu ZV94ZW5fcGh5c19zdGFydCkgPSBlIC0geGVuX2ltZ19sb2FkX2Jhc2VfYWRkcjsKIAogICAgICAg ICAgICAgLyoKICAgICAgICAgICAgICAqIFBlcmZvcm0gcmVsb2NhdGlvbiB0byBuZXcgcGh5c2lj YWwgYWRkcmVzcy4KQEAgLTkwNiw3ICs5MDQsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0 YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgICAgICovCiAgICAgICAgICAg ICBsb2FkX3N0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpX3N0YXJ0IC0gWEVOX1ZJUlRfU1RBUlQ7CiAg ICAgICAgICAgICBiYXJyaWVyKCk7Ci0gICAgICAgICAgICBtb3ZlX21lbW9yeShlICsgbG9hZF9z dGFydCwgbG9hZF9zdGFydCwgX2VuZCAtIF9zdGFydCwgMSk7CisgICAgICAgICAgICBtb3ZlX21l bW9yeShlICsgbG9hZF9zdGFydCwgbG9hZF9zdGFydCArIHhlbl9pbWdfbG9hZF9iYXNlX2FkZHIs IF9lbmQgLSBfc3RhcnQsIDEpOwogCiAgICAgICAgICAgICAvKiBXYWxrIGluaXRpYWwgcGFnZXRh YmxlcywgcmVsb2NhdGluZyBwYWdlIGRpcmVjdG9yeSBlbnRyaWVzLiAqLwogICAgICAgICAgICAg cGw0ZSA9IF9fdmEoX19wYShpZGxlX3BnX3RhYmxlKSk7CkBAIC05MTUsMjcgKzkxMywyNyBAQCB2 b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAg ICAgICAgICAgICAgIGlmICggIShsNGVfZ2V0X2ZsYWdzKCpwbDRlKSAmIF9QQUdFX1BSRVNFTlQp ICkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgKnBsNGUg PSBsNGVfZnJvbV9pbnRwdGUobDRlX2dldF9pbnRwdGUoKnBsNGUpICsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5fcGh5c19zdGFydCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQgLSB4ZW5faW1nX2xvYWRf YmFzZV9hZGRyKTsKICAgICAgICAgICAgICAgICBwbDNlID0gbDRlX3RvX2wzZSgqcGw0ZSk7CiAg ICAgICAgICAgICAgICAgZm9yICggaiA9IDA7IGogPCBMM19QQUdFVEFCTEVfRU5UUklFUzsgaisr LCBwbDNlKysgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgLyogTm90 IHByZXNlbnQsIDFHQiBtYXBwaW5nLCBvciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8KICAgICAgICAg ICAgICAgICAgICAgaWYgKCAhKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0VfUFJFU0VOVCkg fHwKICAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9mbGFncygqcGwzZSkgJiBfUEFH RV9QU0UpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKGwzZV9nZXRfcGZuKCpwbDNlKSA+ IDB4MTAwMCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsM2VfZ2V0X3BmbigqcGwzZSkg PiBQRk5fRE9XTih4ZW5fcGh5c19zdGFydCkpICkKICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAqcGwzZSA9IGwzZV9mcm9tX2ludHB0ZShsM2Vf Z2V0X2ludHB0ZSgqcGwzZSkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB4ZW5fcGh5c19zdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHhlbl9waHlzX3N0YXJ0IC0geGVuX2ltZ19sb2FkX2Jhc2VfYWRkcik7CiAg ICAgICAgICAgICAgICAgICAgIHBsMmUgPSBsM2VfdG9fbDJlKCpwbDNlKTsKICAgICAgICAgICAg ICAgICAgICAgZm9yICggayA9IDA7IGsgPCBMMl9QQUdFVEFCTEVfRU5UUklFUzsgaysrLCBwbDJl KysgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBO b3QgcHJlc2VudCwgUFNFLCBvciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8KICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9Q QUdFX1BTRSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwyZV9nZXRfcGZuKCpw bDJlKSA+IDB4MTAwMCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobDJlX2dldF9w Zm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAqcGwyZSA9IGwy ZV9mcm9tX2ludHB0ZShsMmVfZ2V0X2ludHB0ZSgqcGwyZSkgKwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQgLSB4 ZW5faW1nX2xvYWRfYmFzZV9hZGRyKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTk0NiwyMSArOTQ0LDMwIEBAIHZvaWQgX19pbml0 IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAg KiBVbmRvIHRoZSB0ZW1wb3JhcnktaG9va2luZyBvZiB0aGUgbDFfaWRlbnRtYXAuICBfXzJNX3Rl eHRfc3RhcnQKICAgICAgICAgICAgICAqIGlzIGNvbnRhaW5lZCBpbiB0aGlzIFBURS4KICAgICAg ICAgICAgICAqLworI2lmIDAKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBTaG91bGQg QlVHX09OKCkgYmUgcnVuIG9ubHkgaWYgWGVuIGlzCisgICAgICAgICAgICAgKiBsb2FkZWQgd2l0 aCBFRkkgbG9hZGVkciAoeGVuLmVmaSk/CisgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIEJV R19PTihsMl90YWJsZV9vZmZzZXQoKHVuc2lnbmVkIGxvbmcpX2Vyb2RhdGEpID09CiAgICAgICAg ICAgICAgICAgICAgbDJfdGFibGVfb2Zmc2V0KCh1bnNpZ25lZCBsb25nKV9zdGV4dCkpOwogICAg ICAgICAgICAgKnBsMmUrKyA9IGwyZV9mcm9tX3Bmbih4ZW5fcGh5c19zdGFydCA+PiBQQUdFX1NI SUZULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX0hZUEVSVklTT1Jf UlggfCBfUEFHRV9QU0UpOworI2Vsc2UKKyAgICAgICAgICAgIHBsMmUrKzsKKyNlbmRpZgogICAg ICAgICAgICAgZm9yICggaSA9IDE7IGkgPCBMMl9QQUdFVEFCTEVfRU5UUklFUzsgaSsrLCBwbDJl KysgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsK IAotICAgICAgICAgICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BS RVNFTlQpICkKKyAgICAgICAgICAgICAgICBpZiAoICEobDJlX2dldF9mbGFncygqcGwyZSkgJiBf UEFHRV9QUkVTRU5UKSB8fAorICAgICAgICAgICAgICAgICAgICAgKGwyZV9nZXRfcGZuKCpwbDJl KSA+IFBGTl9ET1dOKHhlbl9waHlzX3N0YXJ0KSkgKQogICAgICAgICAgICAgICAgICAgICBjb250 aW51ZTsKIAogICAgICAgICAgICAgICAgIGlmICggIXVzaW5nXzJNX21hcHBpbmcoKSApCiAgICAg ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAqcGwyZSA9IGwyZV9mcm9tX2ludHB0 ZShsMmVfZ2V0X2ludHB0ZSgqcGwyZSkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4ZW5fcGh5c19zdGFydCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHhlbl9waHlzX3N0YXJ0IC0geGVuX2ltZ19sb2FkX2Jhc2VfYWRk cik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIApA QCAtOTkwLDcgKzk5Nyw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2ln bmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgKnBs MmUgPSBsMmVfZnJvbV9wYWRkcigKLSAgICAgICAgICAgICAgICAgICAgbDJlX2dldF9wYWRkcigq cGwyZSkgKyB4ZW5fcGh5c19zdGFydCwgZmxhZ3MpOworICAgICAgICAgICAgICAgICAgICBsMmVf Z2V0X3BhZGRyKCpwbDJlKSArIHhlbl9waHlzX3N0YXJ0IC0geGVuX2ltZ19sb2FkX2Jhc2VfYWRk ciwgZmxhZ3MpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvKiBSZS1zeW5jIHRoZSBz dGFjayBhbmQgdGhlbiBzd2l0Y2ggdG8gcmVsb2NhdGVkIHBhZ2V0YWJsZXMuICovCkBAIC0xMDYx LDYgKzEwNjgsOSBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBs b25nIG1iaV9wKQogCiAgICAgaWYgKCAheGVuX3BoeXNfc3RhcnQgKQogICAgICAgICBwYW5pYygi Tm90IGVub3VnaCBtZW1vcnkgdG8gcmVsb2NhdGUgWGVuLiIpOworCisgICAgcHJpbnRrKCJOZXcg WGVuIGltYWdlIGJhc2UgYWRkcmVzczogMHglMDhseFxuIiwgeGVuX3BoeXNfc3RhcnQpOworCiAg ICAgcmVzZXJ2ZV9lODIwX3JhbSgmYm9vdF9lODIwLCBfX3BhKCZfc3RhcnQpLCBfX3BhKCZfZW5k KSk7CiAKICAgICAvKiBMYXRlIGtleGVjIHJlc2VydmF0aW9uIChkeW5hbWljIHN0YXJ0IGFkZHJl c3MpLiAqLwpAQCAtMTEzMywxNCArMTE0MywxMiBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0 YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgICAgIHNldF9wZHhfcmFuZ2UocyA+ PiBQQUdFX1NISUZULCBlID4+IFBBR0VfU0hJRlQpOwogCi0gICAgICAgIC8qIE5lZWQgdG8gY3Jl YXRlIG1hcHBpbmdzIGFib3ZlIEJPT1RTVFJBUF9NQVBfQkFTRS4gKi8KLSAgICAgICAgbWFwX3Mg PSBtYXhfdCh1aW50NjRfdCwgcywgQk9PVFNUUkFQX01BUF9CQVNFKTsKKyAgICAgICAgbWFwX3Mg PSBzOwogICAgICAgICBtYXBfZSA9IG1pbl90KHVpbnQ2NF90LCBlLAogICAgICAgICAgICAgICAg ICAgICAgIEFSUkFZX1NJWkUobDJfaWRlbnRtYXApIDw8IEwyX1BBR0VUQUJMRV9TSElGVCk7CiAK ICAgICAgICAgLyogUGFzcyBtYXBwZWQgbWVtb3J5IHRvIGFsbG9jYXRvciAvYmVmb3JlLyBjcmVh dGluZyBuZXcgbWFwcGluZ3MuICovCiAgICAgICAgIGluaXRfYm9vdF9wYWdlcyhzLCBtaW4obWFw X3MsIGUpKTsKLSAgICAgICAgcyA9IG1hcF9zOwogICAgICAgICBpZiAoIHMgPCBtYXBfZSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIHVpbnQ2NF90IG1hc2sgPSAoMVVMIDw8IEwyX1BBR0VUQUJM RV9TSElGVCkgLSAxOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3hlbi5sZHMuUyBiL3hlbi9h cmNoL3g4Ni94ZW4ubGRzLlMKaW5kZXggZmExZGEzNy4uOGQyYWQ5ZiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3hlbi5sZHMuUworKysgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCkBAIC00MSw3 ICs0MSw3IEBAIFNFQ1RJT05TCiAKICAgX18yTV90ZXh0X3N0YXJ0ID0gLjsgICAgICAgICAvKiBT dGFydCBvZiAyTSBzdXBlcnBhZ2VzLCBtYXBwZWQgUlguICovCiAKLSAgLiA9IF9fWEVOX1ZJUlRf U1RBUlQgKyBNQigxKTsKKyAgLiA9IF9fWEVOX1ZJUlRfU1RBUlQgKyBYRU5fSU1HX09GRlNFVDsK ICAgX3N0YXJ0ID0gLjsKICAgLnRleHQgOiB7CiAgICAgICAgIF9zdGV4dCA9IC47ICAgICAgICAg ICAgLyogVGV4dCBhbmQgcmVhZC1vbmx5IGRhdGEgKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L2FzbS14ODYvY29uZmlnLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCmluZGV4IDQ1 MjdjZTMuLmJiOGM5ZGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaApAQCAtOTcsNiArOTcsNyBAQCBleHRl cm4gdW5zaWduZWQgbG9uZyB0cmFtcG9saW5lX3BoeXM7CiAgICAgICAgICAgICAgICAgIHRyYW1w b2xpbmVfcGh5cy1fX3BhKHRyYW1wb2xpbmVfc3RhcnQpKSkKIGV4dGVybiBjaGFyIHRyYW1wb2xp bmVfc3RhcnRbXSwgdHJhbXBvbGluZV9lbmRbXTsKIGV4dGVybiBjaGFyIHRyYW1wb2xpbmVfcmVh bG1vZGVfZW50cnlbXTsKK2V4dGVybiB1bnNpZ25lZCBpbnQgeGVuX2ltZ19sb2FkX2Jhc2VfYWRk cjsKIGV4dGVybiB1bnNpZ25lZCBpbnQgdHJhbXBvbGluZV94ZW5fcGh5c19zdGFydDsKIGV4dGVy biB1bnNpZ25lZCBjaGFyIHRyYW1wb2xpbmVfY3B1X3N0YXJ0ZWQ7CiBleHRlcm4gY2hhciB3YWtl dXBfc3RhcnRbXTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKaW5kZXggMjI0ODUyYS4uNGFiZDJlYSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9w YWdlLmgKQEAgLTI4OCw3ICsyODgsNyBAQCBleHRlcm4gcm9vdF9wZ2VudHJ5X3QgaWRsZV9wZ190 YWJsZVtST09UX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMl9wZ2VudHJ5X3QgICpjb21w YXRfaWRsZV9wZ190YWJsZV9sMjsKIGV4dGVybiB1bnNpZ25lZCBpbnQgICBtMnBfY29tcGF0X3Zz dGFydDsKIGV4dGVybiBsMl9wZ2VudHJ5X3QgbDJfeGVubWFwW0wyX1BBR0VUQUJMRV9FTlRSSUVT XSwKLSAgICBsMl9ib290bWFwW0wyX1BBR0VUQUJMRV9FTlRSSUVTXTsKKyAgICBsMl9ib290bWFw WzQqTDJfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwzX3BnZW50cnlfdCBsM19ib290bWFw W0wzX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMl9wZ2VudHJ5X3QgbDJfaWRlbnRtYXBb NCpMMl9QQUdFVEFCTEVfRU5UUklFU107CiBleHRlcm4gbDFfcGdlbnRyeV90IGwxX2lkZW50bWFw W0wxX1BBR0VUQUJMRV9FTlRSSUVTXSwKLS0gCjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK