From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: Re: [PATCH v3 13/16 - RFC] x86: add multiboot2 protocol support for EFI platforms Date: Wed, 25 May 2016 23:02:59 +0200 Message-ID: <20160525210259.GP5490@olila.local.net-space.pl> References: <1460723596-13261-1-git-send-email-daniel.kiper@oracle.com> <1460723596-13261-14-git-send-email-daniel.kiper@oracle.com> <57458D5502000078000EE979@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b5fxa-0000cB-25 for xen-devel@lists.xenproject.org; Wed, 25 May 2016 21:03:22 +0000 Content-Disposition: inline In-Reply-To: <57458D5502000078000EE979@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Juergen Gross , stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, xen-devel@lists.xenproject.org, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBNYXkgMjUsIDIwMTYgYXQgMDM6MzI6MzdBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDE1LjA0LjE2IGF0IDE0OjMzLCA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ IHdyb3RlOgo+ID4gQEAgLTEwMCwxOSArMTA3LDI5IEBAIG11bHRpYm9vdDJfaGVhZGVyX2VuZDoK PiA+ICBnZHRfYm9vdF9kZXNjcjoKPiA+ICAgICAgICAgIC53b3JkICAgNio4LTEKPiA+ICAgICAg ICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCj4gPiArICAgICAgICAubG9uZyAg IDAgLyogTmVlZGVkIGZvciA2NC1iaXQgbGdkdCAqLwo+ID4gKwo+ID4gK2NzMzJfc3dpdGNoX2Fk ZHI6Cj4gPiArICAgICAgICAubG9uZyAgIHN5bV9waHlzKGNzMzJfc3dpdGNoKQo+ID4gKyAgICAg ICAgLndvcmQgICBCT09UX0NTMzIKPiA+Cj4gPiAgLkxiYWRfY3B1X21zZzogLmFzY2l6ICJFUlI6 IE5vdCBhIDY0LWJpdCBDUFUhIgo+ID4gIC5MYmFkX2xkcl9tc2c6IC5hc2NpeiAiRVJSOiBOb3Qg YSBNdWx0aWJvb3QgYm9vdGxvYWRlciEiCj4gPiArLkxiYWRfbGRyX21iMjogLmFzY2l6ICJFUlI6 IE9uIEVGSSBwbGF0Zm9ybSB1c2UgbGF0ZXN0IE11bHRpYm9vdDIgY29tcGF0aWJsZSBib290bG9h ZGVyISIKPgo+IFdoYXQgaXMgImxhdGVzdCIgZ29pbmcgdG8gbWVhbiA1IHllYXJzIGZyb20gbm93 PwoKOi0pKSkgSSB3aWxsIHRyeSB0byBmaXggaXQuCgo+ID4gICAgICAgICAgLnNlY3Rpb24gLmlu aXQudGV4dCwgImF4IiwgQHByb2diaXRzCj4gPgo+ID4gIGJhZF9jcHU6Cj4gPiAgICAgICAgICBt b3YgICAgICQoc3ltX3BoeXMoLkxiYWRfY3B1X21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCj4g PiAtICAgICAgICBqbXAgICAgIHByaW50X2Vycgo+ID4gKyAgICAgICAgbW92ICAgICAkMHhCODAw MCwlZWRpICAgICAgICAgICAgICAgICAgICMgVkdBIGZyYW1lYnVmZmVyCj4gPiArICAgICAgICBq bXAgICAgIDFmCj4gPiAgbm90X211bHRpYm9vdDoKPiA+ICAgICAgICAgIG1vdiAgICAgJChzeW1f cGh5cyguTGJhZF9sZHJfbXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKPiA+IC1wcmludF9lcnI6 Cj4gPiAtICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1lYnVmZmVyCj4g PiArICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICAgICAgICAgICAgICAgICAgIyBWR0Eg ZnJhbWVidWZmZXIKPiA+ICsgICAgICAgIGptcCAgICAgMWYKPiA+ICttYjJfdG9vX29sZDoKPiA+ ICsgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbWIyKSksJWVzaSAjIEVycm9y IG1lc3NhZ2UKPiA+ICsgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAg ICAgICAjIE5vIFZHQSBmcmFtZWJ1ZmZlcgo+Cj4gTGVhdmluZyBhc2lkZSB0aGF0ICJmcmFtZWJ1 ZmZlciIgcmVhbGx5IGlzIGEgYmFkIHRlcm0gaGVyZSAod2UncmUKPiB0YWxraW5nIG9mIHRleHQg bW9kZSBvdXRwdXQgYWZ0ZXIgYWxsKSwgbGltaXRpbmcgdGhlIG91dHB1dCB0byBzZXJpYWwKClll cCwgYnV0IHRoZW4gd2Ugc2hvdWxkIGNoYW5nZSB0aGlzIGluIG90aGVyIHBsYWNlcyB0b28uIE1h eWJlIGluIHNlcGFyYXRlIHBhdGNoLgoKPiBpc24ndCBnb2luZyB0byBiZSB2ZXJ5IGhlbHBmdWwg aW4gdGhlIGZpZWxkLCBJJ20gYWZyYWlkLiBFdmVuIG1vcmUgc28KPiB0aGF0IHRoZXJlJ3Mgbm8g Z3VhcmFudGVlIGZvciBhIFVBUlQgdG8gYmUgYXQgcG9ydCAweDNmOC4gVGhhdCdzCgpSaWdodCBi dXQgd2UgZG8gbm90IGhhdmUgYmlnIGNob2ljZSBoZXJlIGF0IHZlcnkgZWFybHkgYm9vdCBzdGFn ZS4uLiA6LSgoKAoKPiBub3QgbXVjaCBvZiBhIHByb2JsZW0gZm9yIHRoZSBvdGhlciB0d28gbWVz c2FnZXMgYXMgcGVvcGxlIGFyZQo+IHVubGlrZWx5IHRvIHRyeSB0byBib290IFhlbiBvbiBhbiB1 bnN1aXRhYmxlIHN5c3RlbSwgYnV0IEkgdmlldyBpdAo+IGFzIHF1aXRlIHBvc3NpYmxlIGZvciBY ZW4gdG8gYmUgdHJpZWQgdG8gZ2V0IGJvb3RlZCB3aXRoIGFuCj4gdW5zdWl0YWJsZSBncnViMi4K Pgo+IElPVyAtIHRoaXMgbmVlZHMgYSBiZXR0ZXIgc29sdXRpb24sIHByZXN1bWFibHkgdXNpbmcg RUZJIGJvb3QKPiBzZXJ2aWNlIG91dHB1dCBmdW5jdGlvbnMuCgpObyB3YXksIGhlcmUgYm9vdCBz ZXJ2aWNlcyBhcmUgZGVhZC4gR1JVQjIgKG9yIG90aGVyIGxvYWRlcikKc2h1dGRvd24gdGhlbS4u LiA6LSgoKAoKPiA+IEBAIC0xMzAsNiArMTQ5LDEzMCBAQCBwcmludF9lcnI6Cj4gPiAgLkxoYWx0 OiBobHQKPiA+ICAgICAgICAgIGptcCAgICAgLkxoYWx0Cj4gPgo+ID4gKyAgICAgICAgLmNvZGU2 NAo+ID4gKwo+ID4gK19fZWZpNjRfc3RhcnQ6Cj4KPiBBcyBsb25nIGFzIHdlIGhhdmUgc3BsaXQg ZmlsZXMgdW5kZXIgYm9vdC8sIEkgdGhpbmsgSSdkIHByZWZlciA2NC1iaXQKPiBjb2RlIHRvIG9u bHkgZ28gaW50byB4ODZfNjQuUy4KPgo+ID4gKyAgICAgICAgY2xkCj4gPiArCj4gPiArICAgICAg ICAvKiBDaGVjayBmb3IgTXVsdGlib290MiBib290bG9hZGVyLiAqLwo+ID4gKyAgICAgICAgY21w ICAgICAkTVVMVElCT09UMl9CT09UTE9BREVSX01BR0lDLCVlYXgKPiA+ICsgICAgICAgIGplICAg ICAgZWZpX211bHRpYm9vdDJfcHJvdG8KPiA+ICsKPiA+ICsgICAgICAgIC8qIEp1bXAgdG8gbm90 X211bHRpYm9vdCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwo+ID4gKyAg ICAgICAgbGVhICAgICBub3RfbXVsdGlib290KCVyaXApLCVyZGkKPiA+ICsgICAgICAgIGptcCAg ICAgeDg2XzMyX3N3aXRjaAo+Cj4gV2hhdCBJJ3ZlIHNhaWQgYWJvdmUgd291bGQgYWxzbyBlbGlt aW5hdGUgdGhlIG5lZWQgdG8gc3dpdGNoIHRvCj4gMzItYml0IG1vZGUganVzdCBmb3IgZW1pdHRp bmcgYW4gZXJyb3IgbWVzc2FnZSBhbmQgaGFsdGluZyB0aGUKPiBzeXN0ZW0uCgpJdCBpcyBub3Qg cG9zc2libGUuIFdlIGp1c3Qga25vdyB0aGF0IHdlIHJ1biBvbiBFRkkgcGxhdGZvcm0gaGVyZS4K SG93ZXZlciwgd2UgYXJlIG5vdCBhYmxlIHRvIGdldCBFRkkgU3lzdGVtVGFibGUgcG9pbnRlci4K Cj4gPiArZWZpX211bHRpYm9vdDJfcHJvdG86Cj4KPiAuTGVmaV9tdWx0aWJvb3QyX3Byb3RvCgpP SyBpZiB5b3UgaW5zaXN0LiBIb3dldmVyLCBJIHRoaW5rIHRoYXQgd2UgYXJlIGxvb3NpbmcgaGVs cGZ1bApkZWJ1ZyBpbmZvcm1hdGlvbiB0aGlzIHdheS4KCj4gPiArICAgICAgICAvKgo+ID4gKyAg ICAgICAgICogTXVsdGlib290MiBpbmZvcm1hdGlvbiBhZGRyZXNzIGlzIDMyLWJpdCwKPiA+ICsg ICAgICAgICAqIHNvLCB6ZXJvIGhpZ2hlciBoYWxmIG9mICVyYnguCj4gPiArICAgICAgICAgKi8K PiA+ICsgICAgICAgIG1vdiAgICAgJWVieCwlZWJ4Cj4KPiBXYWl0LCBubyAtIHRoYXQncyBhIHBy b3RvY29sIGJ1ZyB0aGVuLiBXZSdyZSBiZWluZyBlbnRlcmVkIGluIDY0LWJpdAo+IG1vZGUgaGVy ZSwgc28gcmVnaXN0ZXJzIHNob3VsZCBiZSBpbiA2NC1iaXQgY2xlYW4gc3RhdGUuCgpZb3UgbWVh biBoaWdoZXIgaGFsZiBjbGVhcmVkLiBSaWdodD8gVGhpcyBpcyBub3QgZ3VhcmFudGVlZC4KUGxl YXNlIGNoZWNrIHRoaXM6IGh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9ncnViLWRl dmVsLzIwMTYtMDMvbXNnMDAzMDQuaHRtbAoKPiA+ICsgICAgICAgIC8qIFNraXAgTXVsdGlib290 MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLwo+ID4gKyAgICAgICAgbGVhICAgICAoTUIyX2Zp eGVkX3NpemVvZitNVUxUSUJPT1QyX1RBR19BTElHTi0xKSglcmJ4KSwlcmN4Cj4gPiArICAgICAg ICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVyY3gKPgo+IE9yIGlmIHRoZXJl IHJlYWxseSB3YXMgYSByZWFzb24gdG8gZG8gdGhlIGFib3ZlLCBhbmQgaWYgdGhlcmUgaXMgYQo+ IHJlYXNvbiBub3QgdG8gYXNzdW1lIHRoaXMgZGF0YSBpcyBsb2NhdGVkIGJlbG93IDRHYiwgdGhl bgo+IGNhbGN1bGF0aW9ucyBsaWtlIHRoaXMgY291bGQgYXZvaWQgdGhlIFJFWDY0IHByZWZpeCBi eSB1c2luZyAlZWN4LgoKSGVyZSB5b3Ugc2FpZCBzb21ldGhpbmcgZGlmZmVyZW50OgogIGh0dHA6 Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTUtMDMvbXNnMDM1NTcu aHRtbAoKU28/Cgo+ID4gKzA6Cj4gPiArICAgICAgICAvKiBHZXQgRUZJIFN5c3RlbVRhYmxlIGFk ZHJlc3MgZnJvbSBNdWx0aWJvb3QyIGluZm9ybWF0aW9uLiAqLwo+ID4gKyAgICAgICAgY21wbCAg ICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJjeCkKPiA+ICsgICAg ICAgIGpuZSAgICAgMWYKPiA+ICsKPiA+ICsgICAgICAgIG1vdiAgICAgTUIyX2VmaTY0X3N0KCVy Y3gpLCVyc2kKPiA+ICsKPiA+ICsgICAgICAgIC8qIERvIG5vdCBjbGVhciBCU1MgdHdpY2UgYW5k IGRvIG5vdCBnbyBpbnRvIHJlYWwgbW9kZS4gKi8KPiA+ICsgICAgICAgIG1vdmIgICAgJDEsc2tp cF9yZWFsbW9kZSglcmlwKQo+Cj4gSG93IGlzIHRoZSBzZXR0aW5nIG9mIHNraXBfcmVhbG1vZGUg cmVsYXRlZCB0byB0aGUgY2xlYXJpbmcgb2YgQlNTPwo+IE9oLCBJJ3ZlIGZvdW5kIHRoZSBjb25u ZWN0aW9uIGJlbG93IChhbGJlaXQgc2VlIHRoZXJlIGZvciBpdHMKPiB2YWxpZGl0eSksIGJ1dCBJ IHRoaW5rIG1lbnRpb25pbmcgdGhpcyBoZXJlIGlzIG1vcmUgY29uZnVzaW5nIHRoYW4KPiBjbGFy aWZ5aW5nLgoKSW4gZ2VuZXJhbCBJIGhhdmUgYSBwcm9ibGVtIHNraXBfcmVhbG1vZGUuIFRoZSBu YW1lIGl0c2VsZiBpcyBjb25mdXNpbmcKaGVyZSBhbmQgdGhlcmUuIFByb2JhYmx5IGl0IHNob3Vs ZCBiZSBjaGFuZ2VkLiBIb3dldmVyLCBJIGRvIG5vdCBoYXZlCmlkZWEgZm9yIGdvb2QgY29tcGFj dCBuYW1lIGRlc2NyaWJpbmcgYWxsIHNraXBfcmVhbG1vZGUgdXNhZ2VzLiBBbmQgSSBkbwpub3Qg dGhpbmsgdGhhdCB3ZSBzaG91bGQgYWRkIGFub3RoZXIgdmFyaWFibGUgd2hpY2ggd2lsbCBiZSB1 c2VkIGluIHNpbWlsYXIKd2F5IGJ1dCB3aXRoIGRpZmZlcmVudCBuYW1lIHRvIGNsYXJpZnkgc2l0 dWF0aW9uLgoKPiA+ICsgICAgICAgIGptcCAgICAgM2YKPiA+ICsKPiA+ICsxOgo+ID4gKyAgICAg ICAgLyogR2V0IEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1h dGlvbi4gKi8KPiA+ICsgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjRf SUgsTUIyX3RhZ190eXBlKCVyY3gpCj4gPiArICAgICAgICBqbmUgICAgIDJmCj4gPiArCj4gPiAr ICAgICAgICBtb3YgICAgIE1CMl9lZmk2NF9paCglcmN4KSwlcmRpCj4gPiArICAgICAgICBqbXAg ICAgIDNmCj4gPiArCj4gPiArMjoKPiA+ICsgICAgICAgIC8qIElzIGl0IHRoZSBlbmQgb2YgTXVs dGlib290MiBpbmZvcm1hdGlvbj8gKi8KPiA+ICsgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJf VEFHX1RZUEVfRU5ELE1CMl90YWdfdHlwZSglcmN4KQo+ID4gKyAgICAgICAgamUgICAgICBydW5f YnMKPiA+ICsKPiA+ICszOgo+ID4gKyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGlu Zm9ybWF0aW9uIHRhZy4gKi8KPiA+ICsgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVyY3gp LCVlY3gKPiA+ICsgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlcmN4 Cj4gPiArICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVyY3gKPiA+ ICsgICAgICAgIGptcCAgICAgMGIKPgo+IEF0IGxlYXN0IGRvd24gdG8gaGVyZSBpdCBsb29rcyBs aWtlIHRoaXMgd291bGQgYmV0dGVyIGxpdmUgaW4gYSBDIGhlbHBlcgo+IGZ1bmN0aW9uLiBEaWQg eW91IGNvbnNpZGVyIHRoaXM/CgpJIHdpbGwgdGhpbmsgYWJvdXQgaXQuCgo+ID4gK3J1bl9iczoK PiA+ICsgICAgICAgIHB1c2ggICAgJXJheAo+ID4gKyAgICAgICAgcHVzaCAgICAlcmRpCj4gPiAr Cj4gPiArICAgICAgICAvKgo+ID4gKyAgICAgICAgICogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5 IHN1cnByaXNlcyEpLgo+ID4gKyAgICAgICAgICogSXQgbXVzdCBiZSBkb25lIGVhcmxpZXIgdGhh biBpbiBCSU9TIGNhc2UKPiA+ICsgICAgICAgICAqIGJlY2F1c2UgZWZpX211bHRpYm9vdDIoKSB0 b3VjaGVzIGl0Lgo+ID4gKyAgICAgICAgICovCj4gPiArICAgICAgICBsZWEgICAgIF9fYnNzX3N0 YXJ0KCVyaXApLCVyZGkKPiA+ICsgICAgICAgIGxlYSAgICAgX19ic3NfZW5kKCVyaXApLCVyY3gK PiA+ICsgICAgICAgIHN1YiAgICAgJXJkaSwlcmN4Cj4gPiArICAgICAgICBzaHIgICAgICQzLCVy Y3gKPiA+ICsgICAgICAgIHhvciAgICAgJWVheCwlZWF4Cj4gPiArICAgICAgICByZXAgICAgIHN0 b3NxCj4KPiBQbGVhc2UgbGV0J3Mgbm90IHJlcGVhdCBwcmUtZXhpc3RpbmcgbWlzdGFrZXM6IFJF UCBpcyBub3QgYW4KPiBpbnN0cnVjdGlvbiwgYW5kIFNUT1NCIGlzIG5vdCBhbiBvcGVyYW5kLiBJ T1cgdGhlcmUgc2hvdWxkIGJlCj4ganVzdCBhIHNpbmdsZSBzcGFjZSBiZXR3ZWVuIHRoZSB0d28u CgpPSy4KClsuLi5dCgo+ID4gQEAgLTE3MCwxMiArMzEzLDE5IEBAIG11bHRpYm9vdDJfcHJvdG86 Cj4gPiAgICAgICAgICBqbmUgICAgIDFmCj4gPgo+ID4gICAgICAgICAgbW92ICAgICBNQjJfbWVt X2xvd2VyKCVlY3gpLCVlZHgKPiA+IC0gICAgICAgIGptcCAgICAgdHJhbXBvbGluZV9zZXR1cAo+ ID4gKyAgICAgICAgam1wICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKPiA+Cj4gPiAgMToKPiA+ ICsgICAgICAgIC8qIEVGSSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQgdmlhIGxlZ2FjeSBCSU9TIHBh dGguICovCj4gPiArICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTMyLE1C Ml90YWdfdHlwZSglZWN4KQo+ID4gKyAgICAgICAgamUgICAgICBtYjJfdG9vX29sZAo+ID4gKwo+ ID4gKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5 cGUoJWVjeCkKPiA+ICsgICAgICAgIGplICAgICAgbWIyX3Rvb19vbGQKPgo+IEFjY29yZGluZyB0 byB0aGUgY29tbWVudCB3ZSdyZSBvbiB0aGUgbGVnYWN5IEJJT1MgYm9vdCBwYXRoCj4gaGVyZSwg eWV0IGF0IG1iMl90b29fb2xkIHlvdSBhc3N1bWUgbm8gdGV4dCBtb2RlIFZHQS4gSS5lLiBJJ20K PiBub3cgZXZlbiBjb25mdXNlZCBhYm91dCB0aGUgb3V0cHV0IGhhbmRsaW5nIHRoZXJlLgoKSXQg aXMgY29ycmVjdC4gT2xkIEdSVUIyIChvciBvdGhlciBsZWdhY3kgbXVsdGlib290MiBjb21wYXRp YmxlIGJvb3QKbG9hZGVyKSB3aGljaCBydW5zIG9uIEVGSSBwbGF0Zm9ybSBhbmQgZG9lcyBub3Qg aGF2ZSBteSBmZWF0dXJlcyB3aWxsCmp1bXAgaW50byB0aGF0IHBhdGguIEFuZCB3ZSBkbyBub3Qg c3VwcG9ydCB0aGF0LCBzbywgd2Ugc2hvdWxkIGZhaWwKaW4gdGhlIGJlc3QgcG9zc2libGUgd2F5 IGhlcmUuCgpZb3VyIGNvbW1lbnQgc3VnZ2VzdCB0aGF0IGNvZGUgY29tbWVudCBzaG91bGQgYmUg aW1wcm92ZWQgYW5kCnBocmFzZWQgcHJlY2lzZWx5LiBJIHdpbGwgZG8gdGhhdC4KCj4gPiBAQCAt MjIxLDYgKzM3MiwxMyBAQCB0cmFtcG9saW5lX3NldHVwOgo+ID4gICAgICAgICAgYWRkICAgICAk MTIsJWVzcCAgICAgICAgICAgIC8qIFJlbW92ZSByZWxvYygpIGFyZ3MgZnJvbSBzdGFjay4gKi8K PiA+ICAgICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQo+ID4KPiA+ ICsgICAgICAgIC8qCj4gPiArICAgICAgICAgKiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRm b3JtIGhlcmUuCj4gPiArICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4KPiA+ ICsgICAgICAgICAqLwo+ID4gKyAgICAgICAgY21wYiAgICAkMSxzeW1fcGh5cyhza2lwX3JlYWxt b2RlKQo+ID4gKyAgICAgICAgamUgICAgICAxZgo+Cj4gU28gd2hhdCBpZiBza2lwX3JlYWxtb2Rl IGlzIHNldCBvbiBhIGxlZ2FjeSBCSU9TIHN5c3RlbSBiZWNhdXNlCj4gb2YgdGhlIGNvbW1hbmQg bGluZSBvcHRpb24gb3IgdGhlIHVzZSBvZiBUQk9PVD8KPgo+ID4gLS0tIGEveGVuL2FyY2gveDg2 L2VmaS9lZmktYm9vdC5oCj4gPiArKysgYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKPiA+ IEBAIC0yMjgsNiArMjI4LDkgQEAgc3RhdGljIHZvaWQgKl9faW5pdCBlZmlfYXJjaF9hbGxvY2F0 ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6ZSkKPiA+Cj4gPiAgc3RhdGljIHZvaWQgX19pbml0 IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKPiA+ICB7Cj4gPiArICAgIGlmICggIWVmaV9l bmFibGVkKEVGSV9MT0FERVIpICkKPiA+ICsgICAgICAgIHJldHVybjsKPiA+ICsKPiA+ICAgICAg aWYgKCAhdHJhbXBvbGluZV9waHlzICkKPgo+IFBsZWFzZSBjb25uZWN0IHRoZSB0d28gaWYoKS1z IC0gYWZhaXUgeW91IHJlYWxseSBvbmx5IGNhcmUgYWJvdXQgdGhlCj4gdHJhbXBvbGluZSBoYW5k bGluZyB0byBub3QgYmUgZG9uZS4gT3RoZXJ3aXNlIHRoZSBuZXcgY29uZGl0aW9uYWwKPiB3b3Vs ZCBwcm9iYWJseSByYXRoZXIgYmVsb25nIG9uIHRoZSAoYXJjaC1pbmRlcGVuZGVudCkgY2FsbCBz aXRlLgo+Cj4gPiArcGFkZHJfdCBfX2luaXQgZWZpX211bHRpYm9vdDIoRUZJX0hBTkRMRSBJbWFn ZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCj4gPiArewo+ID4gKyAgICBF RklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7Cj4gPiArICAgIFVJTlROIGNvbHMsIGdv cF9tb2RlID0gfjAsIHJvd3M7Cj4gPiArCj4gPiArICAgIHNldF9iaXQoRUZJX1BMQVRGT1JNLCAm ZWZpLmZsYWdzKTsKPgo+IF9fc2V0X2JpdCgpCj4KPiA+ICsgICAgZWZpX2luaXQoSW1hZ2VIYW5k bGUsIFN5c3RlbVRhYmxlKTsKPiA+ICsKPiA+ICsgICAgZWZpX2NvbnNvbGVfc2V0X21vZGUoKTsK PiA+ICsKPiA+ICsgICAgaWYgKCBTdGRPdXQtPlF1ZXJ5TW9kZShTdGRPdXQsIFN0ZE91dC0+TW9k ZS0+TW9kZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29scywgJnJvd3MpID09 IEVGSV9TVUNDRVNTICkKPiA+ICsgICAgICAgIGVmaV9hcmNoX2NvbnNvbGVfaW5pdChjb2xzLCBy b3dzKTsKPiA+ICsKPiA+ICsgICAgZ29wID0gZWZpX2dldF9nb3AoKTsKPiA+ICsKPiA+ICsgICAg aWYgKCBnb3AgKQo+ID4gKyAgICAgICAgZ29wX21vZGUgPSBlZmlfZmluZF9nb3BfbW9kZShnb3As IDAsIDAsIDApOwo+ID4gKwo+ID4gKyAgICBlZmlfYXJjaF9lZGQoKTsKPiA+ICsKPiA+ICsgICAg LyoKPiA+ICsgICAgICogZWZpX2FyY2hfY3B1KCkgaXMgbm90IG5lZWRlZCBoZXJlLiBib290X2Nw dV9kYXRhCj4gPiArICAgICAqIGlzIHNldCBsYXRlciBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFk LlMuCj4gPiArICAgICAqLwo+Cj4gVGhhdCdzIG5vdCBhIGdvb2QgZXhwbGFuYXRpb24uIElzIHRo ZXJlIGFueSBoYXJtIGluIGNhbGxpbmcgaXQ/IElmIG5vdCwKPiBJJ2Qgc3VnZ2VzdCBjYWxsaW5n IGl0IGhlcmUganVzdCB0byBhdm9pZCBtaXNzaW5nIGEgZGVwZW5kZW5jeSBvbiB3aGF0Cj4gaXQg ZG9lcyBpbiBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBjYWxsZWQgc3Vic2VxdWVudGx5LiBJZiB0aGVy ZSBpcywgdGhlCj4gcHJlY2lzZSBkZXRhaWxzIG9mIHRoYXQgaXMgd2hhdCB5b3Ugc2hvdWxkIHNh eSBoZXJlLgoKSXQgbG9va3MgdGhhdCBpdCBzaG91bGQgd29yay4gSG93ZXZlciwgcHJvYmFibHkg dGhlcmUgd2FzIGFuIHJlYXNvbiBmb3IKd2hpY2ggdGhpcyBjYWxsIHdhcyBkaXNhYmxlZC4gU28s IEkgd2lsbCByZWludmVzdGlnYXRlIHRoZSBpc3N1ZS4KCj4gPiArICAgIGVmaV90YWJsZXMoKTsK PiA+ICsgICAgc2V0dXBfZWZpX3BjaSgpOwo+ID4gKyAgICBlZmlfdmFyaWFibGVzKCk7Cj4gPiAr Cj4gPiArICAgIGlmICggZ29wICkKPiA+ICsgICAgICAgIGVmaV9zZXRfZ29wX21vZGUoZ29wLCBn b3BfbW9kZSk7Cj4gPiArCj4gPiArICAgIGVmaV9leGl0X2Jvb3QoSW1hZ2VIYW5kbGUsIFN5c3Rl bVRhYmxlKTsKPiA+ICsKPiA+ICsgICAgLyogUmV0dXJuIGhpZ2hlc3QgYXZhaWxhYmxlIG1lbW9y eSBhZGRyZXNzIGJlbG93IDEgTWlCLiAqLwo+ID4gKyAgICByZXR1cm4gY2ZnLmFkZHI7Cj4KPiBE aWRuJ3QgeW91IHNheSBvbiBzb21lIHN5c3RlbXMgYWxsIG9mIHRoZSBtZW1vcnkgYmVsb3cgNjQw ayBpcyBpbgo+IHVzZSBieSBib290L2xvYWRlciBjb2RlL2RhdGE/IElmIHNvLCB3aGF0IG1lYW5p bmcgaGFzIHRoZSB2YWx1ZQo+IHlvdSByZXR1cm4gaGVyZSAoSSBkb24ndCByZWNhbGwgdGhlIGNv bnN1bWVyIHNpZGUgc3BlY2lhbCBjYXNpbmcgYW55Cj4gZXJyb3IgdmFsdWUpPwoKSXQgaXMgdXN1 YWxseSBjb3JyZWN0IGJlY2F1c2UgYm9vdCBzZXJ2aWNlcyBhcmUgZGVhZCBoZXJlLiBIb3dldmVy LCBpZiBpdApkb2VzIG5vdCAoZS5nLiBzb21lYm9keSBjYWxsZWQgWGVuIHdpdGggbWFwYnMgYXJn dW1lbnQpIHRoZW4gd2Ugc2hvdWxkIGZhaWwKYmVjYXVzZSB0aGVyZSBpcyBubyBtZW1vcnkgZm9y IHRyYW1wb2xpbmUuCgo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKPiA+ICsrKyBi L3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCj4gPiBAQCAtMTMsNiArMTMsMTEgQEAgc3RydWN0IGVm aSBfX3JlYWRfbW9zdGx5IGVmaSA9IHsKPiA+ICAJLnNtYmlvczMgPSBFRklfSU5WQUxJRF9UQUJM RV9BRERSCj4gPiAgfTsKPiA+Cj4gPiArdm9pZCBfX2luaXQgZWZpX211bHRpYm9vdDIodm9pZCkK PiA+ICt7Cj4gPiArICAgIC8qIFRPRE86IEZhaWwgaWYgZW50ZXJlZCEgKi8KPiA+ICt9Cj4KPiBX aHkgbm90IGp1c3QgQlVHKCk/IFdoYXQgZXhhY3RseSB5b3UgZG8gaGVyZSBkb2Vzbid0IHNlZW0g dG8KPiBtYXR0ZXIsIGFzIHRoZSBzeW1ib2wgaXMgdW5yZWFjaGFibGUgaW4gdGhpcyBjYXNlIGFu eXdheSAoeW91Cj4gb25seSBuZWVkIGl0IHRvIHBsZWFzZSB0aGUgbGlua2VyKS4KCldlIHNob3Vs ZCBwcmludCBtZWFuaW5nZnVsIG1lc3NhZ2UgaGVyZSB1c2luZyBib290IHNlcnZpY2VzLgpUbyBk byB0aGF0IHdlIG5lZWQgYSBmZXcgbGluZSBvZiBhc3NlbWJseSBwcm9iYWJseS4gQW5kIEJVRygp CmlzIG5vdCBzb2x1dGlvbiBoZXJlLgoKPiA+IEBAIC03MjgsNyArNzI4LDExIEBAIHZvaWQgX19p bml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCj4gPiAgICAgICAg ICBsM19ib290bWFwW2wzX3RhYmxlX29mZnNldChCT09UU1RSQVBfTUFQX0JBU0UpXSA9Cj4gPiAg ICAgICAgICAgICAgbDNlX2Zyb21fcGFkZHIoX19wYShsMl9ib290bWFwKSwgX19QQUdFX0hZUEVS VklTT1IpOwo+ID4KPiA+IC0gICAgICAgIG1lbW1hcF90eXBlID0gbG9hZGVyOwo+ID4gKyAgICAg ICAgbWVtbWFwX3R5cGUgPSAiRUZJIjsKPiA+ICsgICAgfQo+ID4gKyAgICBlbHNlIGlmICggZWZp X2VuYWJsZWQoRUZJX1BMQVRGT1JNKSApCj4gPiArICAgIHsKPiA+ICsgICAgICAgIG1lbW1hcF90 eXBlID0gIkVGSSI7Cj4gPiAgICAgIH0KPgo+IFN0cmF5IGJyYWNlcy4KPgo+ID4gLS0tIGEveGVu L2FyY2gveDg2L3hlbi5sZHMuUwo+ID4gKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwo+ID4g QEAgLTE5Miw3ICsxOTIsNyBAQCBTRUNUSU9OUwo+ID4gICAgfSA6dGV4dAo+ID4KPiA+ICAgIC8q IEFsaWduIEJTUyB0byBzcGVlZHVwIGl0cyBpbml0aWFsaXphdGlvbi4gKi8KPiA+IC0gIC4gPSBB TElHTig0KTsKPiA+ICsgIC4gPSBBTElHTig4KTsKPiA+ICAgIC5ic3MgOiB7ICAgICAgICAgICAg ICAgICAgICAgLyogQlNTICovCj4gPiAgICAgICAgIC4gPSBBTElHTihTVEFDS19TSVpFKTsKPiA+ ICAgICAgICAgX19ic3Nfc3RhcnQgPSAuOwo+ID4gQEAgLTIwNyw3ICsyMDcsNyBAQCBTRUNUSU9O Uwo+ID4gICAgICAgICAqKC5ic3MucGVyY3B1LnJlYWRfbW9zdGx5KQo+ID4gICAgICAgICAuID0g QUxJR04oU01QX0NBQ0hFX0JZVEVTKTsKPiA+ICAgICAgICAgX19wZXJfY3B1X2RhdGFfZW5kID0g LjsKPiA+IC0gICAgICAgLiA9IEFMSUdOKDQpOwo+ID4gKyAgICAgICAuID0gQUxJR04oOCk7Cj4g PiAgICAgICAgIF9fYnNzX2VuZCA9IC47Cj4KPiBJcyB0aGF0IHJlYWxseSB3b3J0aCBpdD8gSS5l LiBpcyBnb2luZyBmcm9tIFNUT1NEIHRvIFNUT1NRIHJlYWxseSBhCj4gbWVhbmluZ2Z1bCB3aW4/ CgpQcm9iYWJseSB5ZXMgYnV0IEkgZG8gbm90IHRoaW5rIHRoYXQgYW55Ym9keSB3aWxsIGJlIHNl ZSBib290IHRpbWUKZGlmZmVyZW5jZS4gT24gdGhlIG90aGVyIGhhbmQgd2h5IG5vdCBkbyB0aGF0 PyBJdCBkb2VzIG5vdCBjb3N0IGEgbG90LgoKPiA+IEBAIC05MzYsNiArOTQ3LDcgQEAgZWZpX3N0 YXJ0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxl KQo+ID4KPiA+ICAjaWZuZGVmIENPTkZJR19BUk0gLyogRGlzYWJsZWQgdW50aWwgcnVudGltZSBz ZXJ2aWNlcyBpbXBsZW1lbnRlZC4gKi8KPiA+ICAgICAgc2V0X2JpdChFRklfUExBVEZPUk0sICZl ZmkuZmxhZ3MpOwo+ID4gKyAgICBzZXRfYml0KEVGSV9MT0FERVIsICZlZmkuZmxhZ3MpOwo+ID4g ICNlbmRpZgo+Cj4gU28gX25laXRoZXJfIG9mIHRoZSB0d28gYml0cyBnZXQgc2V0IGZvciBBUk0/ IEknbSBldmVuIG1vcmUgcHV6emxlZAo+IG5vdywgYW5kIGhlbmNlIHRoaW5rIGV2ZW4gbW9yZSB0 aGF0IHRoaXMgY2FuJ3QgYmUgZmluZSBncmFpbmVkIGVub3VnaC4KCkFzIEkgc2F3IGNvZGUgYXJv dW5kIG9sZCBlZmlfZW5hYmxlZCwgd2hpY2ggd2FzIHJlcGxhY2VkIGJ5IEVGSV9QTEFURk9STSwK d2FzIGNoYW5nZWQgcmVjZW50bHkuIFNvLCBJIG11c3QgcmV0aGluayB0aGlzIHN0dWZmIHRvby4K CkRhbmllbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK