From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [early RFC] ARM PCI Passthrough design document Date: Fri, 3 Feb 2017 00:44:52 +0100 Message-ID: <20170202234452.GN9606@toto> References: <56a2cd48-f7cf-25ca-2bfe-cabf02d34df3@linaro.org> <8ca91073-09e7-57ca-9063-b47e0aced39d@linaro.org> <20170131165310.GJ14990@toto> <8ed41863-e7de-e0da-b1d3-e41748245cf1@linaro.org> <20170131190643.GK14990@toto> <20170202153357.GA14990@toto> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cZR3g-0006KF-K6 for xen-devel@lists.xenproject.org; Thu, 02 Feb 2017 23:44:56 +0000 Received: by mail-lf0-f68.google.com with SMTP id v186so226138lfa.2 for ; Thu, 02 Feb 2017 15:44:54 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: "Edgar E. Iglesias" , Punit Agrawal , Wei Chen , Steve Capper , Andrew Cooper , Jiandi An , Julien Grall , alistair.francis@xilinx.com, Campbell Sean , xen-devel , "manish.jaggi@caviumnetworks.com" , Shanker Donthineni , Roger Pau =?iso-8859-1?Q?Monn=E9?= List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBGZWIgMDIsIDIwMTcgYXQgMDM6MTI6NTJQTSAtMDgwMCwgU3RlZmFubyBTdGFiZWxs aW5pIHdyb3RlOgo+IE9uIFRodSwgMiBGZWIgMjAxNywgRWRnYXIgRS4gSWdsZXNpYXMgd3JvdGU6 Cj4gPiBPbiBXZWQsIEZlYiAwMSwgMjAxNyBhdCAwNzowNDo0M1BNICswMDAwLCBKdWxpZW4gR3Jh bGwgd3JvdGU6Cj4gPiA+IEhpIEVkZ2FyLAo+ID4gPiAKPiA+ID4gT24gMzEvMDEvMjAxNyAxOTow NiwgRWRnYXIgRS4gSWdsZXNpYXMgd3JvdGU6Cj4gPiA+ID5PbiBUdWUsIEphbiAzMSwgMjAxNyBh dCAwNTowOTo1M1BNICswMDAwLCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gPiA+ID4+T24gMzEvMDEv MTcgMTY6NTMsIEVkZ2FyIEUuIElnbGVzaWFzIHdyb3RlOgo+ID4gPiA+Pj5PbiBXZWQsIEphbiAy NSwgMjAxNyBhdCAwNjo1MzoyMFBNICswMDAwLCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gPiA+ID4+ Pj5PbiAyNC8wMS8xNyAyMDowNywgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+ID4gPiA+Pj4+ Pk9uIFR1ZSwgMjQgSmFuIDIwMTcsIEp1bGllbiBHcmFsbCB3cm90ZToKPiA+ID4gPj4+PkZvciBn ZW5lcmljIGhvc3QgYnJpZGdlLCB0aGUgaW5pdGlhbGl6YXRpb24gaXMgaW5leGlzdGVudC4gSG93 ZXZlciBzb21lIGhvc3QKPiA+ID4gPj4+PmJyaWRnZSAoZS5nIHhnZW5lLCB4aWxpbngpIG1heSBy ZXF1aXJlIHNvbWUgc3BlY2lmaWMgc2V0dXAgYW5kIGFsc28KPiA+ID4gPj4+PmNvbmZpZ3VyaW5n IGNsb2Nrcy4gR2l2ZW4gdGhhdCBYZW4gb25seSByZXF1aXJlcyB0byBhY2Nlc3MgdGhlIGNvbmZp Z3VyYXRpb24KPiA+ID4gPj4+PnNwYWNlLCBJIHdhcyB0aGlua2luZyB0byBsZXQgRE9NMCBpbml0 aWFsaXphdGlvbiB0aGUgaG9zdCBicmlkZ2UuIFRoaXMgd291bGQKPiA+ID4gPj4+PmF2b2lkIHRv IGltcG9ydCBhIGxvdCBvZiBjb2RlIGluIFhlbiwgaG93ZXZlciB0aGlzIG1lYW5zIHRoYXQgd2Ug bmVlZCB0bwo+ID4gPiA+Pj4+a25vdyB3aGVuIHRoZSBob3N0IGJyaWRnZSBoYXMgYmVlbiBpbml0 aWFsaXplZCBiZWZvcmUgYWNjZXNzaW5nIHRoZQo+ID4gPiA+Pj4+Y29uZmlndXJhdGlvbiBzcGFj ZS4KPiA+ID4gPj4+Cj4gPiA+ID4+Pgo+ID4gPiA+Pj5ZZXMsIHRoYXQncyBjb3JyZWN0Lgo+ID4g PiA+Pj5UaGVyZSdzIGEgc2VxdWVuY2Ugb24gdGhlIFp5bnFNUCB0aGF0IGludm9sdmVzIGFzc2ln aW5nIEdpZ2FiaXQgVHJhbnNjZWl2ZXJzCj4gPiA+ID4+PnRvIFBDSSAoR1RzIGFyZSBzaGFyZWQg YW1vbmcgUENJZSwgVVNCLCBTQVRBIGFuZCB0aGUgRGlzcGxheSBQb3J0KSwKPiA+ID4gPj4+ZW5h YmxpbmcgY2xvY2tzIGFuZCBjb25maWd1cmluZyBhIGZldyByZWdpc3RlcnMgdG8gZW5hYmxlIEVD QU0gYW5kIE1TSS4KPiA+ID4gPj4+Cj4gPiA+ID4+PkknbSBub3Qgc3VyZSBpZiB0aGlzIGNvdWxk IGJlIGRvbmUgcHJpb3IgdG8gc3RhcnRpbmcgWGVuLiBQZXJoYXBzLgo+ID4gPiA+Pj5JZiBzbywg Ym9vdGxvYWRlcnMgd291bGQgaGF2ZSB0byBrbm93IGEgaGVhZCBvZiB0aW1lIHdoYXQgZGV2aWNl cwo+ID4gPiA+Pj50aGUgR1RzIGFyZSBzdXBwb3NlZCB0byBiZSBjb25maWd1cmVkIGZvci4KPiA+ ID4gPj4KPiA+ID4gPj5JJ3ZlIGdvdCBmdXJ0aGVyIHF1ZXN0aW9ucyByZWdhcmRpbmcgdGhlIEdp Z2FiaXQgVHJhbnNjZWl2ZXJzLiBZb3UgbWVudGlvbgo+ID4gPiA+PnRoZXkgYXJlIHNoYXJlZCwg ZG8geW91IG1lYW4gdGhhdCBtdWx0aXBsZSBkZXZpY2VzIGNhbiB1c2UgYSBHVCBhdCB0aGUgc2Ft ZQo+ID4gPiA+PnRpbWU/IE9yIHRoZSBzb2Z0d2FyZSBpcyBkZWNpZGluZyBhdCBzdGFydHVwIHdo aWNoIGRldmljZSB3aWxsIHVzZSBhIGdpdmVuCj4gPiA+ID4+R1Q/IElmIHNvLCBob3cgZG9lcyB0 aGUgc29mdHdhcmUgbWFrZSB0aGlzIGRlY2lzaW9uPwo+ID4gPiA+Cj4gPiA+ID5Tb2Z0d2FyZSB3 aWxsIGRlY2lkZSBhdCBzdGFydHVwLiBBRkFJSywgdGhlIGFsbG9jYXRpb24gaXMgbm9ybWFsbHkg ZG9uZQo+ID4gPiA+b25jZSBidXQgSSBndWVzcyB0aGF0IGluIHRoZW9yeSB5b3UgY291bGQgZGVz aWduIGJvYXJkcyB0aGF0IGNvdWxkIHN3aXRjaAo+ID4gPiA+YXQgcnVudGltZS4gSSdtIG5vdCBz dXJlIHdlIG5lZWQgdG8gd29ycnkgYWJvdXQgdGhhdCB1c2UtY2FzZSB0aG91Z2guCj4gPiA+ID4K PiA+ID4gPlRoZSBkZXRhaWxzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiA+aHR0cHM6Ly93d3cu eGlsaW54LmNvbS9zdXBwb3J0L2RvY3VtZW50YXRpb24vdXNlcl9ndWlkZXMvdWcxMDg1LXp5bnEt dWx0cmFzY2FsZS10cm0ucGRmCj4gPiA+ID4KPiA+ID4gPkkgc3VnZ2VzdCBsb29raW5nIGF0IHBh Z2VzIDY3MiBhbmQgNzMzLgo+ID4gPiAKPiA+ID4gVGhhbmsgeW91IGZvciB0aGUgZG9jdW1lbnRh dGlvbi4gSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBpZiB3ZSBjb3VsZCBtb3ZlCj4gPiA+IGlu aXRpYWxpemF0aW9uIGluIFhlbiBhcyBzdWdnZXN0ZWQgYnkgU3RlZmFuby4gSSBsb29rZWQgYXQg dGhlIGRyaXZlciBpbgo+ID4gPiBMaW51eCBhbmQgdGhlIGNvZGUgbG9va3Mgc2ltcGxlIG5vdCBt YW55IGRlcGVuZGVuY2llcy4gSG93ZXZlciwgSSB3YXMgbm90Cj4gPiA+IGFibGUgdG8gZmluZCB3 aGVyZSB0aGUgR2lnYWJpdCBUcmFuc2NlaXZlcnMgYXJlIGNvbmZpZ3VyZWQuIERvIHlvdSBoYXZl IGFueQo+ID4gPiBsaW5rIHRvIHRoZSBjb2RlIGZvciB0aGF0Pwo+ID4gCj4gPiBIaSBKdWxpZW4s Cj4gPiAKPiA+IEkgc3VzcGVjdCB0aGF0IHRoaXMgc2V0dXAgaGFzIHByZXZpb3VzbHkgYmVlbiBk b25lIGJ5IHRoZSBpbml0aWFsIGJvb3Rsb2FkZXIKPiA+IGF1dG8tZ2VuZXJhdGVkIGZyb20gZGVz aWduIGNvbmZpZ3VyYXRpb24gdG9vbHMuCj4gPiAKPiA+IE5vdywgdGhpcyBpcyBtb3ZpbmcgaW50 byBMaW51eC4KPiA+IFRoZXJlJ3MgYSBzcGVjaWZpYyBkcml2ZXIgdGhhdCBkb2VzIHRoYXQgYnV0 IEFGQUlDUywgaXQgaGFzIG5vdCBiZWVuIHVwc3RyZWFtZWQgeWV0Lgo+ID4gWW91IGNhbiBzZWUg aXQgaGVyZToKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9YaWxpbngvbGludXgteGxueC9ibG9iL21h c3Rlci9kcml2ZXJzL3BoeS9waHktenlucW1wLmMKPiA+IAo+ID4gRFRTIG5vZGVzIHRoYXQgbmVl ZCBhIFBIWSBjYW4gdGhlbiBqdXN0IHJlZmVyIHRvIGl0LCBoZXJlJ3MgYW4gZXhhbXBsZSBmcm9t IFNBVEE6Cj4gPiAmc2F0YSB7Cj4gPiAgICAgICAgIHBoeS1uYW1lcyA9ICJzYXRhLXBoeSI7Cj4g PiAgICAgICAgIHBoeXMgPSA8JmxhbmUzIFBIWV9UWVBFX1NBVEEgMSAzIDE1MDAwMDAwMD47Cj4g PiB9Owo+ID4gCj4gPiBJJ2xsIHNlZSBpZiBJIGNhbiBmaW5kIHdvcmtpbmcgZXhhbXBsZXMgZm9y IFBDSWUgb24gdGhlIFpDVTEwMi4gVGhlbiBJJ2xsIHNoYXJlCj4gPiBEVFMsIEtlcm5lbCBldGMu Cj4gPiAKPiA+IElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSBwbGF0Zm9ybSB0byBnZXQgc3RhcnRl ZCwgYW4gb3B0aW9uIGNvdWxkIGJlIGlmIEkgZ2V0IHlvdSBhIGJ1aWxkIG9mCj4gPiBvdXIgUUVN VSB0aGF0IGluY2x1ZGVzIG1vZGVscyBmb3IgdGhlIFBDSWUgY29udHJvbGxlciwgTVNJIGFuZCBT TU1VIGNvbm5lY3Rpb25zLgo+ID4gVGhlc2UgbW9kZWxzIGFyZSBmcmllbmRseSB3cnQuIFBIWSBj b25maWdzIGFuZCBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZXMsIGl0IHdpbGwKPiA+IGFjY2VwdCBw cmV0dHkgbXVjaCBhbnkgc2VxdWVuY2UgYW5kIHN0aWxsIHdvcmsuIFRoaXMgd291bGQgYWxsb3cg eW91IHRvIGZvY3VzIG9uCj4gPiBhcmNoaXRlY3R1cmFsIGlzc3VlcyByYXRoZXIgdGhhbiBleGFj dCBkZXRhaWxzIG9mIGluaXQgc2VxdWVuY2VzICh3aGljaCB3ZSBjYW4KPiA+IGRlYWwgd2l0aCBs YXRlcikuCj4gPiAKPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiBUaGlzIHdvdWxkIGFsc28gbWVhbiB0 aGF0IHRoZSBNU0kgaW50ZXJydXB0IGNvbnRyb2xsZXIgd2lsbCBiZSBtb3ZlZCBpbiBYZW4uCj4g PiA+IFdoaWNoIEkgdGhpbmsgaXMgYSBtb3JlIHNlbnNpYmxlIGRlc2lnbiAoc2VlIG1vcmUgYmVs b3cpLgo+ID4gPiAKPiA+ID4gPj4KPiA+ID4gPj4+PgktIEZvciBhbGwgb3RoZXIgaG9zdCBicmlk Z2VzID0+IEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUgaG9zdCBicmlkZ2VzCj4gPiA+ID4+Pj5m YWxsaW5nIHVuZGVyIHRoaXMgY2F0ZWdvcnkuIEkgYWxzbyBkb24ndCBoYXZlIGFueSBpZGVhIGhv dyB0byBoYW5kbGUgdGhpcy4KPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+Pgo+ID4gPiA+Pj4+Pk90aGVy d2lzZSwgaWYgRG9tMCBpcyB0aGUgb25seSBvbmUgdG8gZHJpdmUgdGhlIHBoeXNpY2FsIGhvc3Qg YnJpZGdlLAo+ID4gPiA+Pj4+PmFuZCBYZW4gaXMgdGhlIG9uZSB0byBwcm92aWRlIHRoZSBlbXVs YXRlZCBob3N0IGJyaWRnZSwgaG93IGFyZSBEb21VIFBDSQo+ID4gPiA+Pj4+PmNvbmZpZyByZWFk cyBhbmQgd3JpdGVzIHN1cHBvc2VkIHRvIHdvcmsgaW4gZGV0YWlscz8KPiA+ID4gPj4+Pgo+ID4g PiA+Pj4+SSB0aGluayBJIGhhdmUgYW5zd2VyZWQgdG8gdGhpcyBxdWVzdGlvbiB3aXRoIG15IGV4 cGxhbmF0aW9uIGFib3ZlLiBMZXQgbWUKPiA+ID4gPj4+Pmtub3cgaWYgaXQgaXMgbm90IHRoZSBj YXNlLgo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4+SG93IGlzIE1TSSBjb25maWd1cmF0aW9uIHN1cHBv c2VkIHRvIHdvcms/Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PkZvciBHSUN2MyBJVFMsIHRoZSBNU0kg d2lsbCBiZSBjb25maWd1cmVkIHdpdGggdGhlIGV2ZW50SUQgKGl0IGlzIHVuaXEKPiA+ID4gPj4+ PnBlci1kZXZpY2UpIGFuZCB0aGUgYWRkcmVzcyBvZiB0aGUgZG9vcmJlbGwuIFRoZSBsaW5rYWdl IGJldHdlZW4gdGhlIExQSSBhbmQKPiA+ID4gPj4+PiJNU0kiIHdpbGwgYmUgZG9uZSB0aHJvdWdo IHRoZSBJVFMuCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PkZvciBHSUN2Mm0sIHRoZSBNU0kgd2lsbCBi ZSBjb25maWd1cmVkIHdpdGggYW4gU1BJcyAob3Igb2Zmc2V0IG9uIHNvbWUKPiA+ID4gPj4+PkdJ Q3YybSkgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBkb29yYmVsbC4gTm90ZSB0aGF0IGZvciBET00w IFNQSXMgYXJlIG1hcHBlZAo+ID4gPiA+Pj4+MToxLgo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj5TbyBp biBib3RoIGNhc2UsIEkgZG9uJ3QgdGhpbmsgaXQgaXMgbmVjZXNzYXJ5IHRvIHRyYXAgTVNJIGNv bmZpZ3VyYXRpb24gZm9yCj4gPiA+ID4+Pj5ET00wLiBUaGlzIG1heSBub3QgYmUgdHJ1ZSBpZiB3 ZSB3YW50IHRvIGhhbmRsZSBvdGhlciBNU0kgY29udHJvbGxlci4KPiA+ID4gPj4+Pgo+ID4gPiA+ Pj4+SSBoYXZlIGluIG1pbmQgdGhlIHhpbGlueCBNU0kgY29udHJvbGxlciAoZW1iZWRkZWQgaW4g dGhlIGhvc3QgYnJpZGdlPyBbNF0pCj4gPiA+ID4+Pj5hbmQgeGdlbmUgTVNJIGNvbnRyb2xsZXIg KFs1XSkuIEJ1dCBJIGhhdmUgbm8gaWRlYSBob3cgdGhleSB3b3JrIGFuZCBpZiB3ZQo+ID4gPiA+ Pj4+bmVlZCB0byBzdXBwb3J0IHRoZW0uIE1heWJlIEVkZ2FyIGNvdWxkIHNoYXJlIGRldGFpbHMg b24gdGhlIFhpbGlueCBvbmU/Cj4gPiA+ID4+Pgo+ID4gPiA+Pj4KPiA+ID4gPj4+VGhlIFhpbGlu eCBjb250cm9sbGVyIGhhcyAyIGRlZGljYXRlZCBTUElzIGFuZCBwYWdlcyBmb3IgTVNJcy4gQUZB SUssIHRoZXJlJ3Mgbm8KPiA+ID4gPj4+d2F5IHRvIHByb3RlY3QgdGhlIE1TSSBkb29yYmVsbHMg ZnJvbSBtYWwtY29uZmlndXJlZCBlbmQtcG9pbnRzIHJhaXNpbmcgbWFsaWNpb3VzIEV2ZW50SURz Lgo+ID4gPiA+Pj5TbyBwZXJoYXBzIHRyYXBwZWQgY29uZmlnIGFjY2Vzc2VzIGZyb20gZG9tVXMg Y2FuIGhlbHAgYnkgYWRkaW5nIHRoaXMgcHJvdGVjdGlvbgo+ID4gPiA+Pj5hcyBkcml2ZXJzIGNv bmZpZ3VyZSB0aGUgZGV2aWNlLgo+ID4gPiA+Pj4KPiA+ID4gPj4+T24gTGludXgsIE9uY2UgTVNJ J3MgaGl0LCB0aGUga2VybmVsIHRha2VzIHRoZSBTUEkgaW50ZXJydXB0cywgcmVhZHMKPiA+ID4g Pj4+b3V0IHRoZSBFdmVudElEIGZyb20gYSBGSUZPIGluIHRoZSBjb250cm9sbGVyIGFuZCBpbmpl Y3RzIGEgbmV3IElSUSBpbnRvCj4gPiA+ID4+PnRoZSBrZXJuZWwuCj4gPiA+ID4+Cj4gPiA+ID4+ SXQgbWlnaHQgYmUgZWFybHkgdG8gYXNrLCBidXQgaG93IGRvIHlvdSBleHBlY3QgIE1TSSB0byB3 b3JrIHdpdGggRE9NVSBvbgo+ID4gPiA+PnlvdXIgaGFyZHdhcmU/IERvZXMgeW91ciBNU0kgY29u dHJvbGxlciBzdXBwb3J0cyB2aXJ0dWFsaXphdGlvbj8gT3IgYXJlIHlvdQo+ID4gPiA+Pmxvb2tp bmcgZm9yIGEgZGlmZmVyZW50IHdheSB0byBpbmplY3QgTVNJPwo+ID4gPiA+Cj4gPiA+ID5NU0kg c3VwcG9ydCBpbiBIVyBpcyBxdWl0ZSBsaW1pdGVkIHRvIHN1cHBvcnQgZG9tVSBhbmQgd2lsbCBy ZXF1aXJlIFNXIGhhY2tzIDotKAo+ID4gPiA+Cj4gPiA+ID5Bbnl3YXksIHNvbWV0aGluZyBhbG9u ZyB0aGUgbGluZXMgb2YgdGhpcyBtaWdodCB3b3JrOgo+ID4gPiA+Cj4gPiA+ID4qIFRyYXAgZG9t VSBDUFUgd3JpdGVzIHRvIE1TSSBkZXNjcmlwdG9ycyBpbiBjb25maWcgc3BhY2UuCj4gPiA+ID4g IEZvcmNlIHJlYWwgTVNJIGRlc2NyaXB0b3JzIHRvIHRoZSBhZGRyZXNzIG9mIHRoZSBkb29yIGJl bGwgYXJlYS4KPiA+ID4gPiAgRm9yY2UgcmVhbCBNU0kgZGVzY3JpcHRvcnMgdG8gdXNlIGEgc3Bl Y2lmaWMgZGV2aWNlIHVuaXF1ZSBFdmVudCBJRCBhbGxvY2F0ZWQgYnkgWGVuLgo+ID4gPiA+ICBS ZW1lbWJlciB3aGF0IEV2ZW50SUQgZG9tVSByZXF1ZXN0ZWQgcGVyIGRldmljZSBhbmQgZGVzY3Jp cHRvci4KPiA+ID4gPgo+ID4gPiA+KiBYZW4gb3IgRG9tMCB0YWtlIHRoZSByZWFsIFNQSSBnZW5l cmF0ZWQgd2hlbiBkZXZpY2Ugd3JpdGVzIGludG8gdGhlIGRvb3JiZWxsIGFyZWEuCj4gPiA+ID4g IEF0IHRoaXMgcG9pbnQsIHdlIGNhbiByZWFkIG91dCB0aGUgRXZlbnRJRCBmcm9tIHRoZSBNU0kg RklGTyBhbmQgbWFwIGl0IHRvIHRoZSBvbmUgcmVxdWVzdGVkIGZyb20gZG9tVS4KPiA+ID4gPiAg WGVuIG9yIERvbTAgaW5qZWN0IHRoZSBleHBlY3RlZCBFdmVudElEIGludG8gZG9tVQo+ID4gPiA+ Cj4gPiA+ID5EbyB5b3UgaGF2ZSBhbnkgZ29vZCBpZGVhcz8gOi0pCj4gPiA+IAo+ID4gPiBGcm9t IG15IHVuZGVyc3RhbmRpbmcgeW91ciBNU0kgY29udHJvbGxlciBpcyBlbWJlZGRlZCBpbiB0aGUg aG9zdGJyaWRnZSwKPiA+ID4gcmlnaHQ/IElmIHNvLCB0aGUgTVNJcyB3b3VsZCBuZWVkIHRvIGJl IGhhbmRsZWQgd2hlcmUgdGhlIGhvc3QgYnJpZGdlIHdpbGwKPiA+ID4gYmUgaW5pdGlhbGl6ZWQg KGUuZyBlaXRoZXIgWGVuIG9yIERPTTApLgo+ID4gCj4gPiBZZXMsIGl0IGlzLgo+ID4gCj4gPiA+ IAo+ID4gPiBGcm9tIGEgZGVzaWduIHBvaW50IG9mIHZpZXcsIGl0IHdvdWxkIG1ha2UgbW9yZSBz ZW5zZSB0byBoYXZlIHRoZSBNU0kKPiA+ID4gY29udHJvbGxlciBkcml2ZXIgaW4gWGVuIGFzIHRo ZSBob3N0YnJpZGdlIGVtdWxhdGlvbiBmb3IgZ3Vlc3Qgd2lsbCBhbHNvCj4gPiA+IGxpdmUgdGhl cmUuCj4gPiA+IAo+ID4gPiBTbyBpZiB3ZSByZWNlaXZlIE1TSSBpbiBYZW4sIHdlIG5lZWQgdG8g ZmlndXJlIG91dCBhIHdheSBmb3IgRE9NMCBhbmQgZ3Vlc3QKPiA+ID4gdG8gcmVjZWl2ZSBNU0ku IFRoZSBzYW1lIHdheSB3b3VsZCBiZSB0aGUgYmVzdCwgYW5kIEkgZ3Vlc3Mgbm9uLVBWIGlmCj4g PiA+IHBvc3NpYmxlLiBJIGtub3cgeW91IGFyZSBsb29raW5nIHRvIGJvb3QgdW5tb2RpZmllZCBP UyBpbiBhIFZNLiBUaGlzIHdvdWxkCj4gPiA+IG1lYW4gd2UgbmVlZCB0byBlbXVsYXRlIHRoZSBN U0kgY29udHJvbGxlciBhbmQgcG90ZW50aWFsbHkgeGlsaW54IFBDSQo+ID4gPiBjb250cm9sbGVy LiBIb3cgbXVjaCBhcmUgeW91IHdpbGxpbmcgdG8gbW9kaWZ5IHRoZSBPUz8KPiA+IAo+ID4gVG9k YXksIHdlIGhhdmUgbm90IHlldCBpbXBsZW1lbnRlZCBQQ0llIGRyaXZlcnMgZm9yIG91ciBiYXJl bWV0YWwgU0RLLiBTbwo+ID4gdGhpbmdzIGFyZSB2ZXJ5IG9wZW4gYW5kIHdlIGNvdWxkIGRlc2ln biB3aXRoIHByZXR0eSBtdWNoIGFueXRoaW5nIGluIG1pbmQuCj4gPiAKPiA+IFllcywgd2UgY291 bGQgcGVyaGFwcyBpbmNsdWRlIGEgdmVyeSBzbWFsbCBtb2RlbCB3aXRoIG1vc3QgcmVnaXN0ZXJz IGR1bW1pZWQuCj4gPiBJbXBsZW1lbnRpbmcgdGhlIE1TSSByZWFkIEZJRk8gd291bGQgYWxsb3cg dXMgdG86Cj4gPiAKPiA+IDEuIEluamVjdCB0aGUgTVNJIGRvb3JiZWxsIFNQSSBpbnRvIGd1ZXN0 cy4gVGhlIGd1ZXN0IHdpbGwgdGhlbiBzZWUgdGhlIHNhbWUKPiA+ICAgIElSUSBhcyBvbiByZWFs IEhXLgo+ID4gCj4gPiAyLiBHdWVzdCByZWFkcyBob3N0LWNvbnRyb2xsZXIgcmVnaXN0ZXJzIChN U0kgRklGTykgdG8gZ2V0IHRoZSBzaWduYWxlZCBNU0kuCj4gPiAKPiA+IAo+ID4gCj4gPiA+IFJl Z2FyZGluZyB0aGUgTVNJIGRvb3JiZWxsLCBJIGhhdmUgc2VlbiBpdCBpcyBjb25maWd1cmVkIGJ5 IHRoZSBzb2Z0d2FyZQo+ID4gPiB1c2luZyBhIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYSBwYWdlIGFs bG9jYXRlZCBpbiB0aGUgUkFNLiBXaGVuIHRoZSBQQ0kKPiA+ID4gZGV2aWNlcyBpcyB3cml0aW5n IGludG8gdGhlIGRvb3JiZWxsIGRvZXMgdGhlIGFjY2VzcyBnbyB0aHJvdWdoIHRoZSBTTU1VPwo+ ID4gCj4gPiBUaGF0J3MgYSBnb29kIHF1ZXN0aW9uLiBPbiBvdXIgUUVNVSBtb2RlbCBpdCBkb2Vz LCBidXQgSSdsbCBoYXZlIHRvIGRpZyBhIGxpdHRsZSB0byBzZWUgaWYgdGhhdCBpcyB0aGUgY2Fz ZSBvbiByZWFsIEhXIGFzd2VsbC4KPiA+IAo+ID4gPiBSZWdhcmRsZXNzIHRoZSBhbnN3ZXIsIEkg dGhpbmsgd2Ugd291bGQgbmVlZCB0byBtYXAgdGhlIE1TSSBkb29yYmVsbCBwYWdlIGluCj4gPiA+ IHRoZSBndWVzdC4gTWVhbmluZyB0aGF0IGV2ZW4gaWYgd2UgdHJhcCBNU0kgY29uZmlndXJhdGlv biBhY2Nlc3MsIGEgZ3Vlc3MKPiA+ID4gY291bGQgRE1BIGluIHRoZSBwYWdlLiBTbyBpZiBJIGFt IG5vdCBtaXN0YWtlbiwgTVNJIHdvdWxkIGJlIGluc2VjdXJlIGluCj4gPiA+IHRoaXMgY2FzZSA6 Ly4KPiA+ID4gCj4gPiA+IE9yIG1heWJlIHdlIGNvdWxkIGF2b2lkIG1hcHBpbmcgdGhlIGRvb3Ji ZWxsIGluIHRoZSBndWVzdCBhbmQgbGV0IFhlbgo+ID4gPiByZWNlaXZlIGFuIFNNTVUgYWJvcnQu IFdoZW4gcmVjZWl2aW5nIHRoZSBTTU1VIGFib3J0LCBYZW4gY291bGQgc2FuaXRpemUgdGhlCj4g PiA+IHZhbHVlIGFuZCB3cml0ZSBpbnRvIHRoZSByZWFsIE1TSSBkb29yYmVsbC4gTm90IHN1cmUg aWYgaXQgd291bGQgd29ya3MKPiA+ID4gdGhvdWdodC4KPiA+IAo+ID4gWWVhaCwgdGhpcyBpcyBh IHByb2JsZW0uCj4gPiBJJ20gbm90IHN1cmUgaWYgU01NVSBhYm9ydHMgd291bGQgd29yayBiZWNh dXNlIEkgZG9uJ3QgdGhpbmsgd2Uga25vdyB0aGUgdmFsdWUgb2YgdGhlIGRhdGEgd3JpdHRlbiB3 aGVuIHdlIHRha2UgdGhlIGFib3J0Lgo+ID4gV2l0aG91dCB0aGUgZGF0YSwgSSdtIG5vdCBzdXJl IGhvdyB3ZSB3b3VsZCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpZmZlcmVudCBNU0kncyBmcm9tIHRo ZSBzYW1lIGRldmljZS4KPiA+IAo+ID4gQWxzbywgZXZlbiBpZiB0aGUgTVNJIGRvb3JiZWxsIHdv dWxkIGJlIHByb3RlY3RlZCBieSB0aGUgU01NVSwgYWxsIFBDSSBkZXZpY2VzIGFyZSBwcmVzZW50 ZWQgd2l0aCB0aGUgc2FtZSBBWEkgTWFzdGVyIElELgo+IAo+IERvZXMgdGhhdCBtZWFuIHRoYXQg ZnJvbSB0aGUgU01NVSBwZXJzcGVjdGl2ZSB5b3UgY2FuIG9ubHkgYXNzaWduIHRoZW0KPiBhbGwg b3Igbm9uZT8KClVuZm9ydHVuYXRlbHkgeWVzLgoKCj4gPiBCVFcsIHRoaXMgbWFzdGVyLUlEIFNN TVUgbGltaXRhdGlvbiBpcyBhIHNob3dzdG9wcGVyIGZvciBkb21VIGd1ZXN0cyBpc24ndCBpdD8K PiA+IE9yIGRvIHlvdSBoYXZlIGlkZWFzIGFyb3VuZCB0aGF0PyBQZXJoYXBzIHNvbWUgUFYgd2F5 IHRvIHJlcXVlc3QgbWFwcGluZ3MgZm9yIERNQT8KPiAKPiBObywgd2UgZG9uJ3QgaGF2ZSBhbnl0 aGluZyBsaWtlIHRoYXQuIFRoZXJlIGFyZSB0b28gbWFueSBkZXZpY2Ugc3BlY2lmaWMKPiB3YXlz IHRvIHJlcXVlc3QgRE1BcyB0byBkbyB0aGF0LiBGb3IgZGV2aWNlcyB0aGF0IGNhbm5vdCBiZSBl ZmZlY3RpdmVseQo+IHByb3RlY3RlZCBieSBJT01NVSwgKG9uIHg4Nikgd2Ugc3VwcG9ydCBhc3Np Z25tZW50IGJ1dCBvbmx5IGluIGFuCj4gaW5zZWN1cmUgZmFzaGlvbi4KCk9LLCBJIHNlZS4KCkEg cG9zc2libGUgaGFjayBjb3VsZCBiZSB0byBhbGxvY2F0ZSBhIGNodW5rIG9mIEREUiBkZWRpY2F0 ZWQgZm9yIFBDSSBETUEuClBDSSBETUEgZGV2cyBjb3VsZCBiZSBsb2NrZWQgaW4gdG8gb25seSBi ZSBhYmxlIHRvIGFjY2VzcyB0aGlzIG1lbSArIE1TSSBkb29yYmVsbC4KR3Vlc3RzIGNhbiBzdGls bCBzY3JldyBlYWNoIG90aGVyIHVwIGJ1dCBhdCBsZWFzdCBpdCBiZWNvbWVzIGhhcmRlciB0byBy ZWFkL3dyaXRlIGRpcmVjdGx5IGZyb20gZWFjaCBvdGhlcnMgT1MgbWVtb3J5LgpJdCBtYXkgbm90 IGJlIHdvcnRoIHRoZSBlZmZvcnQgdGhvdWdoLi4uLgoKQ2hlZXJzLApFZGdhcgoKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==