From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Luis R. Rodriguez" Subject: Re: HVMLite / PVHv2 - using x86 EFI boot entry Date: Thu, 14 Apr 2016 20:40:48 +0200 Message-ID: <20160414184048.GM1990__8437.90481235391$1460659359$gmane$org@wotan.suse.de> References: <20160406024027.GX1990@wotan.suse.de> <5704D978.1050101@citrix.com> <20160408204032.GR1990@wotan.suse.de> <570B3228.90400@suse.com> <20160413182951.GW1990@wotan.suse.de> <20160413185629.GA7501@char.us.oracle.com> <20160413204055.GD1990@wotan.suse.de> <20160413210801.GC5962@char.us.oracle.com> <20160413222317.GH1990@wotan.suse.de> <20160414010131.GA21510@localhost.localdomain> 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 1aqmCC-0004cz-Fk for xen-devel@lists.xenproject.org; Thu, 14 Apr 2016 18:40:52 +0000 Content-Disposition: inline In-Reply-To: <20160414010131.GA21510@localhost.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: Matt Fleming , Michael Chang , linux-kernel@vger.kernel.org, Julien Grall , Jan Beulich , "H. Peter Anvin" , Daniel Kiper , x86@kernel.org, =?utf-8?Q?Vojt=C4=9Bch_Pavl=C3=ADk?= , Gary Lin , xen-devel@lists.xenproject.org, Jeffrey Cheung , Charles Arndol , Kees Cook , Stefano Stabellini , Josh Triplett , joeyli , Borislav Petkov , Boris Ostrovsky , Juergen Gross , Andrew Cooper , Jim Fehlig , Andy Lutomirski , "Luis R. Rodriguez" David Vrabel List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDk6MDE6MzJQTSAtMDQwMCwgS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIHdyb3RlOgo+IE9uIFRodSwgQXByIDE0LCAyMDE2IGF0IDEyOjIzOjE3QU0gKzAyMDAs IEx1aXMgUi4gUm9kcmlndWV6IHdyb3RlOgo+ID4gT24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDU6 MDg6MDFQTSAtMDQwMCwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ID4gPiBPbiBXZWQs IEFwciAxMywgMjAxNiBhdCAxMDo0MDo1NVBNICswMjAwLCBMdWlzIFIuIFJvZHJpZ3VleiB3cm90 ZToKPiA+ID4gPiBPbiBXZWQsIEFwciAxMywgMjAxNiBhdCAwMjo1NjoyOVBNIC0wNDAwLCBLb25y YWQgUnplc3p1dGVrIFdpbGsgd3JvdGU6Cj4gPiA+ID4gPiBPbiBXZWQsIEFwciAxMywgMjAxNiBh dCAwODoyOTo1MVBNICswMjAwLCBMdWlzIFIuIFJvZHJpZ3VleiB3cm90ZToKPiA+ID4gPiAKPiA+ ID4gPiBhbmQgd2UgYWxzbyB3YW50IHRvIGFkZHJlc3MgZGVhZCBjb2RlIGlzc3VlcyB3aGljaCBw dm9wcyBzaW1wbHkgZm9sZGVkCj4gPiA+ID4gdW5kZXIgdGhlIHJ1Zy4gVGhlIGRlYWQgY29kZSBj b25jZXJucyBtYXkgZXhpc3Qgc3RpbGwgZm9yIGh2bWxpdGUsIHNvCj4gPiA+ID4gdW5sZXNzIHNv bWVvbmUgaXMgd2lsbGluZyB0byBtYWtlIGEgYm9sZCBjbGFpbSB0aGVyZSBpcyBub25lLCBpdHMK PiA+ID4gPiBzb21ldGhpbmcgdG8gY29uc2lkZXIuCj4gPiA+IAo+ID4gPiBXaGF0IGlzIHRoaXMg ZGVhZCBjb2RlIHlvdSBzcGVhayBvZj8KPiA+IAo+ID4gS2FzYW4gaXMgZGVhZCBjb2RlIHRvIFhl bi4gSWYgeW91IGJvb3QgeDg2IFhlbiB3aXRoIEthc2FuIGVuYWJsZWQKPiAKPiBGb3IgWGVuIFBW IGd1ZXN0cywKClRoYXQncyByaWdodC4gRm9yIDUgeWVhcnMgdGhpcyB3aWxsIGJlIGEgYm9tYi4g VGhhdCB3ZW50IHVubm90aWNlZAphbmQgSSBmZWVsIEkgaGF2ZSB0byBwdWxsIGhhaXIgbm93IHRv IHRyeSB0byBnZXQgZm9sa3MgdG8gZml4IHRoaXMuCgpIb3cgbWFueSBvdGhlciBpc3N1ZXMgd2ls bCBnbyBpbiB3aGljaCB3aWxsIGV4cGxvZGUgZHVyaW5nIHRoaXMgNSB5ZWFyCnRpbWUgbGluZT8g SG93IGNhbiB3ZSBwcm9hY3RpdmVseSBhZGRyZXNzIGEgc29sdXRpb24gdG8gdGhpcyBub3cgc28g d2UKYXZvaWQgdGhpcyBpbiBmdXR1cmUgPwoKRG8geW91IGJlbGlldmUgbWUgbm93IGl0cyBhIHJl YWwgaXNzdWU/CgpGb3J0dW5hdGVseSBJIGhhdmUgYSBwcm9hY3RpdmUgc29sdXRpb24gZm9yIHB2 b3BzIG5vdyBpbiBteSBwaXBlbGluZSB0aGF0CnNob3VsZCBoZWxwIGF2b2lkIHVzIGhhdmluZyB0 byBibG93IG1vcmUgdGhpbmdzIHVwIG9uIFhlbiBidXQgYWxzbyB0aGF0IHNob3VsZApjYXVzZSBu byBoZWFkYWNoZXMgb24gYmVoYWxmIG9mIHg4NiBkZXZlbG9wZXJzLiBCdXQsIHJlYXNvbiBJIGhh dmUgYmVlbiBzbwplbmdhZ2VkIG9uIEhWTUxpdGUgZGVzaWduIHJldmlldyBpcyBJIHdhbnQgdG8g ZW5zdXJlIHdlIHRha2UgdGhlIGxlc3NvbnMKbGVhcm5lZCBmcm9tIHB2b3BzIGFuZCBhdm9pZCB0 aGlzIGZvciBhbiBhcmNoaXRlY3R1cmUgdGhhdCB3aWxsIGJlIGRlZi1mYWN0bwpYZW4gb24gTGlu dXggNSB5ZWFycyBmcm9tIG5vdy4KCk5vdCBicmluZ2luZyB0aGlzIHVwIG9yIGFkZHJlc3Npbmcg dGhpcyBub3cgZm9yIEhWTUxpdGUgLyBQVkgyIHdvdWxkIHNpbXBseSBiZQpzaWxseSwgYW5kIHNp bmNlIGl0IHdhc24ndCBhZGRyZXNzZWQgaW4gcHZvcHMgSSBvYnZpb3VzbHkgaGF2ZSB0byBlbnN1 cmUgSQpjb252aW5jZSBlbm91Z2ggcGVvcGxlIGl0IHdhcyBhIHJlYWwgaXNzdWUgYW5kIGVuc3Vy ZSB0aGF0IHdlIGhhdmUgZW5vdWdoCnNlbWFudGljcyBhdmFpbGFibGUgdG8gYWRkcmVzcyBpdC4K ClBhcnQgb2YgdGhlIHNlbWFudGljcyBxdWVzdGlvbiwgd2hpY2ggaGFzIG1hZGUgbXkgcXVlc3Qg aGFyZCwgd2FzIHRoZSB1c2Ugb2YKc2VtYW50aWNzIGZvciB2aXJ0dWFsaXphdGlvbiBmb3IgY29k ZSBvbiBlYXJseSBib290IGFuZCBsYXRlciBpbiBib290IGhhcyBiZWVuCnJhdGhlciBzbG9wcHks IHNvIHdlIGhhdmUgcmVjZW50bHkgbmVlZGVkIHRvIGFkZHJlc3Mgc29tZSBvZiB0aGVzZSBnYXBz LiBTb21lCm9mIHRoZXNlIGRpc2N1c3Npb25zIGhhdmUgaG93ZXZlciBiZWVuIHByb2R1Y3RpdmUs IGFzIEknbGwgZXhwbGFpbiB0byBHZW9yZ2UKc29vbiByZWdhcmRpbmcgaGlzIERUIHF1ZXN0aW9u cy4gIFRoZSBkaXNjdXNzaW9uIGlzIG5vdCBvdmVyIHRob3VnaCBhbmQgd2UgbmVlZAp0byBlbnN1 cmUgdGhhdCBpZiB3ZSBuZWVkIHNlbWFudGljcyBmb3IgSFZNTGl0ZSB3ZSdsbCBoYXZlIHRoZW0g YXZhaWxhYmxlIGluCipjbGVhbiogd2F5LiBPbmUgb2YgdGhlIHRoaW5ncyB3aGVyZSBlYXJseSBz ZW1hbnRpY3MgYW5kIGRlc2lnbiB0byBhZGRyZXNzCnRoZXNlIGlzc3VlIGhlbHAgaW4gYSBwcm9h Y3RpdmUgbWFubmVyIGlzIHRvIGFkZHJlc3MgYSBjbGVhbiBib290IGVudHJ5IC0tIGFuZAp0aGF0 J3MgYWxzbyB3aHkgSSd2ZSBiZWVuIHNvIHBlZGFudGljIG92ZXIgcmV2aWV3IG9mIHRoZSBuZXcg SFZNbGl0ZSBib290CmVudHJ5LgoKPiA+IFhlbiBleHBsb2Rlcy4gUXVpY2sgcXVlc3Rpb24sIHdp bGwgS2FzYW4gbm90IGV4cGxvZGUgd2l0aCBIVk1MaXRlID8KPiAKPiAuLiBidXQgZm9yIEhWTUxp dGUgb2YgWGVuIEhWTSBndWVzdCBLYXNhbiB3aWxsIHJ1bi4KCkFyZSB5b3Ugc3VyZT8gU2hvdWxk IHRoYXQgbWVhbiB0aGF0IFhlbiBIVk0gc2hvdWxkIGJlIGZpbmUgYXMgd2VsbC4gIERvZXMgdGhh dAp3b3JrPyBBcmUgd2Ugc3VyZT8KCj4gPiBNVFJSIHVzZWQgdG8gYmUgZGVhZCBjb2RlIGNvbmNl cm4gYnV0IHNpbmNlIHdlIGhhdmUgdmV0dGVkIG1vc3Qgb2YgdGhhdCBjb2RlCj4gPiBub3cgd2Ug YXJlIHByZXR0eSBjZXJ0YWluIHRoYXQgY29kZSBzaG91bGQgbmV2ZXIgcnVuIG5vdy4KPiA+IAo+ ID4gS0FTTFIgbWF5IGJlIC0tIG5vdCBzdXJlIGFzIEkgIGhhdmVuJ3QgdmV0dGVkIHRoYXQsIGJ1 dCBmcm9tCj4gPiB3aGF0IEkgaGF2ZSBsb29zZWx5IGhlYXJkIG1heWJlLgo+ID4gCj4gPiBWR0Eg Y29kZSB3aWxsIGJlIGRlYWQgY29kZSBmb3IgSFZNbGl0ZSBmb3Igc3VyZSBhcyB0aGUgZGVzaWdu IGRvYwo+ID4gc2F5cyBpdCB3aWxsIG5vdCBydW4gVkdBLCB0aGUgQUNQSSBmbGFnIHdpbGwgYmUg c2V0IGJ1dCB0aGUgY2hlY2sKPiA+IGZvciB0aGF0IGlzIG5vdCB5ZXQgb24gTGludXguIFRoYXQg bWVhbnMgdGhlIFZHQSBMaW51eCBjb2RlIHdpbGwKPiA+IGJlIHRoZXJlIGJ1dCB3ZSBoYXZlIG5v IHdheSB0byBlbnN1cmUgaXQgd2lsbCBub3QgcnVuIG5vciB0aGF0Cj4gPiBhbnl0aGluZyB3aWxs IG11Y2sgd2l0aCBpdC4KPiAKPiA8c2hydWdzPiBUaGUgd29yc3QgaXQgd2lsbCBkbyBpcyB0cnkg dG8gcmVhZCBub24tZXhpc3RlbnQgcmVnaXN0ZXJzLgoKUmVhbGx5ID8KCklzIHRoYXQgeW91ciBw b3NpdGlvbiBvbiBhbGwgb3RoZXIgcG9zc2libGUgZGVhZCBjb2RlIHRoYXQgbWF5IGhhdmUgYmVl bgpwb3NzaWJsZSBvbiBvbGQgWGVuIFBWIGd1ZXN0cyBhcyB3ZWxsID8KCkFzIEkgaGludGVkLCBh ZnRlciB0aGlua2luZyBhYm91dCB0aGlzIGZvciBhIHdoaWxlIEkgcmVhbGl6ZWQgdGhhdCBkZWFk IGNvZGUgaXMKbGlrZWx5IHByZXNlbnQgb24gYmFyZSBtZXRhbCBhcyB3ZWxsIGV2ZW4gd2l0aG91 dCB2aXJ0dWFsaXphdGlvbiwgc3BlY2lhbGx5IGlmCnlvdSBidWlsZCBsYXJnZSBzaW5nbGUga2Vy bmVscyB0byBzdXBwb3J0IGEgd2lkZSBhcnJheSBvZiBmZWF0dXJlcyB3aGljaCBvbmx5CmxhdGUg YXQgcnVuIHRpbWUgY2FuIGJlIGRldGVybWluZWQuIFZpcnR1YWxpemF0aW9uIGFuZCB0aGUgcHZv cHMgZGVzaWduIGp1c3QKbWFrZXMgdGhpcyBpc3N1ZSBtdWNoIG1vcmUgcHJvbWluZW50LiBJZiB0 aGVyZSBhcmUgb3RoZXIgYXJlYXMgb2YgY29kZSBleHBvc2VkCnRoYXQgYWN0dWFsbHkgbWF5IHJ1 biwgYnV0IHdlIGFyZSBub3Qgc3VyZSBtYXkgcnVuLCBJIGZpZ3VyZWQgc29tZSBvdGhlciBmb2xr cwp3aXRoIGEgYml0IG1vcmUgc2VjdXJpdHkgY29uc2NpZW5jZSBtaW5kcyBtaWdodCBldmVuIHNp bXBseSB0YWtlIHRoZSBwb3NpdGlvbgppdCBtYXkgYmUgYSBzZWN1cml0eSByaXNrIHRvIGxlYXZl IHRoYXQgY29kZSBleHBvc2VkLiBTbyB0byB0YWtlIGEgcG9zaXRpb24KdGhhdCAndGhlIHdvcnN0 IGl0IHdpbGwgZG8gaXMgdHJ5IHRvIHJlYWQgbm9uLWV4aXN0ZW50IHJlZ2lzdGVycycgLS0gc2Vl bXMKcmF0aGVyIHNob3J0c2lnaHRlZCBoZXJlLgoKQW55d2F5IGZvciBtb3JlIGRldGFpbHMgb24g dGhvdWdodHMgb24gdGhpcyByZWZlciB0byB0aGUgdGhpcyB3aWtpOgoKaHR0cDovL2tlcm5lbG5l d2JpZXMub3JnL0tlcm5lbFByb2plY3RzL2tlcm5lbC1zYW5kYm94aW5nCgpTaW5jZSB0aGlzIGlz IG5vdyBnZXR0aW5nIG9mZiB0b3BpYyBwbGVhc2Ugc2VuZCBtZSB5b3VyIGZlZWRiYWNrIG9uIGFu b3RoZXIKdGhyZWFkIGZvciB0aGUgbm9uLXZpcnR1YWxpemF0aW9uIGFzcGVjdHMgb2YgdGhpcyBp ZiB0aGF0IGludGVyZXN0cyB5b3UuIE15CnBvaW50IGhlcmUgd2FzIHJhdGhlciB0byBoaWdobGln aHQgdGhlIGltcG9ydGFuY2Ugb2YgY2xlYXIgc2VtYW50aWNzIGR1ZSB0bwp2aXJ0dWFsaXphdGlv biBpbiBsaWdodCBvZiBwb3NzaWJsZSBkZWFkIGNvZGUuCgo+IFRoZSBWR0EgY29kZSBzaG91bGQg YmUgYWJsZSB0byBoYW5kbGUgZmFpbHVyZXMgbGlrZSB0aGF0IGFuZAo+IG5vdCBpbml0aWFsaXpl IGl0c2VsZiB3aGVuIHRoZSBoYXJkd2FyZSBpcyBkZWFkIChvciBub24tZXhpc3RlbnQpLgoKVGhh dCdzIHJpZ2h0LCBpdHMgdGhyb3VnaCBBQ1BJX0ZBRFRfTk9fVkdBIGFuZCBzaW5jZSBpdHMgcGFy dCBvZiB0aGUgSFZNTGl0ZQpkZXNpZ24gZG9jIHdlIHdhbnQgSFZNbGl0ZSBkZXNpZ24gdG8gYWRk cmVzcyBBQ1BJX0ZBRFRfTk9fVkdBIHByb3Blcmx5LiAgSSd2ZQpwYXZlZCB0aGUgd2F5IGZvciB0 aGlzIHRvIGJlIGRvbmUgY2xlYW5seSBhbmQgZWFzaWx5IG5vdywgYnV0IHRoYXQgY29kZSBzaG91 bGQKYmUgaW4gcGxhY2UgYmVmb3JlIEhWTUxpdGUgY29kZSBnZXRzIG1lcmdlZC4KCkRvZXMgZG9t VSBmb3Igb2xkIFhlbiBQViBhbHNvIHNldCBBQ1BJX0ZBRFRfTk9fVkdBIGFzIHdlbGwgPyAgU2hv dWxkIGl0ID8KCj4gPiBUbyBiZSBjbGVhciAtLSBkZWFkIGNvZGUgY29uY2VybnMgc3RpbGwgZXhp c3QgZXZlbiB3aXRob3V0Cj4gPiB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbnMsIGl0cyBqdXN0IHRo YXQgd2l0aCB2aXJ0dWFsaXphdGlvbgo+ID4gdGhpcyBzdHVmZiBjb21lcyB1cCBtb3JlIGFuZCB0 aGVyZSBoYXMgYmVlbiBubyBwcm9hY3RpdmUKPiA+IG1lYXN1cmVzIHRvIGFkZHJlc3MgdGhpcy4g VGhlIHF1ZXN0aW9uIG9mIHNlbWFudGljcyBoZXJlIGlzCj4gPiB0byBzZWUgdG8gd2hhdCBleHRl bnQgd2UgbmVlZCBlYXJsaWVyIGJvb3QgY29kZSBhbm5vdGF0aW9ucwo+ID4gdG8gZW5zdXJlIHdl IGFkZHJlc3Mgc2VtYW50aWNzIHByb2FjdGl2ZWx5Lgo+IAo+IEkgdGhpbmsgd2hhdCB5b3UgbWVh biBieSBkZWFkIGNvZGUgaXMgYW5vdGhlciB3b3JkIGZvcgo+IGhhcmR3YXJlIHRlc3QgY292ZXJh Z2U/CgpObywgbm8sIGl0cyB2ZXJ5IGRpZmZlcmVudCBnaXZlbiB0aGF0IHdpdGggdmlydHVhbGl6 YXRpb24gdGhlIHNjb3BlIG9mIHBvc3NpYmxlCmRlYWQgY29kZSBpcyBzaWduaWZpY2FudCBhbmQg YXQgcnVuIHRpbWUgeW91IGFyZSBjZXJ0YWluIGEgaHVnZSBwb3J0aW9uIG9mIGNvZGUKc2hvdWxk ICpuZXZlciBldmVyKiBydW4uIFNvIGZvciBpbnN0YW5jZSB3ZSBrbm93IG9uY2Ugd2UgYm9vdCBi YXJlIG1ldGFsIG5vbmUKb2YgdGhlIFhlbiBzdHVmZiBzaG91bGQgZXZlciBydW4sIGxpa2V3aXNl IG9uIFhlbiBkb20wIHdlIGtub3cgbm9uZSBvZiB0aGUgS1ZNCi8gYmFyZS1tZXRhbCBvbmx5IHN0 dWZmIHNob3VsZCBuZXZlciBydW4sIHdoZW4gb24gWGVuIGRvbVUsIG5vbmUgb2YgdGhlIFhlbgpk b21VLW9ubHkgc3R1ZmYgc2hvdWxkIGV2ZXIgcnVuLgoKPiA+ID4gVGhlIGVudHJhY2UgcG9pbnQg aW4gTGludXggInByb3BlciIgaXMgc3RhcnR1cF8zMiBvciBzdGFydHVwXzY0IC0gdGhlIHNhbWUK PiA+ID4gcGF0aCB0aGF0IEVGSSB1c2VzLgo+ID4gPiAKPiA+ID4gSWYgeW91IHdlcmUgdG8gZHJh dyB0aGlzICh2ZXJ5IHNpbXBsaWZpZWQpOgo+ID4gPiAKPiA+ID4gYSktIEdSVUIyIC0tLS0tLS0t LS0tLS0tLS0tLS0tLVwgKGNyZWF0ZXMgYW4gYm9vdHBhcmFtIHN0cnVjdHVyZSkKPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICstLS0tIHN0YXJ0dXBfMzIgb3Igc3RhcnR1cF82NAo+ID4gPiBiKSBFRkkg LT4gTGludXggRUZJIHN0dWIgLS0tLS0tLS8KPiA+ID4gICAgICAgIChjcmVhdGVzIGJvb3RwYXJt KSAgICAgIC8KPiA+ID4gYykgR1JVQjItRUZJICAtPiBMaW51eCBFRkktLS0tLwo+ID4gPiAgICAg ICAgICAgICAgICBzdHViICAgICAgICAgLwo+ID4gPiBkKSBIVk1MaXRlIC0tLS0tLS0tLS0tLS0t LS0vCj4gPiA+ICAgICAgIChjcmVhdGVzIGJvb3RwYXJtKQo+ID4gCj4gPiBiKSBhbmQgZCkgbWln aHQgYmUgYWJsZSB0byBzaGFyZSBwYXRocyB0aGVyZS4uLgo+IAo+IE5vIGlkZWEuIFlvdSB3b3Vs ZCBoYXZlIHRvIGxvb2sgaW4gdGhlIGFzc2VtYmxlciBjb2RlIHRvCj4gZmlndXJlIHRoYXQgb3V0 LgoKQW5kIHRoYXQncyBhIHBhaW4sIEkgZ2V0IGl0LgoKSSBzcG90dGVkIG9uZSBwbGFjZSBhbHJl YWR5IC0tIHdpbGwgbm90ZSB0byBCb3Jpcy4gSSB0aGluayBNYXR0IG1heSBoYXZlIG1vcmUKaWRl YXMgOykKCj4gPiBkKSBzdGlsbCBoYXMgaXRzIG93biBlbnRyeSwgaXQgZG9lcyBtb3JlIHRoYW4g Y3JlYXRlIGJvb3QgcGFyYW1zLgo+IAo+IGQpIHB1cnBvc2UgaXMgdG8gY3JlYXRlIGJvb3QgcGFy YW1zLgoKT0sgZ29vZCB0byBrbm93IHRoYXQncyB0aGUgb25seSB0aGluZyB3ZSBhY2tub3dsZWRn ZSBpdCAqc2hvdWxkKiBkby4KCj4gIEl0IG1heSBkbyBtb3JlIGFzIG5vYm9keSBsaWtlcyB0byBt dWNrIGluIGFzc2VtYmxlciBhbmQgbWFrZSBib290cGFyYW1zIGZyb20KPiAgd2l0aGluIGFzc2Vt Ymxlci4KCk9LIC0tIGl0IGRvZXMgZG8gbW9yZSBhbmQgdGhhdCdzIHdoZXJlIHdlJ2QgbGlrZSB0 byBhdm9pZCBkdXBsaWNhdGlvbiBpZgpwb3NzaWJsZSBhbmQgeWV0LWFub3RoZXItZW50cnkgKFRN KS4KCj4gPiA+IChJIGFtIG5vdCBzdXJlIGFib3V0IHRoZSBjKSAtIEkgd291bGQgaGF2ZSB0byBs b29rIGluIHNvdXJjZSB0bwo+ID4gPiBiZSBzb3VyY2UpLiBUaGVyZSBpcyBhbHNvIExJTE8gaW4g dGhpcywgYnV0IEkgYW0gbm90IGV2ZW4gc3VyZSBpZgo+ID4gPiB3b3JrcyBhbnltb3JlLgo+ID4g PiAKPiA+ID4gCj4gPiA+IFdoYXQgeW91IGhhdmUgaXMgdGhhdCBldmVyeSBlbnRyeSBwb2ludCBj cmVhdGVzIHRoZSBib290cGFyYW1zCj4gPiA+IGFuZCBlbmRzIHVwIGNhbGxpbmcgc3RhcnR1cF9Y LiBUaGUgc3RhcnR1cF82NCB0aGVuIGhpdCB0aGUgcmVzdAo+ID4gPiBvZiB0aGUga2VybmVsLiBU aGUgc3RhcnRwX1ggY29kZSBpcyB0aGUgb25lIHRoYXQgd291bGQgc2V0dXAKPiA+ID4gdGhlIGJh c2ljIHBhZ2V0YWJsZXMsIHNlZ21lbnRzLCBldGMuCj4gPiAKPiA+IFN1cmUuLiBhIGZ1bGwgZGlh Z3JhbSBzaG91bGQgaW5jbHVkZSBib3RoIHNpZGVzIGFuZCBob3cgd2hlbiB1c2luZwo+ID4gYSBj dXN0b20gZW50cnkgb25lIHJ1bnMgdGhlIHJpc2sgb2Ygc2tpcHBpbmcgYSBsb3Qgb2YgY29kZSBz ZXR1cC4KPiAKPiBCdXQgaXQgZG9lcyBub3Qgc2tpcCBhIGxvdCBvZiBjb2RlIHNldHVwLiBJdCBz dGFydHMgZXhhY3RseQo+IGF0IHRoZSBzYW1lIGNvZGUgc3RhcnR1cCB0aGF0IF9hbGxfIGJvb3Rz dHJhcGluZyBjb2RlIHN0YXJ0IGF0LgoKSXRzIGEgZmFpciBwb2ludC4KCj4gPiBUaGVyZSBpcyB0 aGF0IGFuZCBhcyBvdGhlcnMgaGF2ZSBwb2ludGVkIG91dCBob3cgY2VydGFpbiBndWVzdHMgdHlw ZXMKPiA+IGFyZSBhc3N1bWVkIHRvIG5vdCBoYXZlIGNlcnRhaW4gcGVyaXBoZXJhbHMsIGFuZCB3 ZSBoYXZlIG5vIGlkZWEKPiA+IHRvIGVuc3VyZSBjZXJ0YWluIG9sZCBsZWdhY3kgY29kZSBtYXkg bm90IGV2ZXIgcnVuIG9yIGJlIGFjY2Vzc2VkCj4gPiBieSBkcml2ZXJzLgo+IAo+IE9rLCBidXQg dGhhdCBpcyBub3QgYXQgY29kZSBzZXR1cC4gVGhhdCBpcyBsYXRlciAtIHdoZW4gZGV2aWNlCj4g ZHJpdmVycyBhcmUgaW5pdGlhbGl6ZWQuIFRoaXMgbm8gZGlmZmVyZW50IHRoYW4gYm9vdGluZyBv bgo+IHNvbWUgaGFyZHdhcmUgd2l0aCBtaXNzaW5nIGZ1bmN0aW9uYWxpdHkuIEFDUEksIFBDSSBh bmQgUG5QCj4gUG5QIGFyZSBzZXQgdGhlcmUgdG8gaGVscCBPU2VzIGRpc2NvdmVyIHRoaXMuCgpU byBhIGNlcnRhaW4gZXh0ZW50IHRoaXMgaXMgdHJ1ZSwgYnV0IHRoZXJlIG1heSB0aGluZ3Mgd2hp Y2ggYXJlIG1pc3Npbmcgc3RpbGwuCgpXZSByZWFsbHkgaGF2ZSBubyBpZGVhIHdoYXQgdGhlIGZ1 bGwgbGlzdCBvZiB0aG9zZSB0aGluZ3MgYXJlLgoKSXQgbWF5IGJlIHRoYXQgdGhpbmdzIG1heSBo YXZlIGJlZW4gcnVubmluZyBmb3IgYWdlcyB3aXRob3V0IG5vdGljZSBvZiBhbiBpc3N1ZQpvciB0 aGF0IG9ubHkgdW5kZXIgY2VydGFpbiBzaXR1YXRpb25zIHdpbGwgY2VydGFpbiBpc3N1ZXMgb3Ig YnVncyB0cmlnZ2VyIGEKZmFpbHVyZS4gRm9yIGluc3RhbmNlLCBqdXN0IHllc3RlcmRheSBJIHdh cyBDYydkIG9uIGEgYnJhbmQtc3BhbmtpbmcgbmV3IGxlZ2FjeQpjb25mbGljdCBbMF0sIGNhdXNl ZCBieSB1cHN0cmVhbSBjb21taXQgOGMwNThiMGI5YzM0ZDhjICgieDg2L2lycTogUHJvYmUgZm9y ClBJQyBwcmVzZW5jZSBiZWZvcmUgYWxsb2NhdGluZyBkZXNjcyBmb3IgbGVnYWN5IElSUXMiKSBt ZXJnZWQgb24gdjQuNCB3aGVyZQpzb21lIG5ldyBjb2RlIHVzZWQgbnJfbGVnYWN5X2lycXMoKSAt LSBvbmUgcHJvcG9zZWQgc29sdXRpb24gc2VlbXMgdG8gYmUgdGhhdApmb3IgWGVuIGNvZGUgTlJf SVJRU19MRUdBQ1kgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBpcyBhcyBpdCBsYWNrcyBQQ0kgWzFd IGFuZAphbm90aGVyIHdhcyB0byBwZWcgdGhlIGxlZ2FjeSByZXF1aXJlbWVudHMgYXMgYSBxdWly ayBvbiB0aGUgbmV3IHg4NiBwbGF0Zm9ybQpsZWdhY3kgcXVpcmsgc3R1ZmYgWzJdLiBBcmUgb3Ro ZXIgdXNlcyBvZiBucl9sZWdhY3lfaXJxcygpIGNvcnJlY3QgPyBBcmUKd2Ugc3VyZSA/CgpbMF0g aHR0cDovL2xrbWwua2VybmVsLm9yZy9yLzU3MEY5MERGLjEwMjA1MDhAb3JhY2xlLmNvbQpbMV0g aHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTYvNC8xNC81MzIKWzJdIGh0dHA6Ly9sa21sLmtlcm5l bC5vcmcvci8xNDYwNTkyMjg2LTMwMC0xLWdpdC1zZW5kLWVtYWlsLW1jZ3JvZkBrZXJuZWwub3Jn Cgo+ID4gPiA+IEhvdyB3ZSBhZGRyZXNzIHNlbWFudGljcyB0aGVuIGlzICp2ZXJ5KiBpbXBvcnRh bnQgdG8gbWUuCj4gPiA+IAo+ID4gPiBXaGljaCBzZW1hbnRpY3M/IEhvdyB0aGUgQ1BVIGlzIGdv aW5nIHRvIGJlIGF0IHN0YXJ0dXBfWCA/IE9yCj4gPiA+IGhvdyB0aGUgQ1BVIGlzIGdvaW5nIHRv IGJlIHdoZW4gRUZJIGZpcm13YXJlIGludm9rZXMgdGhlIEVGSSBzdHViPwo+ID4gPiBPciB3aGVu IEdSVUIyIGxvYWRzIExpbnV4Pwo+ID4gCj4gPiBXaGF0IGh5cGVydmlzb3Iga2lja2VkIG1lIGFu ZCB3aGF0IGd1ZXN0IHR5cGUgSSBhbS4KPiAKPiBjcHVpZCBzb2Z0d2FyZSBmbGFncyBoYXZlIHRo YXQgLSBhbmQgdGhhdCBzZW1hbnRpY3MgaGFzIGJlZW4gCj4gdGhlcmUgZm9yIGVvbnMuCgpXZSBj YW5ub3QgdXNlIGNwdWlkIGVhcmx5IGluIGFzbSBjb2RlLCBJJ20gbG9va2luZyBmb3Igc29tZXRo aW5nIHdlCmNhbiBldmVuIHVzZSBvbiBhc20gZWFybHkgaW4gYm9vdCBjb2RlLCBvbiB4ODYgdGhl IGJlc3Qgb3B0aW9uIHdlCmhhdmUgaXMgdGhlIGJvb3RfcGFyYW1zLCBidXQgSSd2ZSBldmVuIGhh dmUgaGFkIGlzc3VlcyB3aXRoIHRoYXQKZWFybHkgaW4gY29kZSwgYXMgSSBjYW4gb25seSBhY2Nl c3MgaXQgYWZ0ZXIgbG9hZF9pZHQoKSB3aGVyZSBJCmRlc2NyaWJlZCBteSBlZmZvcnQgdG8gdW5p ZnkgWGVuIFBWIGFuZCB4ODZfNjQgaW5pdCBwYXRocyBbM10uCgpbM10gaHR0cDovL2xrbWwua2Vy bmVsLm9yZy9yL0NBQj1ORTZWVENSQ2F6Y05wQ2RKN3BOMWVEMz14X2ZjR09kSDM3TXpWcHhrS0VO NWVzd0BtYWlsLmdtYWlsLmNvbQoKPiA+IExldCBtZSBlbGFib3JhdGUgbW9yZSBiZWxvdy4KPiA+ IAo+ID4gPiBUaGF0ICh0aG9zZSBib290bG9hZGVycykgaXMgY2xlYXJseSBkZWZpbmVkLiBUaGUg VVJMIEkgcHJvdmlkZWQKPiA+ID4gbWVudGlvbnMgdGhlIEhWTUxpdGUgb25lLiBUaGUgRG9jdW1l bnRhdGlvbi94ODYvYm9vdC5jIG1lbnRpb25zCj4gPiA+IHdoYXQgdGhlIHNlbWFudGljcyBhcmUg dG8gZXhwZWN0ZWQgd2hlbiBwcm92aWRpbmcgYW4gYm9vdHN0cmFwCj4gPiA+ICh3aGljaCBpcyB3 aGF0IEhWTUxpdGVsIHN0dWIgY29kZSBpbiBMaW51eCB3b3VsZCB3cml0ZSBhZ2FpbnN0IC0KPiA+ ID4gYW5kIHdoYXQgRUZJIHN0dWIgY29kZSBoYWQgYmVlbiB3cml0dGVuIGFnYWluc3QgdG9vKS4K PiA+ID4gPiAKPiA+ID4gPiA+ID4gSSdsbCBlbGFib3JhdGUgb24gdGhpcyBidXQgZmlyc3QgbGV0 J3MgY2xhcmlmeSB3aHkgYSBuZXcgZW50cnkgaXMgdXNlZCBmb3IKPiA+ID4gPiA+ID4gSFZNbGl0 ZSB0byBzdGFydCBvZiB3aXRoOgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAxKSBYZW4gQUJJ IGhhcyBoaXN0b3JpY2FsbHkgbm90IHdhbnRlZCB0byBzZXQgdXAgdGhlIGJvb3QgcGFyYW1zIGZv ciBMaW51eAo+ID4gPiA+ID4gPiAgICAgIGd1ZXN0cywgaW5zdGVhZCBpdCBpbnNpc3RzIG9uIGxl dHRpbmcgdGhlIExpbnV4IGtlcm5lbCBYZW4gYm9vdCBzdHVicyBmaWxsCj4gPiA+ID4gPiA+ICAg ICAgdGhhdCBvdXQgZm9yIGl0LiBUaGlzIHN0aWNraW5nIHBvaW50IG1lYW5zIGl0IGhhcyBpbXBs aWNhdGVkIGEgYm9vdCBzdHViLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFdoaWNo IGlzIGIvYyBpdCBoYXMgdG8gYmUgT1MgYWdub3N0aWMuIEl0IGhhcyBub3RoaW5nIHRvIGRvICdu b3Qgd2FudGluZycuCj4gPiA+ID4gCj4gPiA+ID4gSXQgY2FuIHN0aWxsIGJlIE9TIGFnbm9zdGlj IGFuZCBwYXNzIG9uIHR5cGUgYW5kIGN1c3RvbSBkYXRhIHBvaW50ZXIuCj4gPiA+IAo+ID4gPiBT dXJlLiBJdCBoYXMgdGhhdCAoaXQgTVVTVCBvdGhlcndpc2UgaG93IGVsc2Ugd291bGQgeW91IHBh c3MgZGF0YSkuCj4gPiA+IEl0IGlzIGRvY3VtZW50ZWQgYXMgd2VsbCBodHRwOi8veGVuYml0cy54 ZW4ub3JnL2RvY3MvdW5zdGFibGUvaHlwZXJjYWxsL3g4Nl82NC9pbmNsdWRlLHB1YmxpYyx4ZW4u aC5odG1sI2luY29udGVudHNfc3RhcnRvZmRheQo+ID4gPiAoc2VlICIgU3RhcnQgb2YgZGF5IHN0 cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1ZXN0cyBpbiAlZWJ4LiIpCj4gPiAKPiA+IFRoZSBkZXNp Z24gZG9jIGJlZ3MgZm9yIGEgY3VzdG9tIE9TIGVudHJ5IHBvaW50IHRob3VnaC4KPiAKPiBUaGF0 IGlzIHdoYXQgdGhlIEVMRiBOb3RlIGhhcy4KClJpZ2h0LCBidXQgSSdtIHNheWluZyB0aGF0IGl0 cyByYXRoZXIgc2lsbHkgdG8gYmUgYWRkaW5nIGVudHJ5IHBvaW50cyBpZgphbGwgd2Ugd2FudCB0 aGUgY29kZSB0byBkbyBpcyBjb3B5IHRoZSBib290IHBhcmFtcyBmb3IgdXMuIFRoZSBkZXNpZ24K ZG9jIHJlcXVpcmVzIGEgbmV3IGVudHJ5LCBhbmQgbGlrZXdpc2UgeW91J2QgbmVlZCB5ZXQtYW5v dGhlci1lbnRyeSBpZgpIVk1MaXRlIGlzIHRocm93biBvdXQgdGhlIHdpbmRvdyBhbmQgY29tZSBi YWNrIDUgeWVhcnMgbGF0ZXIgYWZ0ZXIgbmV3CmhhcmR3YXJlIHNvbHV0aW9ucyBhcmUgaW4gcGxh Y2UgYW5kIG5lZWQgdG8gcmVkZXNpZ24gSFZNTGl0ZS4gS2luZCBvZgp3aGVyZSB3ZSBhcmUgd2l0 aCBQVkggdG9kYXkuIExpa2V3aXNlIGlmIG90aGVyIHBhcmF2aXJ0dWFsaXphdGlvbgpkZXZlbG9w ZXJzIHdhbnQgdG8gc3VwcG9ydCBMaW51eCBhbmQgd2FudCB0byBjb3B5IHlvdXIgc3RyYXRlZ3kg dGhleSdkCmFkZCB5ZXQtYW5vdGhlci1lbnRyeS1wb2ludCBhcyB3ZWxsLgoKVGhpcyBpcyBkdW1i LgoKPiA+IElmIHdlIGhhZCBhIHNpbmdsZSAndHlwZScgYW5kICdjdXN0b20gZGF0YScgcGFzc2Vk IHRvIHRoZSBrZXJuZWwgdGhhdAo+ID4gc2hvdWxkIHN1ZmZpY2UgZm9yIHRoZSBkZWZhdWx0IExp bnV4IGVudHJ5IHBvaW50IHRvIGp1c3QgcGl2b3Qgb2ZmCj4gPiBvZiB0aGF0IGFuZCBkbyB3aGF0 IGl0IG5lZWRzIHdpdGhvdXQgbW9yZSBlbnRyeSBwb2ludHMuIE9uY2UuCj4gCj4gQW5kIHdoYXQg YWJvdXQgcmFtZGlzaz8gV2hhdCBhYm91dCBtdWx0aXBsZSByYW1kaXNrcz8KPiBXaGF0IGFib3V0 IGNvbW1hbmQgbGluZT8gQWxsIG9mIHRoYXQgaXMgd2hhdCBib290cGFyYW1zCj4gdHJpZXMgdG8g dW5pZnkgb24gTGludXguIEJ1dCAnYm9vdHBhcmFtcycgaXMgdW5pcXVlIHRvIExpbnV4LAo+IGl0 IGRvZXMgbm90IGV4aXN0IG9uIEZyZWVCU0QuIEhlbmNlIHNvbWUgc3R1YiBjb2RlIHRvIHRyYW5z cGxhbnQKPiBPUy1hZ25vc3RpYyBzaW1wbGUgZGF0YSB0byBPUy1zcGVjaWZpYyBpcyBuZWNjZXNz YXJ5LgoKSWYgd2UgaGFkIGEgWGVuIEFCSSBvcHRpb24gd2hlcmUgKmFsbCogdGhhdCBJJ20gYXNr aW5nIGlzIHlvdSBwYXNzCmZpcnN0OgoKICBhKSBoeXBlcnZpc29yIHR5cGUKICBiKSBjdXN0b20g ZGF0YSBwb2ludGVyCgpXZSdkIGJlIGFibGUgdG8gYXZvaWQgYWRkaW5nICphbnkqIGVudHJ5IHBv aW50IGFuZCBqdXN0IGFkZHJlc3MKdGhlIHJlcXVpcmVtZW50cyBhcyBJIG5vdGVkIHdpdGggcHJl IC8gcG9zdCBzdHVicyBmb3IgdGhlIHR5cGUuClRoaXMgd291bGQgcmVxdWlyZSBhbiB4ODYgYm9v dCBwcm90b2NvbCBidW1wLCBidXQgYWxsIHRoZSBpc3N1ZXMKY3JlZXBpbmcgdXAgcmFuZG9tbHkg SSB0aGluayB0aGF0J3Mgd29ydGggcHV0dGluZyBvbiB0aGUgdGFibGUgbm93LgoKQW5kIG1heWJl IHdlIGRvbid0IHdhbnQgaXQgdG8gYmUgaHlwZXJ2aXNvciBzcGVjaWZpYywgcGVyaGFwcyB0aGVy ZSBhcmUgb3RoZXIKKm5lZWRzKiBmb3IgY3VzdG9tIHByZS1wb3N0IHN0YXJ0dXBfMzIoKS9zdGFy dHVwXzY0KCkgc3R1YnMuCgpUbyBhdm9pZCBleHRlbmRpbmcgYm9vdF9wYXJhbXMgZnVydGhlciBJ IGZpZ3VyZWQgcGVyaGFwcyB3ZSBjYW4gbG9vawphdCBFRkkgYXMgYW5vdGhlciBvcHRpb24gaW5z dGVhZC4gSWYgd2UgYXJlIGdvaW5nIHRvIGRyb3AgYWxsIGxlZ2FjeQpQViBzdXBwb3J0IGZyb20g dGhlIGtlcm5lbCAobm90IHRoZSBoeXBlcnZpc29yKSBhbmQgcmVxdWlyZSBoYXJkd2FyZQp2aXJ0 dWFsaXphdGlvbiA1IHllYXJzIGZyb20gbm93IG9uIHRoZSBMaW51eCBrZXJuZWwsIGl0IGRvZXNu J3Qgc2VlbQp0byBtZSBmYXIgZmV0Y2hlZCB0byBhdCB0aGUgdmVyeSBsZWFzdCBjb25zaWRlciB1 c2luZyBhbiBFRkkgZW50cnkKaW5zdGVhZCwgc3BlY2lhbGx5IHNpbmNlIGFsbCBpdCBkb2VzIGlz IHNldCBib290IHBhcmFtcyBhbmQgd2UgY2FuCm1ha2UgcmUtdXNlIHRoaXMgZm9yIEhWTUxpdGUg dG9vLgoKICBMdWlzCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=