From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v9 11/13] x86: make Xen early boot code relocatable Date: Thu, 29 Sep 2016 23:42:40 +0200 Message-ID: <1475185362-14198-12-git-send-email-daniel.kiper@oracle.com> References: <1475185362-14198-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 1bpj7R-0003i2-Vc for xen-devel@lists.xenproject.org; Thu, 29 Sep 2016 21:43:54 +0000 In-Reply-To: <1475185362-14198-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, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org RXZlcnkgbXVsdGlib290IHByb3RvY29sIChyZWdhcmRsZXNzIG9mIHZlcnNpb24pIGNvbXBhdGli bGUgaW1hZ2UgbXVzdApzcGVjaWZ5IGl0cyBsb2FkIGFkZHJlc3MgKGluIEVMRiBvciBtdWx0aWJv b3QgaGVhZGVyKS4gTXVsdGlib290IHByb3RvY29sCmNvbXBhdGlibGUgbG9hZGVyIGhhdmUgdG8g bG9hZCBpbWFnZSBhdCBzcGVjaWZpZWQgYWRkcmVzcy4gSG93ZXZlciwgdGhlcmUKaXMgbm8gZ3Vh cmFudGVlIHRoYXQgdGhlIHJlcXVlc3RlZCBtZW1vcnkgcmVnaW9uIChpbiBjYXNlIG9mIFhlbiBp dCBzdGFydHMKYXQgMiBNaUIgYW5kIGVuZHMgYXQgfjUgTWlCKSB3aGVyZSBpbWFnZSBzaG91bGQg YmUgbG9hZGVkIGluaXRpYWxseSBpcyBhIFJBTQphbmQgaXQgaXMgZnJlZSAobGVnYWN5IEJJT1Mg cGxhdGZvcm1zIGFyZSBtZXJjaWZ1bCBmb3IgWGVuIGJ1dCBJIGZvdW5kIGF0CmxlYXN0IG9uZSBF RkkgcGxhdGZvcm0gb24gd2hpY2ggWGVuIGxvYWQgYWRkcmVzcyBjb25mbGljdHMgd2l0aCBFRkkg Ym9vdApzZXJ2aWNlczsgaXQgaXMgRGVsbCBQb3dlckVkZ2UgUjgyMCB3aXRoIGxhdGVzdCBmaXJt d2FyZSkuIFRvIGNvcGUgd2l0aCB0aGF0CnByb2JsZW0gd2UgbXVzdCBtYWtlIFhlbiBlYXJseSBi b290IGNvZGUgcmVsb2NhdGFibGUgYW5kIGhlbHAgYm9vdCBsb2FkZXIgdG8KcmVsb2NhdGUgaW1h Z2UgaW4gcHJvcGVyIHdheSBieSBzdWdnZXN0aW5nLCBub3QgcmVxdWVzdGluZyBzcGVjaWZpYyBs b2FkCmFkZHJlc3NlcyBhcyBpdCBpcyByaWdodCBub3csIGFsbG93ZWQgYWRkcmVzcyByYW5nZXMu IFRoaXMgcGF0Y2ggZG9lcyBmb3JtZXIuCkl0IGRvZXMgbm90IGFkZCBtdWx0aWJvb3QyIHByb3Rv Y29sIGludGVyZmFjZSB3aGljaCBpcyBkb25lIGluICJ4ODY6IGFkZAptdWx0aWJvb3QyIHByb3Rv Y29sIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGltYWdlcyIgcGF0Y2guCgpUaGlzIHBhdGNoIGNo YW5nZXMgZm9sbG93aW5nIHRoaW5nczoKICAtICVlc2kgYW5kICVyMTVkIHJlZ2lzdGVycyBhcmUg dXNlZCBhcyBhIHN0b3JhZ2UgZm9yIFhlbiBpbWFnZSBsb2FkIGJhc2UKICAgIGFkZHJlc3MgKCVy MTVkIHNob3J0bHkgYmVjYXVzZSAlcnNpIGlzIHVzZWQgZm9yIEVGSSBTeXN0ZW1UYWJsZSBhZGRy ZXNzCiAgICBpbiA2NC1iaXQgY29kZSk7IGJvdGggcmVnaXN0ZXJzIGFyZSAoJWVzaSBpcyBtb3N0 bHkpIHVudXNlZCBpbiBlYXJseQogICAgYm9vdCBjb2RlIGFuZCBwcmVzZXJ2ZWQgZHVyaW5nIEMg ZnVuY3Rpb25zIGNhbGxzICglZXNpIGluIDMyLWJpdCBjb2RlCiAgICBhbmQgJXIxNWQgaW4gNjQt Yml0IGNvZGUpLAogIC0gJWZzIGlzIHVzZWQgYXMgYmFzZSBmb3IgWGVuIGRhdGEgcmVsYXRpdmUg YWRkcmVzc2luZyBpbiAzMi1iaXQgY29kZQogICAgaWYgaXQgaXMgcG9zc2libGU7ICVlc2kgaXMg dXNlZCBmb3IgdGhhdCB0aGluZyBkdXJpbmcgZXJyb3IgcHJpbnRpbmcKICAgIGJlY2F1c2UgaXQg aXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBwcm9wZXJseSBhbmQgZWZmaWNpZW50bHkKICAgIGlu aXRpYWxpemUgJWZzLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJA b3JhY2xlLmNvbT4KLS0tCnY4IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIHNobGQgaW5z dGVhZCBvZiBtb3YgYW5kIHNociBpbiBCT09UX0ZTIHNlZ21lbnQKICAgICBkZXNjcmlwdG9yIGJh c2UgYWRkcmVzcyBpbml0aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIHNpbXBsaWZ5IGNvZGUgdXBkYXRpbmcgZnJhbWUgYWRkcmVzc2VzIGluIHBhZ2UgdGFi bGVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcHJpbnQgWGVuIGltYWdl IGJhc2UgYWRkcmVzc2VzIHVzaW5nICIlI2x4IiBmb3JtYXQKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCkuCgp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGxlYXZlIHN0YXRpYyBtYXBw aW5nIG9mIGZpcnN0CiAgICAgMTYgTWlCIGluIGwyX2lkZW50bWFwIGFzIGlzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIHhlbl9waHlzX3N0YXJ0IGluc3RlYWQgb2Yg eGVuX2ltZ19sb2FkX2Jhc2VfYWRkcgogICAgIChzdWdnZXN0ZWQgYnkgRGFuaWVsIEtpcGVyIGFu ZCBKYW4gQmV1bGljaCksCiAgIC0gc2ltcGxpZnkgQk9PVF9GUyBzZWdtZW50IGRlc2NyaXB0b3IK ICAgICBiYXNlIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBmaXggQk9PVF9GUyBzZWdtZW50IGxpbWl0CiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCksCiAgIC0gZG8gbm90IHJlbmFtZSBzeW1fcGh5cyBpbiB0aGlzIHBhdGNo CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVuYW1lIGVzaV9vZmZzZXQv ZnNfb2Zmc2V0IHRvCiAgICAgc3ltX2VzaS9zeW1fZnMgcmVzcGVjdGl2ZWx5CiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIGFkZCBpbnN0ZWFkIG9mIGxlYSBpbiBhc3Nl bWJseQogICAgIGVycm9yIHByaW50aW5nIGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGRvIG5v dCByZWxvY2F0ZSBYZW4gaW1hZ2UgaWYgYm9vdCBsb2FkZXIgZGlkIHdvcmsgZm9yIHVzCiAgICAg KHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyIGFuZCBKYW4gQmV1bGljaCksCiAgIC0gaW5pdGlh bGl6ZSB4ZW5faW1nX2xvYWRfYmFzZV9hZGRyIGluIEVGSSBib290IGNvZGUgdG9vLAogICAtIHBy b3Blcmx5IGluaXRpYWxpemUgdHJhbXBvbGluZV94ZW5fcGh5c19zdGFydCwKICAgLSBjYWxjdWxh dGUgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGluCiAgICAgeDg2XzY0IGNvZGUgb3Vyc2Vs dmVzLAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGNoYW5nZSBob3cgYW5k IHdoZW4gWGVuIGltYWdlIGJhc2UgYWRkcmVzcyBpcyBwcmludGVkLAogICAtIHVzZSAlZnMgaW5z dGVhZCBvZiAlZXNpIGZvciByZWxhdGl2ZSBhZGRyZXNzaW5nCiAgICAgKHN1Z2dlc3RlZCBieSBB bmRyZXcgQ29vcGVyIGFuZCBKYW4gQmV1bGljaCksCiAgIC0gY3JlYXRlIGVzaV9vZmZzZXQgYW5k IGZzX29mZnNldCgpIG1hY3JvcyBpbiBhc3NlbWJseSwKICAgLSBjYWxjdWxhdGUgPGZpbmFsLWV4 ZWMtYWRkcj4gbWtlbGYzMiBhcmd1bWVudCBhdXRvbWF0aWNhbGx5LAogICAtIG9wdGltaXplIGFu ZCBjbGVhbnVwIGNvZGUsCiAgIC0gaW1wcm92ZSBjb21tZW50cywKICAgLSBpbXByb3ZlIGNvbW1p dCBtZXNzYWdlLgoKdjMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBpbXByb3ZlIHNlZ21lbnQg cmVnaXN0ZXJzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gc2ltcGxpZnkgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRyZXNzIGNhbGN1bGF0aW9uCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlICVlc2kgYW5kICVyMTVkIGlu c3RlYWQgb2YgJWVicCB0byBzdG9yZQogICAgIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcywK ICAgLSB1c2UgJWVzaSBpbnN0ZWFkIG9mICVmcyBmb3IgcmVsYXRpdmUgYWRkcmVzc2luZzsKICAg ICB0aGlzIHdheSB3ZSBnZXQgc2hvcnRlciBhbmQgc2ltcGxlciBjb2RlLAogICAtIHJlbmFtZSBz b21lIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6 dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBi eSBKYW4gQmV1bGljaCkuCi0tLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAgICAgIHwg IDE2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYv Ym9vdC90cmFtcG9saW5lLlMgICAgfCAgICA1ICsrCiB4ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQu UyAgICAgICAgfCAgIDIxICsrKy0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAg fCAgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAgIDMgKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgICAgMiArLQogNiBmaWxlcyBjaGFu Z2VkLCAxNTYgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmluZGV4IDkw MmZmNTAuLjQ0MjU0MzYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUworKysg Yi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTEzLDEyICsxMywxNSBAQAogICAgICAgICAu Y29kZTMyCiAKICNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAgKChzeW0pIC0gX19YRU5fVklSVF9T VEFSVCkKKyNkZWZpbmUgc3ltX2VzaShzeW0pICAgICAgc3ltX3BoeXMoc3ltKSglZXNpKQorI2Rl ZmluZSBzeW1fZnMoc3ltKSAgICAgICAlZnM6c3ltX3BoeXMoc3ltKQogCiAjZGVmaW5lIEJPT1Rf Q1MzMiAgICAgICAgMHgwMDA4CiAjZGVmaW5lIEJPT1RfQ1M2NCAgICAgICAgMHgwMDEwCiAjZGVm aW5lIEJPT1RfRFMgICAgICAgICAgMHgwMDE4CiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fQ1MgMHgw MDIwCiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CisjZGVmaW5lIEJPT1RfRlMgICAg ICAgICAgMHgwMDMwCiAKICNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAgKE1VTFRJQk9PVDJfSEVB REVSX1RBR18jI25hbWUpCiAjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAgIChNVUxUSUJPT1QyX1RB R19UWVBFXyMjbmFtZSkKQEAgLTEwNSw3ICsxMDgsOCBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFy dDoKIAogICAgICAgICAud29yZCAgIDAKIGdkdF9ib290X2Rlc2NyOgotICAgICAgICAud29yZCAg IDYqOC0xCisgICAgICAgIC53b3JkICAgNyo4LTEKK2dkdF9ib290X2Jhc2U6CiAgICAgICAgIC5s b25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCiAgICAgICAgIC5sb25nICAgMCAvKiBOZWVk ZWQgZm9yIDY0LWJpdCBsZ2R0ICovCiAKQEAgLTEyNywyNyArMTMxLDI3IEBAIHZnYV90ZXh0X2J1 ZmZlcjoKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHByb2diaXRzCiAKIGJh ZF9jcHU6Ci0gICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9jcHVfbXNnKSksJWVzaSAj IEVycm9yIG1lc3NhZ2UKKyAgICAgICAgYWRkICAgICAkc3ltX3BoeXMoLkxiYWRfY3B1X21zZyks JWVzaSAgICMgRXJyb3IgbWVzc2FnZQogICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211 bHRpYm9vdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbXNn KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19zdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3QpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbnN0 KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19paDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uaWgpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmlo KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiAuTG1i Ml9ub19iczoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNp ICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9sZHJfbmJz KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAg ICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBqbXAgICAgIC5M c2VuZF9jaHIKIC5MbWIyX2VmaV9pYV8zMjoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5M YmFkX2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1f cGh5cyguTGJhZF9lZmlfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAg ICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgog ICAgICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKIC5MZ2V0X3Z0YjoKLSAgICAgICAgbW92ICAgICBz eW1fcGh5cyh2Z2FfdGV4dF9idWZmZXIpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1fZXNpKHZn YV90ZXh0X2J1ZmZlciksJWVkaQogLkxzZW5kX2NocjoKICAgICAgICAgbW92ICAgICAoJWVzaSks JWJsCiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBz ZW50aW5lbApAQCAtMTc2LDYgKzE4MCw5IEBAIF9fZWZpNjRfc3RhcnQ6CiAgICAgICAgIC8qIFZH QSBpcyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCiAgICAgICAgIG1vdmwgICAk MCx2Z2FfdGV4dF9idWZmZXIoJXJpcCkKIAorICAgICAgICAvKiBMb2FkIFhlbiBpbWFnZSBsb2Fk IGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbGVhICAgICBfX2ltYWdlX2Jhc2VfXyglcmlwKSwl cjE1ZAorCiAgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIuICovCiAg ICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CiAgICAgICAg IGplICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bwpAQCAtMzAwLDYgKzMwNyw5IEBAIHJ1bl9i czoKIAogICAgICAgICBwb3AgICAgICVyYXgKIAorICAgICAgICAvKiBTdG9yZSBYZW4gaW1hZ2Ug bG9hZCBiYXNlIGFkZHJlc3MgaW4gcGxhY2UgYWNjZXNzaWJsZSBmb3IgMzItYml0IGNvZGUuICov CisgICAgICAgIG1vdiAgICAgJXIxNWQsJWVzaQorCiAgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBv bGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwogICAgICAg ICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJWVkaQogCkBAIC0zMDcsOSArMzE3LDEx IEBAIHg4Nl8zMl9zd2l0Y2g6CiAgICAgICAgIGNsaQogCiAgICAgICAgIC8qIEluaXRpYWxpemUg R0RUUi4gKi8KKyAgICAgICAgYWRkICAgICAlZXNpLGdkdF9ib290X2Jhc2UoJXJpcCkKICAgICAg ICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQogCiAgICAgICAgIC8qIFJlbG9hZCBjb2Rl IHNlbGVjdG9yLiAqLworICAgICAgICBhZGQgICAgICVlc2ksY3MzMl9zd2l0Y2hfYWRkciglcmlw KQogICAgICAgICBsam1wbCAgICpjczMyX3N3aXRjaF9hZGRyKCVyaXApCiAKICAgICAgICAgLmNv ZGUzMgpAQCAtMzM5LDEyICszNTEsOCBAQCBfX3N0YXJ0OgogICAgICAgICBjbGQKICAgICAgICAg Y2xpCiAKLSAgICAgICAgLyogSW5pdGlhbGlzZSBHRFQgYW5kIGJhc2ljIGRhdGEgc2VnbWVudHMu ICovCi0gICAgICAgIGxnZHQgICAgJWNzOnN5bV9waHlzKGdkdF9ib290X2Rlc2NyKQotICAgICAg ICBtb3YgICAgICRCT09UX0RTLCVlY3gKLSAgICAgICAgbW92ICAgICAlZWN4LCVkcwotICAgICAg ICBtb3YgICAgICVlY3gsJWVzCi0gICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAgICAgLyog TG9hZCBkZWZhdWx0IFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbW92 ICAgICAkc3ltX3BoeXMoX19pbWFnZV9iYXNlX18pLCVlc2kKIAogICAgICAgICAvKiBCb290bG9h ZGVycyBtYXkgc2V0IG11bHRpYm9vdHsxLDJ9Lm1lbV9sb3dlciB0byBhIG5vbnplcm8gdmFsdWUu ICovCiAgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CkBAIC00MDEsNiArNDA5LDI1IEBAIF9fc3Rh cnQ6CiAgICAgICAgIGptcCAgICAgLkxtYjJfdHNpemUKIAogdHJhbXBvbGluZV9iaW9zX3NldHVw OgorICAgICAgICAvKgorICAgICAgICAgKiBDYWxsZWQgb24gbGVnYWN5IEJJT1MgcGxhdGZvcm1z IG9ubHkuCisgICAgICAgICAqCisgICAgICAgICAqIEluaXRpYWxpemUgR0RUUiBhbmQgYmFzaWMg ZGF0YSBzZWdtZW50cy4KKyAgICAgICAgICovCisgICAgICAgIGFkZCAgICAgJWVzaSxzeW1fZXNp KGdkdF9ib290X2Jhc2UpCisgICAgICAgIGxnZHQgICAgc3ltX2VzaShnZHRfYm9vdF9kZXNjcikK KworICAgICAgICBtb3YgICAgICRCT09UX0RTLCVlY3gKKyAgICAgICAgbW92ICAgICAlZWN4LCVk cworICAgICAgICBtb3YgICAgICVlY3gsJWVzCisgICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAg ICAgICAgLyogJWVzcCBpcyBpbml0aWFsaXplZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2Fk IG51bGwgZGVzY3JpcHRvciB0byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAg IHhvciAgICAgJWVjeCwlZWN4CisgICAgICAgIG1vdiAgICAgJWVjeCwlZnMKKyAgICAgICAgbW92 ICAgICAlZWN4LCVncworCiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRr IGJlbG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVC REEgc2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2Fu aXR5IGNoZWNrIChoaWdoKSAqLwpAQCAtNDI4LDMyICs0NTUsNjQgQEAgdHJhbXBvbGluZV9iaW9z X3NldHVwOgogICAgICAgICB4b3IgICAgICVjbCwgJWNsCiAKIHRyYW1wb2xpbmVfc2V0dXA6Cisg ICAgICAgIC8qCisgICAgICAgICAqIENhbGxlZCBvbiBsZWdhY3kgQklPUyBhbmQgRUZJIHBsYXRm b3Jtcy4KKyAgICAgICAgICoKKyAgICAgICAgICogSW5pdGlhbGl6ZSAwLTE1IGJpdHMgb2YgQk9P VF9GUyBzZWdtZW50IGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAg ICAgbW92ICAgICAlc2ksQk9PVF9GUysyK3N5bV9lc2kodHJhbXBvbGluZV9nZHQpCisKKyAgICAg ICAgLyogSW5pdGlhbGl6ZSAxNi0yMyBiaXRzIG9mIEJPT1RfRlMgc2VnbWVudCBkZXNjcmlwdG9y IGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgc2hsZCAgICAkMTYsJWVzaSwlZWR4CisgICAgICAg IG1vdiAgICAgJWRsLEJPT1RfRlMrNCtzeW1fZXNpKHRyYW1wb2xpbmVfZ2R0KQorCisgICAgICAg IC8qIEluaXRpYWxpemUgMjQtMzEgYml0cyBvZiBCT09UX0ZTIHNlZ21lbnQgZGVzY3JpcHRvciBi YXNlIGFkZHJlc3MuICovCisgICAgICAgIG1vdiAgICAgJWRoLEJPT1RfRlMrNytzeW1fZXNpKHRy YW1wb2xpbmVfZ2R0KQorCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUgJWZzIGFu ZCBsYXRlciB1c2UgaXQgdG8gYWNjZXNzIFhlbiBkYXRhIGlmIHBvc3NpYmxlLgorICAgICAgICAg KiBBY2NvcmRpbmcgdG8gSW50ZWwgNjQgYW5kIElBLTMyIEFyY2hpdGVjdHVyZXMgU29mdHdhcmUg RGV2ZWxvcGVyJ3MKKyAgICAgICAgICogTWFudWFsIGl0IGlzIHNhZmUgdG8gZG8gdGhhdCB3aXRo b3V0IHJlbG9hZGluZyBHRFRSIGJlZm9yZS4KKyAgICAgICAgICovCisgICAgICAgIG1vdiAgICAg JEJPT1RfRlMsJWVkeAorICAgICAgICBtb3YgICAgICVlZHgsJWZzCisKICAgICAgICAgLyogU2F2 ZSB0cmFtcG9saW5lIGFkZHJlc3MgZm9yIGxhdGVyIHVzZS4gKi8KICAgICAgICAgc2hsICAgICAk NCwgJWVjeAotICAgICAgICBtb3YgICAgICVlY3gsc3ltX3BoeXModHJhbXBvbGluZV9waHlzKQor ICAgICAgICBtb3YgICAgICVlY3gsc3ltX2ZzKHRyYW1wb2xpbmVfcGh5cykKKworICAgICAgICAv KiBTYXZlIFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcyBmb3IgbGF0ZXIgdXNlLiAqLworICAg ICAgICBtb3YgICAgICVlc2ksc3ltX2ZzKHhlbl9waHlzX3N0YXJ0KQorICAgICAgICBtb3YgICAg ICVlc2ksc3ltX2ZzKHRyYW1wb2xpbmVfeGVuX3BoeXNfc3RhcnQpCisKKyAgICAgICAgLyogU2V0 dXAgc3RhY2suICVzcyB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4gKi8KKyAgICAgICAgbGVhICAg ICAxMDI0K3N5bV9lc2koY3B1MF9zdGFjayksJWVzcAogCiAgICAgICAgIC8qIFNhdmUgdGhlIE11 bHRpYm9vdCBpbmZvIHN0cnVjdCAoYWZ0ZXIgcmVsb2NhdGlvbikgZm9yIGxhdGVyIHVzZS4gKi8K LSAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoY3B1MF9zdGFjaykrMTAyNCwlZXNwCiAgICAgICAg IHB1c2ggICAgJWVjeCAgICAgICAgICAgICAgICAvKiBCb290IHRyYW1wb2xpbmUgYWRkcmVzcy4g Ki8KICAgICAgICAgcHVzaCAgICAlZWJ4ICAgICAgICAgICAgICAgIC8qIE11bHRpYm9vdCBpbmZv cm1hdGlvbiBhZGRyZXNzLiAqLwogICAgICAgICBwdXNoICAgICVlYXggICAgICAgICAgICAgICAg LyogTXVsdGlib290IG1hZ2ljLiAqLwogICAgICAgICBjYWxsICAgIHJlbG9jCi0gICAgICAgIG1v diAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQorICAgICAgICBtb3YgICAgICVlYXgs c3ltX2ZzKG11bHRpYm9vdF9wdHIpCiAKICAgICAgICAgLyoKICAgICAgICAgICogRG8gbm90IHpl cm8gQlNTIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLgogICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6 ZWQgZWFybGllci4KICAgICAgICAgICovCi0gICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tp cF9yZWFsbW9kZSkKKyAgICAgICAgY21wYiAgICAkMCxzeW1fZnMoc2tpcF9yZWFsbW9kZSkKICAg ICAgICAgam56ICAgICAxZgogCiAgICAgICAgIC8qIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBz dXJwcmlzZXMhKS4gKi8KICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3Nfc3RhcnQpLCVl ZGkKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19ic3NfZW5kKSwlZWN4CisgICAgICAgIHB1 c2ggICAgJWZzCisgICAgICAgIHBvcCAgICAgJWVzCiAgICAgICAgIHN1YiAgICAgJWVkaSwlZWN4 CiAgICAgICAgIHhvciAgICAgJWVheCwlZWF4CiAgICAgICAgIHNociAgICAgJDIsJWVjeAogICAg ICAgICByZXAgc3Rvc2wKKyAgICAgICAgcHVzaCAgICAlZHMKKyAgICAgICAgcG9wICAgICAlZXMK IAogMToKICAgICAgICAgLyogSW50ZXJyb2dhdGUgQ1BVIGV4dGVuZGVkIGZlYXR1cmVzIHZpYSBD UFVJRC4gKi8KQEAgLTQ2Nyw4ICs1MjYsOCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBq YmUgICAgIDFmCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDEsJWVheAogICAgICAgICBjcHVp ZAotMTogICAgICBtb3YgICAgICVlZHgsc3ltX3BoeXMoY3B1aWRfZXh0X2ZlYXR1cmVzKQotICAg ICAgICBtb3YgICAgICVlZHgsc3ltX3BoeXMoYm9vdF9jcHVfZGF0YSkrQ1BVSU5GT19GRUFUVVJF X09GRlNFVChYODZfRkVBVFVSRV9MTSkKKzE6ICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhjcHVp ZF9leHRfZmVhdHVyZXMpCisgICAgICAgIG1vdiAgICAgJWVkeCxzeW1fZnMoYm9vdF9jcHVfZGF0 YSkrQ1BVSU5GT19GRUFUVVJFX09GRlNFVChYODZfRkVBVFVSRV9MTSkKIAogICAgICAgICAvKiBD aGVjayBmb3IgYXZhaWxhYmlsaXR5IG9mIGxvbmcgbW9kZS4gKi8KICAgICAgICAgYnQgICAgICAk Y3B1ZmVhdF9iaXQoWDg2X0ZFQVRVUkVfTE0pLCVlZHgKQEAgLTQ3NiwxNSArNTM1LDUyIEBAIHRy YW1wb2xpbmVfc2V0dXA6CiAKICAgICAgICAgLyogU3Rhc2ggVFNDIHRvIGNhbGN1bGF0ZSBhIGdv b2QgYXBwcm94aW1hdGlvbiBvZiB0aW1lLXNpbmNlLWJvb3QgKi8KICAgICAgICAgcmR0c2MKLSAg ICAgICAgbW92ICAgICAlZWF4LHN5bV9waHlzKGJvb3RfdHNjX3N0YW1wKQotICAgICAgICBtb3Yg ICAgICVlZHgsc3ltX3BoeXMoYm9vdF90c2Nfc3RhbXArNCkKKyAgICAgICAgbW92ICAgICAlZWF4 LHN5bV9mcyhib290X3RzY19zdGFtcCkKKyAgICAgICAgbW92ICAgICAlZWR4LHN5bV9mcyhib290 X3RzY19zdGFtcCkrNAorCisgICAgICAgIC8qCisgICAgICAgICAqIFVwZGF0ZSBmcmFtZSBhZGRy ZXNzZXMgaW4gcGFnZSB0YWJsZXMgZXhjbHVkaW5nIGwyX2lkZW50bWFwCisgICAgICAgICAqIHdp dGhvdXQgaXRzIGZpcnN0IGVudHJ5IHdoaWNoIHBvaW50cyB0byBsMV9pZGVudG1hcC4KKyAgICAg ICAgICovCisgICAgICAgIG1vdiAgICAgJCgoX19wYWdlX3RhYmxlc19lbmQtX19wYWdlX3RhYmxl c19zdGFydCkvOCksJWVjeAorICAgICAgICBtb3YgICAgICQoKChsMl9pZGVudG1hcC1fX3BhZ2Vf dGFibGVzX3N0YXJ0KS84KSsxKSwlZWR4CisxOiAgICAgIGNtcCAgICAgJCgobDJfaWRlbnRtYXAr bDJfaWRlbnRtYXBfc2l6ZW9mLV9fcGFnZV90YWJsZXNfc3RhcnQpLzgpLCVlY3gKKyAgICAgICAg Y21vdmUgICAlZWR4LCVlY3gKKyAgICAgICAgdGVzdGwgICAkX1BBR0VfUFJFU0VOVCxzeW1fZnMo X19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4KQorICAgICAgICBqeiAgICAgIDJmCisgICAg ICAgIGFkZCAgICAgJWVzaSxzeW1fZnMoX19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4KQor MjogICAgICBsb29wICAgIDFiCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBMMiBib290LW1hcC9k aXJlY3QgbWFwIHBhZ2UgdGFibGUgZW50cmllcyAoMTZNQikuICovCisgICAgICAgIGxlYSAgICAg c3ltX2VzaShzdGFydCksJWVieAorICAgICAgICBsZWEgICAgICgxPDxMMl9QQUdFVEFCTEVfU0hJ RlQpKjcrKFBBR0VfSFlQRVJWSVNPUnxfUEFHRV9QU0UpKCVlYngpLCVlYXgKKyAgICAgICAgc2hy ICAgICAkKEwyX1BBR0VUQUJMRV9TSElGVC0zKSwlZWJ4CisgICAgICAgIG1vdiAgICAgJDgsJWVj eAorMTogICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwyX2Jvb3RtYXApLTgoJWVieCwlZWN4LDgp CisgICAgICAgIG1vdiAgICAgJWVheCxzeW1fZnMobDJfaWRlbnRtYXApLTgoJWVieCwlZWN4LDgp CisgICAgICAgIHN1YiAgICAgJCgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpLCVlYXgKKyAgICAgICAg bG9vcCAgICAxYgorCisgICAgICAgIC8qIEluaXRpYWxpemUgTDMgYm9vdC1tYXAgcGFnZSBkaXJl Y3RvcnkgZW50cnkuICovCisgICAgICAgIGxlYSAgICAgX19QQUdFX0hZUEVSVklTT1IrKEwyX1BB R0VUQUJMRV9FTlRSSUVTKjgpKjMrc3ltX2VzaShsMl9ib290bWFwKSwlZWF4CisgICAgICAgIG1v diAgICAgJDQsJWVjeAorMTogICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwzX2Jvb3RtYXApLTgo LCVlY3gsOCkKKyAgICAgICAgc3ViICAgICAkKEwyX1BBR0VUQUJMRV9FTlRSSUVTKjgpLCVlYXgK KyAgICAgICAgbG9vcCAgICAxYgorCisgICAgICAgIC8qCisgICAgICAgICAqIER1cmluZyBib290 LCBob29rIDRrQiBtYXBwaW5ncyBvZiBmaXJzdCAyTUIgb2YgbWVtb3J5IGludG8gTDIuCisgICAg ICAgICAqIFRoaXMgYXZvaWRzIG1peGluZyBjYWNoYWJpbGl0eSBmb3IgdGhlIGxlZ2FjeSBWR0Eg cmVnaW9uLgorICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX1BBR0VfSFlQRVJWSVNPUitz eW1fZXNpKGwxX2lkZW50bWFwKSwlZWRpCisgICAgICAgIG1vdiAgICAgJWVkaSxzeW1fZnMobDJf Ym9vdG1hcCkKIAogICAgICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byBib290c3RyYXAgdHJh bXBvbGluZS4gKi8KLSAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVl ZHgKKyAgICAgICAgbW92ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWR4CiAgICAgICAg IG1vdiAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKIDE6Ci0gICAg ICAgIG1vdiAgICAgKCVlZGkpLCVlYXgKLSAgICAgICAgYWRkICAgICAlZWR4LCglZWRpLCVlYXgp CisgICAgICAgIG1vdiAgICAgJWZzOiglZWRpKSwlZWF4CisgICAgICAgIGFkZCAgICAgJWVkeCwl ZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNtcCAgICAg JHN5bV9waHlzKF9fdHJhbXBvbGluZV9yZWxfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAgIDFi CkBAIC00OTMsMjggKzU4OSwyOSBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAg ICQ0LCVlZHgKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3NlZ19zdGFy dCksJWVkaQogMToKLSAgICAgICAgbW92ICAgICAoJWVkaSksJWVheAotICAgICAgICBtb3YgICAg ICVkeCwoJWVkaSwlZWF4KQorICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheAorICAgICAg ICBtb3YgICAgICVkeCwlZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAg ICAgICAgIGNtcCAgICAgJHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3RvcCksJWVkaQogICAg ICAgICBqYiAgICAgIDFiCiAKICAgICAgICAgLyogRG8gbm90IHBhcnNlIGNvbW1hbmQgbGluZSBv biBFRkkgcGxhdGZvcm0gaGVyZS4gKi8KLSAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhza2lw X3JlYWxtb2RlKQorICAgICAgICBjbXBiICAgICQwLHN5bV9mcyhza2lwX3JlYWxtb2RlKQogICAg ICAgICBqbnogICAgIDFmCiAKICAgICAgICAgLyogQmFpbCBpZiB0aGVyZSBpcyBubyBjb21tYW5k IGxpbmUgdG8gcGFyc2UuICovCi0gICAgICAgIG1vdiAgICAgc3ltX3BoeXMobXVsdGlib290X3B0 ciksJWVieAorICAgICAgICBtb3YgICAgIHN5bV9mcyhtdWx0aWJvb3RfcHRyKSwlZWJ4CiAgICAg ICAgIHRlc3RsICAgJE1CSV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCiAgICAgICAgIGp6ICAgICAg MWYKIAotICAgICAgICBwdXNobCAgICRzeW1fcGh5cyhlYXJseV9ib290X29wdHMpCisgICAgICAg IGxlYSAgICAgc3ltX2VzaShlYXJseV9ib290X29wdHMpLCVlYXgKKyAgICAgICAgcHVzaCAgICAl ZWF4CiAgICAgICAgIHB1c2hsICAgTUJfY21kbGluZSglZWJ4KQogICAgICAgICBjYWxsICAgIGNt ZGxpbmVfcGFyc2VfZWFybHkKIAogMToKICAgICAgICAgLyogU3dpdGNoIHRvIGxvdy1tZW1vcnkg c3RhY2suICAqLwotICAgICAgICBtb3YgICAgIHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cyksJWVk aQorICAgICAgICBtb3YgICAgIHN5bV9mcyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKICAgICAgICAg bGVhICAgICAweDEwMDAwKCVlZGkpLCVlc3AKICAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX2Jv b3RfY3B1X2VudHJ5LXRyYW1wb2xpbmVfc3RhcnQoJWVkaSksJWVheAogICAgICAgICBwdXNobCAg ICRCT09UX0NTMzIKQEAgLTUyMyw3ICs2MjAsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAg ICAvKiBDb3B5IGJvb3RzdHJhcCB0cmFtcG9saW5lIHRvIGxvdyBtZW1vcnksIGJlbG93IDFNQi4g Ki8KICAgICAgICAgbW92ICAgICAkc3ltX3BoeXModHJhbXBvbGluZV9zdGFydCksJWVzaQogICAg ICAgICBtb3YgICAgICQoKHRyYW1wb2xpbmVfZW5kIC0gdHJhbXBvbGluZV9zdGFydCkgLyA0KSwl ZWN4Ci0gICAgICAgIHJlcCBtb3ZzbAorICAgICAgICByZXAgbW92c2wgJWZzOiglZXNpKSwlZXM6 KCVlZGkpCiAKICAgICAgICAgLyogSnVtcCBpbnRvIHRoZSByZWxvY2F0ZWQgdHJhbXBvbGluZS4g Ki8KICAgICAgICAgbHJldApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvdHJhbXBvbGlu ZS5TIGIveGVuL2FyY2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TCmluZGV4IDI3MTVkMTcuLjY0Zjhl ZmQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUworKysgYi94ZW4v YXJjaC94ODYvYm9vdC90cmFtcG9saW5lLlMKQEAgLTU0LDYgKzU0LDExIEBAIHRyYW1wb2xpbmVf Z2R0OgogICAgICAgICAvKiAweDAwMjg6IHJlYWwtbW9kZSBkYXRhIEAgQk9PVF9UUkFNUE9MSU5F ICovCiAgICAgICAgIC5sb25nICAgMHgwMDAwZmZmZgogICAgICAgICAubG9uZyAgIDB4MDAwMDky MDAKKyAgICAgICAgLyoKKyAgICAgICAgICogMHgwMDMwOiByaW5nIDAgWGVuIGRhdGEsIDE2IE1p QiBzaXplLCBiYXNlCisgICAgICAgICAqIGFkZHJlc3MgaXMgY29tcHV0ZWQgZHVyaW5nIHJ1bnRp bWUuCisgICAgICAgICAqLworICAgICAgICAucXVhZCAgIDB4MDBjMDkyMDAwMDAwMGZmZgogCiAg ICAgICAgIC5wdXNoc2VjdGlvbiAudHJhbXBvbGluZV9yZWwsICJhIgogICAgICAgICAubG9uZyAg IHRyYW1wb2xpbmVfZ2R0ICsgQk9PVF9QU0VVRE9STV9DUyArIDIgLSAuCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYm9vdC94ODZfNjQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCmlu ZGV4IDc4OTAzNzQuLjczOTIwMDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82 NC5TCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCkBAIC04MSw3ICs4MSw2IEBAIEdM T0JBTChib290X2NwdV9jb21wYXRfZ2R0X3RhYmxlKQogICAgICAgICAucXVhZCAweDAwMDA5MTAw MDAwMDAwMDAgICAgIC8qIHBlci1DUFUgZW50cnkgKGxpbWl0ID09IGNwdSkgICAgICAqLwogICAg ICAgICAuYWxpZ24gUEFHRV9TSVpFLCAwCiAKLUdMT0JBTChfX3BhZ2VfdGFibGVzX3N0YXJ0KQog LyoKICAqIE1hcHBpbmcgb2YgZmlyc3QgMiBtZWdhYnl0ZXMgb2YgbWVtb3J5LiBUaGlzIGlzIG1h cHBlZCB3aXRoIDRrQiBtYXBwaW5ncwogICogdG8gYXZvaWQgdHlwZSBjb25mbGljdHMgd2l0aCBm aXhlZC1yYW5nZSBNVFJScyBjb3ZlcmluZyB0aGUgbG93ZXN0IG1lZ2FieXRlCkBAIC0xMDIsNiAr MTAxLDEzIEBAIGwxX2lkZW50bWFwOgogICAgICAgICAuc2l6ZSBsMV9pZGVudG1hcCwgLiAtIGwx X2lkZW50bWFwCiAKIC8qCisgKiBfX3BhZ2VfdGFibGVzX3N0YXJ0IGRvZXMgbm90IGNvdmVyIGwx X2lkZW50bWFwIGJlY2F1c2UgaXQgKGwxX2lkZW50bWFwKQorICogY29udGFpbnMgMS0xIG1hcHBp bmdzLiBUaGlzIG1lYW5zIHRoYXQgZnJhbWUgYWRkcmVzc2VzIG9mIHRoZXNlIG1hcHBpbmdzCisg KiBhcmUgc3RhdGljIGFuZCBzaG91bGQgbm90IGJlIHVwZGF0ZWQgZHVyaW5nIHJ1bnRpbWUuCisg Ki8KK0dMT0JBTChfX3BhZ2VfdGFibGVzX3N0YXJ0KQorCisvKgogICogU3BhY2UgZm9yIG1hcHBp bmcgdGhlIGZpcnN0IDRHQiBvZiBtZW1vcnksIHdpdGggdGhlIGZpcnN0IDE2IG1lZ2FieXRlcwog ICogYWN0dWFseSBtYXBwZWQgKG1vc3RseSB1c2luZyBzdXBlcnBhZ2VzKS4gIFVzZXMgNHggNGsg cGFnZXMuCiAgKi8KQEAgLTE4NiwyMSArMTkyLDE0IEBAIEdMT0JBTChpZGxlX3BnX3RhYmxlKQog CiBHTE9CQUwoX19wYWdlX3RhYmxlc19lbmQpCiAKLS8qIEluaXQgcGFnZXRhYmxlcy4gIEVub3Vn aCBwYWdlIGRpcmVjdG9yaWVzIHRvIG1hcCBpbnRvIHRoZSBib3R0b20gMUdCLiAqLworLyogSW5p dCBwYWdldGFibGVzLiBFbm91Z2ggcGFnZSBkaXJlY3RvcmllcyB0byBtYXAgaW50byA0R0IuICov CiAgICAgICAgIC5zZWN0aW9uIC5pbml0LmRhdGEsICJhIiwgQHByb2diaXRzCiAgICAgICAgIC5h bGlnbiBQQUdFX1NJWkUsIDAKIAogR0xPQkFMKGwyX2Jvb3RtYXApCi0gICAgICAgIC5xdWFkIHN5 bV9waHlzKGwxX2lkZW50bWFwKSArIF9fUEFHRV9IWVBFUlZJU09SCi0gICAgICAgIGlkeCA9IDEK LSAgICAgICAgLnJlcHQgNwotICAgICAgICAucXVhZCAoaWR4IDw8IEwyX1BBR0VUQUJMRV9TSElG VCkgfCBfX1BBR0VfSFlQRVJWSVNPUiB8IF9QQUdFX1BTRQotICAgICAgICBpZHggPSBpZHggKyAx Ci0gICAgICAgIC5lbmRyCi0gICAgICAgIC5maWxsIEwyX1BBR0VUQUJMRV9FTlRSSUVTIC0gOCwg OCwgMAorICAgICAgICAuZmlsbCA0ICogTDJfUEFHRVRBQkxFX0VOVFJJRVMsIDgsIDAKICAgICAg ICAgLnNpemUgbDJfYm9vdG1hcCwgLiAtIGwyX2Jvb3RtYXAKIAogR0xPQkFMKGwzX2Jvb3RtYXAp Ci0gICAgICAgIC5xdWFkIHN5bV9waHlzKGwyX2Jvb3RtYXApICsgX19QQUdFX0hZUEVSVklTT1IK LSAgICAgICAgLmZpbGwgTDNfUEFHRVRBQkxFX0VOVFJJRVMgLSAxLCA4LCAwCisgICAgICAgIC5m aWxsIEwzX1BBR0VUQUJMRV9FTlRSSUVTLCA4LCAwCiAgICAgICAgIC5zaXplIGwzX2Jvb3RtYXAs IC4gLSBsM19ib290bWFwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9h cmNoL3g4Ni9zZXR1cC5jCmluZGV4IGY0MmJmN2IuLjQ2MzRjNjAgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0yODYsOSArMjg2 LDYgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBib290c3RyYXBfbWFwKGNvbnN0IG1vZHVsZV90ICpt b2QpCiAgICAgaWYgKCBzdGFydCA+PSBlbmQgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAg IGlmICggZW5kIDw9IEJPT1RTVFJBUF9NQVBfQkFTRSApCi0gICAgICAgIHJldHVybiAodm9pZCAq KSh1bnNpZ25lZCBsb25nKXN0YXJ0OwotCiAgICAgcmV0ID0gKHZvaWQgKikobWFwX2N1ciArICh1 bnNpZ25lZCBsb25nKShzdGFydCAmIG1hc2spKTsKICAgICBzdGFydCAmPSB+bWFzazsKICAgICBl bmQgPSAoZW5kICsgbWFzaykgJiB+bWFzazsKQEAgLTY3Miw2ICs2NjksOCBAQCB2b2lkIF9faW5p dCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgcHJpbnRr KCJDb21tYW5kIGxpbmU6ICVzXG4iLCBjbWRsaW5lKTsKIAorICAgIHByaW50aygiWGVuIGltYWdl IGxvYWQgYmFzZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5fcGh5c19zdGFydCk7CisKICAgICBwcmlu dGsoIlZpZGVvIGluZm9ybWF0aW9uOlxuIik7CiAKICAgICAvKiBQcmludCBWR0EgZGlzcGxheSBt b2RlIGluZm9ybWF0aW9uLiAqLwpAQCAtOTI5LDcgKzkyOCw3IEBAIHZvaWQgX19pbml0IG5vcmV0 dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgICAg IC8qIE5vdCBwcmVzZW50LCAxR0IgbWFwcGluZywgb3IgYWxyZWFkeSByZWxvY2F0ZWQ/ICovCiAg ICAgICAgICAgICAgICAgICAgIGlmICggIShsM2VfZ2V0X2ZsYWdzKCpwbDNlKSAmIF9QQUdFX1BS RVNFTlQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKGwzZV9nZXRfZmxhZ3MoKnBsM2Up ICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIChsM2VfZ2V0X3Bmbigq cGwzZSkgPiAweDEwMDApICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9wZm4o KnBsM2UpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAgICAgICAgICAgICAgICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgKnBsM2UgPSBsM2VfZnJvbV9pbnRw dGUobDNlX2dldF9pbnRwdGUoKnBsM2UpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgeGVuX3BoeXNfc3RhcnQpOwpAQCAtOTM5LDcgKzkzOCw3IEBAIHZvaWQg X19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBOb3QgcHJlc2VudCwgUFNFLCBvciBhbHJlYWR5IHJlbG9jYXRl ZD8gKi8KICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggIShsMmVfZ2V0X2ZsYWdzKCpwbDJl KSAmIF9QQUdFX1BSRVNFTlQpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsMmVf Z2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BTRSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGwyZV9nZXRfcGZuKCpwbDJlKSA+IDB4MTAwMCkgKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQp KSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg ICAgICAgICAgICAqcGwyZSA9IGwyZV9mcm9tX2ludHB0ZShsMmVfZ2V0X2ludHB0ZSgqcGwyZSkg KwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGVuX3Bo eXNfc3RhcnQpOwpAQCAtOTYyLDcgKzk2MSw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3Rh cnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IGZsYWdzOwogCi0gICAgICAgICAgICAgICAgaWYgKCAhKGwyZV9nZXRf ZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgKQorICAgICAgICAgICAgICAgIGlmICggIShs MmVfZ2V0X2ZsYWdzKCpwbDJlKSAmIF9QQUdFX1BSRVNFTlQpIHx8CisgICAgICAgICAgICAgICAg ICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gUEZOX0RPV04oeGVuX3BoeXNfc3RhcnQpKSApCiAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhdXNp bmdfMk1fbWFwcGluZygpICkKQEAgLTEwMTYsNiArMTAxNiw4IEBAIHZvaWQgX19pbml0IG5vcmV0 dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAgICAgICAgOiAi bWVtb3J5IiApOwogCiAgICAgICAgICAgICBib290c3RyYXBfbWFwKE5VTEwpOworCisgICAgICAg ICAgICBwcmludGsoIk5ldyBYZW4gaW1hZ2UgYmFzZSBhZGRyZXNzOiAlI2x4XG4iLCB4ZW5fcGh5 c19zdGFydCk7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBJcyB0aGUgcmVnaW9uIHN1aXRhYmxl IGZvciByZWxvY2F0aW5nIHRoZSBtdWx0aWJvb3QgbW9kdWxlcz8gKi8KZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNt LW9mZnNldHMuYwppbmRleCAyYTIyNjU5Li41ZDdhOGU1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zm c2V0cy5jCkBAIC0xNzksNSArMTc5LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZT RVQoTUIyX2VmaTY0X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsKICAg ICBCTEFOSygpOwogCisgICAgREVGSU5FKGwyX2lkZW50bWFwX3NpemVvZiwgc2l6ZW9mKGwyX2lk ZW50bWFwKSk7CisgICAgQkxBTksoKTsKKwogICAgIE9GRlNFVChET01BSU5fdm1fYXNzaXN0LCBz dHJ1Y3QgZG9tYWluLCB2bV9hc3Npc3QpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wYWdlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBhZjdkM2U4Li5h NTRmZGQxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3BhZ2UuaApAQCAtMjg4LDcgKzI4OCw3IEBAIGV4dGVybiByb290X3Bn ZW50cnlfdCBpZGxlX3BnX3RhYmxlW1JPT1RfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwy X3BnZW50cnlfdCAgKmNvbXBhdF9pZGxlX3BnX3RhYmxlX2wyOwogZXh0ZXJuIHVuc2lnbmVkIGlu dCAgIG0ycF9jb21wYXRfdnN0YXJ0OwogZXh0ZXJuIGwyX3BnZW50cnlfdCBsMl94ZW5tYXBbTDJf UEFHRVRBQkxFX0VOVFJJRVNdLAotICAgIGwyX2Jvb3RtYXBbTDJfUEFHRVRBQkxFX0VOVFJJRVNd OworICAgIGwyX2Jvb3RtYXBbNCpMMl9QQUdFVEFCTEVfRU5UUklFU107CiBleHRlcm4gbDNfcGdl bnRyeV90IGwzX2Jvb3RtYXBbTDNfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwyX3BnZW50 cnlfdCBsMl9pZGVudG1hcFs0KkwyX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMV9wZ2Vu dHJ5X3QgbDFfZml4bWFwW0wxX1BBR0VUQUJMRV9FTlRSSUVTXTsKLS0gCjEuNy4xMC40CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==