From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Vikram Sethi" Subject: Re: [RFC] ARM PCI Passthrough design document Date: Thu, 6 Jul 2017 15:55:28 -0500 Message-ID: <033601d2f69a$347e3ad0$9d7ab070$@codeaurora.org> References: <8bfc13f3-f8c0-e308-3660-4d2e9a2a31e4@linaro.org> <20170704083035.l3td5n6ookydg6cs@dhcp-3-128.uk.xensource.com> 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 1dTDoL-0005B4-L3 for xen-devel@lists.xenproject.org; Thu, 06 Jul 2017 20:55:41 +0000 In-Reply-To: <20170704083035.l3td5n6ookydg6cs@dhcp-3-128.uk.xensource.com> Content-Language: en-us List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: roger.pau@citrix.com, 'Julien Grall' Cc: edgar.iglesias@xilinx.com, 'Stefano Stabellini' , 'Wei Chen' , 'Steve Capper' , 'Andre Przywara' , manish.jaggi@caviumnetworks.com, punit.agrawal@arm.com, 'Vikram Sethi' , 'Sinan Kaya' , 'Sameer Goel' , 'xen-devel' , 'Dave P Martin' , 'Vijaya Kumar K' List-Id: xen-devel@lists.xenproject.org SGkgUm9nZXIsClRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gTXkgcmVzcG9uc2VzIGlubGluZS4K Cgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gRnJvbTogWGVuLWRldmVsIFttYWlsdG86 eGVuLWRldmVsLWJvdW5jZXNAbGlzdHMueGVuLm9yZ10gT24gQmVoYWxmIE9mCj4gcm9nZXIucGF1 QGNpdHJpeC5jb20KPiBTZW50OiBUdWVzZGF5LCBKdWx5IDQsIDIwMTcgMzozMSBBTQo+IFRvOiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBsaW5hcm8ub3JnPgo+IENjOiBlZGdhci5pZ2xlc2lh c0B4aWxpbnguY29tOyBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+ OyAKPiBXZWkKPiBDaGVuIDxXZWkuQ2hlbkBhcm0uY29tPjsgU3RldmUgQ2FwcGVyIDxTdGV2ZS5D YXBwZXJAYXJtLmNvbT47IEFuZHJlCj4gUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+ OyBtYW5pc2guamFnZ2lAY2F2aXVtbmV0d29ya3MuY29tOwo+IHB1bml0LmFncmF3YWxAYXJtLmNv bTsgVmlrcmFtIFNldGhpIDx2aWtyYW1zQHF0aS5xdWFsY29tbS5jb20+OyBTaW5hbgo+IEtheWEg PG9rYXlhQHF0aS5xdWFsY29tbS5jb20+OyBTYW1lZXIgR29lbCA8c2dvZWxAcXRpLnF1YWxjb21t LmNvbT47Cj4geGVuLWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+OyBEYXZl IFAgTWFydGluCj4gPERhdmUuTWFydGluQGFybS5jb20+OyBWaWpheWEgS3VtYXIgSwo+IDxWaWph eWEuS3VtYXJAY2F2aXVtbmV0d29ya3MuY29tPgo+IFN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBb UkZDXSBBUk0gUENJIFBhc3N0aHJvdWdoIGRlc2lnbiBkb2N1bWVudAo+Cj4gSGVsbG8sCj4KPiBN eSAyY2VudHMgb24gd2hhdCBhcmUgdGhlIHBsYW5zIG9uIFBWSC94ODYuCj4KPiBPbiBXZWQsIEp1 biAyOCwgMjAxNyBhdCAwNDoyMjo0OFBNICswMTAwLCBKdWxpZW4gR3JhbGwgd3JvdGU6Cj4gPgo+ ID4KPiA+IE9uIDIwLzA2LzE3IDAxOjE5LCBWaWtyYW0gU2V0aGkgd3JvdGU6Cj4gPiA+IEhpIEp1 bGllbiwKPiA+Cj4gPiBIaSBWaWtyYW0sCj4gPgo+ID4gVGhhbmsgeW91IGZvciB5b3VyIGZlZWRi YWNrcy4KPiA+Cj4gPiA+IFRoYW5rcyBmb3IgcG9zdGluZyB0aGlzLiBJIHRoaW5rIHNvbWUgYWRk aXRpb25hbCB0b3BpY3MgbmVlZCB0byBiZSBjb3ZlcmVkIAo+ID4gPiBpbgo+IHRoZSBkZXNpZ24g ZG9jdW1lbnQsIHVuZGVyIDMgbWFpbiB0b3BpY3M6Cj4gPgo+ID4gSSB3YW50ZWQgdG8gbGltaXQg dGhlIHNjb3BlIG9mIHRoZSBQQ0kgcGFzc3Rocm91Z2ggd29yayB0byB0aGUgc3RyaWN0Cj4gPiBt aW5pbXVtLiBJIGRpZG4ndCBjb25zaWRlciBob3RwbHVnIGFuZCBBRVIgaW4gdGhlIHNjb3BlIGJl Y2F1c2UgaXQgaXMKPiA+IG9wdGlvbmFsIGZlYXR1cmUuCj4gPgo+ID4gPgo+ID4gPiBIb3RwbHVn OiBob3cgd2lsbCBYZW4gc3VwcG9ydCBob3RwbHVnPyBNYW55IHJvb3Rwb3J0cyBtYXkgcmVxdWly ZQo+IGZpcm13YXJlIGhvb2tzIHN1Y2ggYXMgQUNQSSBBU0wgdG8gdGFrZSBjYXJlIG9mIHBsYXRm b3JtIHNwZWNpZmljIE1NSU8KPiBpbml0aWFsaXphdGlvbiBvbiBob3RwbHVnLiBOb3JtYWxseSBm aXJtd2FyZSAoVUVGSSkgd291bGQgaGF2ZSBkb25lIHRoYXQKPiBwbGF0Zm9ybSBzcGVjaWZpYyBz ZXR1cCBhdCBib290Lgo+ID4KPiA+IFdlIGRvbid0IGhhdmUgQVNMIHN1cHBvcnQgaW4gWGVuLiBT byBJIHdvdWxkIGV4cGVjdCB0aGUgaG90cGx1ZyB0byBiZQo+ID4gaGFuZGxlZCBieSB0aGUgaGFy ZHdhcmUgZG9tYWluIGFuZCB0aGVuIHJlcG9ydCBpdCB0byBYZW4uCj4gPgo+ID4gVGhpcyB3b3Vs ZCBhbHNvIGZpdCBxdWl0ZSB3ZWxsIHRvIHRoZSBjdXJyZW50IGRlc2lnbiBhcyB0aGUgaGFyZHdh cmUKPiA+IGRvbWFpbiB3aWxsIHNjYW4gUENJIGRldmljZXMgYXQgYm9vdCBhbmQgdGhlbiByZWdp c3RlciB0aGVtIHRvIFhlbiB2aWEKPiA+IGFuIGh5cGVyY2FsbC4KPgo+IEhvdHBsdWcgd2lsbCBi ZSBkb25lIHVzaW5nIGFuIGh5cGVyY2FsbC4gV2UgYWxyZWFkeSBoYXZlIHRoZW0gaW4gcGxhY2Ug Zm9yIFBWLAo+IGFuZCB0aGlzIGlzIHNpbXBseSBnb2luZyB0byBiZSByZXVzZWQ6Cj4KPiBIb3Rw bHVnIFBDSSBkZXZpY2VzOgo+IFBIWVNERVZPUF9tYW5hZ2VfcGNpX2FkZHtfZXh0fQo+Cj4gaG90 cGx1ZyBNTUNGRyAoRUNBTSkgcmVnaW9uczoKPiBQSFlTREVWT1BfcGNpX21tY2ZnX3Jlc2VydmVk Cj4KPiA+ID4KPiA+ID4gQUVSOiBXaWxsIFBDSWUgbm9uLWZhdGFsIGFuZCBmYXRhbCBlcnJvcnMg KHNlY29uZGFyeSBidXMgcmVzZXQgZm9yIGZhdGFsKSAKPiA+ID4gYmUKPiByZWNvdmVyYWJsZSBp biBYZW4/Cj4gPiA+IFdpbGwgZHJpdmVycyBpbiBkb21zIGJlIG5vdGlmaWVkIGFib3V0IGZhdGFs IGVycm9ycyBzbyB0aGV5IGNhbiBiZSAKPiA+ID4gcXVpZXNjZWQKPiBiZWZvcmUgZG9pbmcgc2Vj b25kYXJ5IGJ1cyByZXNldCBpbiBYZW4/Cj4gPiA+IFdpbGwgWGVuIHN1cHBvcnQgRmlybXdhcmUg Rmlyc3QgRXJyb3IgaGFuZGxpbmcgZm9yIEFFUj8gaS5lIFdoZW4KPiA+ID4gcGxhdGZvcm0gZG9l cyBGaXJtd2FyZSBmaXJzdCBlcnJvciBoYW5kbGluZyBmb3IgQUVSIGFuZC9vciBmaWx0ZXJpbmcg b2YgCj4gPiA+IEFFUiwKPiBzZW5kcyBhc3NvY2lhdGVkIEFDUEkgSEVTVCBsb2dzIHRvIFhlbiBI b3cgd2lsbCBBRVIgbm90aWZpY2F0aW9uIGFuZCBsb2dzIGJlCj4gcHJvcGFnYXRlZCB0byB0aGUg ZG9tczogaW5qZWN0ZWQgQUNQSSBIRVNUPwo+Cj4gSG0sIEknbSBub3Qgc3VyZSBJIGZvbGxvdyBo ZXJlLCBJIGRvbid0IHNlZSBBRVIgdGllZCB0byBBQ1BJLiBBRVIgaXMgYSBQQ0llCj4gY2FwYWJp bGl0eSwgYW5kIGFjY29yZGluZyB0byB0aGUgc3BlYyBjYW4gYmUgc2V0dXAgY29tcGxldGVseSBp bmRlcGVuZGVudCB0bwo+IEFDUEkuCj4KVHJ1ZSwgaXQgY2FuIGJlIGluZGVwZW5kZW50IGlmIG5v dCB1c2luZyBmaXJtd2FyZSBmaXJzdCBBRVIgaGFuZGxpbmcgKEZGSCkuIEJ1dCAKRmlybXdhcmUg dGVsbHMgdGhlIE9TIHdoZXRoZXIgZmlybXdhcmUgZmlyc3QgaXMgaW4gdXNlLgpJZiBGRkggaXMg aW4gdXNlLCB0aGUgQUVSIGludGVycnVwdCBnb2VzIHRvIGZpcm13YXJlIGFuZCB0aGVuIGZpcm13 YXJlIHByb2Nlc3NlcyAKdGhlIEFFUiBsb2dzLCBmaWx0ZXJzIGVycm9ycywgYW5kIHNlbmRzIGEg QUNQSSBIRVNUIGxvZyB3aXRoIHRoZSBmaWx0ZXJlZCBBRVIgCnJlZ3MgdG8gT1MgYWxvbmcgd2l0 aCBhbiBBQ1BJIGV2ZW50L2ludGVycnVwdC4gS2VybmVsIGlzIG5vdCBzdXBwb3NlZCB0byB0b3Vj aCAKdGhlIEFFUiByZWdpc3RlcnMgZGlyZWN0bHkgaW4gdGhpcyBjYXNlLCBidXQgYWN0IG9uIHRo ZSByZWdpc3RlciB2YWx1ZXMgaW4gdGhlIApIRVNUIGxvZy4KaHR0cDovL2VsaXhpci5mcmVlLWVs ZWN0cm9ucy5jb20vbGludXgvbGF0ZXN0L3NvdXJjZS9kcml2ZXJzL3BjaS9wY2llL2Flci9hZXJk cnZfYWNwaS5jI0w5NApJZiBGaXJtd2FyZSBpcyB1c2luZyBGRkgsIFhlbiB3aWxsIGdldCBhIEhF U1QgbG9nIHdpdGggQUVSIHJlZ2lzdGVycywgYW5kIG11c3QgCnBhcnNlIHRob3NlIHJlZ2lzdGVy cyBpbnN0ZWFkIG9mIHJlYWRpbmcgQUVSIGNvbmZpZyBzcGFjZS4KQWZ0ZXIgdGhlIEFFUiByZWdp c3RlcnMgaGF2ZSBiZWVuIHBhcnNlZCAoZWl0aGVyIGZyb20gSEVTVCBsb2cgb3IgbmF0aXZlIFhl biBBRVIgCmludGVycnVwdCBoYW5kbGVyKSwgYXQgbGVhc3QgZm9yIGZhdGFsIGVycm9ycywgWGVu IG5lZWRzIHRvIHNlbmQgbm90aWZpY2F0aW9uIHRvIAp0aGUgRE9NIHdpdGggdGhlIGRldmljZSBw YXNzdGhyb3VnaCBzbyB0aGF0IGl0J3MgZHJpdmVyKHMpIGNhbiBiZSBxdWllc2NlZCAodmlhIApj YWxsYmFja3MgdG8gZGV2LT5kcml2ZXItPmVycl9oYW5kbGVyLT5lcnJvcl9kZXRlY3RlZCBmb3Ig bGludXgpIGJlZm9yZSBob3QgCnJlc2V0L3NlY29uZGFyeSBidXMgcmVzZXQuCgpXaGV0aGVyIEZG SCBpcyBpbiB1c2Ugb3Igbm90LCBYZW4gaGFzIDIgY2hvaWNlcyBpbiBob3cgdG8gcHJlc2VudCB0 aGUgZXJyb3IgdG8gCmRvbXMgZm9yIHF1aWVzY2luZyBiZWZvcmUgc2Vjb25kYXJ5IGJ1cyByZXNl dDoKYS4gU2VuZCBhIEhFU1QgbG9nIGFuZCBBQ1BJIGludGVycnVwdC9ldmVudCB0byBkb20gaWYg aXQgYm9vdGVkIEFDUEkgZG9tIGFuZCAKbGludXggZG9tIGNhbGxzIGFlcl9yZWNvdmVyX3F1ZXVl IGZyb20gQUNQSSBnaGVzIHBhdGggCmh0dHA6Ly9lbGl4aXIuZnJlZS1lbGVjdHJvbnMuY29tL2xp bnV4L2xhdGVzdC9zb3VyY2UvZHJpdmVycy9wY2kvcGNpZS9hZXIvYWVyZHJ2X2NvcmUuYyNMNTky Yi4gUHJlc2VudCBhIFJvb3QgcG9ydCB3aXJlZCBpbnRlcnJ1cHQgc291cmNlIGluIGRvbSBBQ1BJ L0RULCBhbmQgaW5qZWN0IHRoYXQgCmlycSBpbiB0aGUgR0lDIExSIHJlZ2lzdGVycy4gV2hlbiBk b20ga2VybmVsIHByb2Nlc3NlcyB0aGUgaW50ZXJydXB0IGFuZCBxdWVyaWVzIApjb25maWcgc3Bh Y2UgQUVSLCBYZW4gZW11bGF0ZXMgdGhlIEFFUiB2YWx1ZXMgaXQgd2FudHMgdGhlIGRvbSB0byBz ZWUgKGluIEZGSCAKY2FzZSBiYXNlZCBvbiByZWdpc3RlciB2YWx1ZXMgaW4gSEVTVCksIGFuZCBp ZiBGRkggd2FzIGluIHVzZSwgbm90IGFjdHVhbGx5IAphbGxvdyB0aGUgZG9tIHRvIGNsZWFyIG91 dCB0aGUgQUVSIHJlZ2lzdGVycy4KCk9wdGlvbiBiIGlzIHByb2JhYmx5IGJldHRlci9lYXNpZXIg c2luY2UgaXQgd29ya3MgZm9yIEFDUEkvRFQgZG9tLgoKSW4gbXkgdmlldyB0aGlzIGlzIHRoZSBi YXNpYyBBRVIgZXJyb3IgaGFuZGxpbmcgbGVhdmluZyB0aGUgZGV2aWNlcyAKaW5hY2Nlc3NpYmxl LgpUbyByZWNvdmVyL3Jlc3VtZSB0aGUgZGV2aWNlcywgdGhlIG93bmluZyBkb20gd291bGQgbmVl ZCB0byBzaWduYWwgWGVuIG9uY2UgYWxsIAppdHMgZHJpdmVyKHMpIGhhdmUgcXVpZXNjZWQsIGxl dHRpbmcgWGVuIGtub3cgaXQgaXMgb2sgdG8gZG8gdGhlIHNlY29uZGFyeSBidXMgCnJlc2V0IChm b3IgQUVSIGZhdGFsIGVycm9ycykuIFRoZSBiZXN0IHdheSB0byBzaWduYWwgdGhpcyB3b3VsZCBi ZSB0byBsZXQgdGhlIApkb20gdHJ5IHRvIGhpdCBTQlIgaW4gdGhlIFJvb3QgcG9ydCBicmlkZ2Ug Y29udHJvbCByZWdpc3RlciBpbiBjb25maWcgc3BhY2UsIGFuZCAKWGVuIHRyYXBzIHRoYXQgYW5k IGFjdHVhbGx5IGRvZXMgdGhlIEJDUi5TQlIgd3JpdGUuCgpTaW5jZSBYZW4gY29udHJvbHMgdGhl IEVDQU0gY29uZmlnIHNwYWNlIGFjY2VzcyBpbiBKdWxpZW4ncyBwcm9wb3NlZCBkZXNpZ24sIEkg CmRvbid0IHNlZSBhbnkgZnVuZGFtZW50YWwgaXNzdWVzIHdpdGggdGhlIGFib3ZlIGZsb3cgZml0 dGluZyBpbnRvIHRoZSBkZXNpZ24uCgo+IEluIGFueSBjYXNlLCBYZW4gY2FuIHRyYXAgb3IgaGlk ZSB0aGUgY2FwYWJpbGl0eSBmcm9tIGd1ZXN0cywgWGVuIGNvdWxkIAo+IHBvc3NpYmx5Cj4gZXZl biBlbXVsYXRlIEFFUiBzb21laG93IGlmIHRoYXQncyBtb3JlIHN1aXRhYmxlIChpZToKPiBndWVz dCBzZXRzIHVwIEFFUiwgWGVuIHRyYXBzIGFjY2Vzc2VzIHRvIHRoaXMgY2FwYWJpbGl0eSBhbmQg ZmlsdGVycyB0aGUgCj4gZXJyb3JzCj4gWGVuIHdhbnRzIHRvIGhhbmRsZSBpdHNlbGYgdnMgdGhl IGVycm9ycyB0aGF0IHNob3VsZCBiZSBwcm9wYWdhdGVkIHRvIHRoZQo+IGd1ZXN0KS4KPgo+IFRo ZSBiaWdnZXN0IGlzc3VlIEkgc2VlIHdpdGggQUVSIChhbmQgRFBDKSBpcyB0aGF0IGl0IHJlcXVp cmVzIGFuIGludGVycnVwdC4gCj4gU28KPiBYZW4gd291bGQgaGF2ZSB0byBzdG9sZSBvbmUgKG9y IG1vcmUpIGludGVycnVwdHMgZnJvbSB0aGUgZ3Vlc3QgaW4gb3JkZXIgdG8KPiBtYWtlIHVzZSBv ZiB0aG9zZSBjYXBhYmlsaXRpZXMgaWYgdGhleSBhcmUgdG8gYmUgZXhjbHVzaXZlbHkgbWFuYWdl ZCBieSBYZW4uCj4gVGhpcyBjb3VsZCBiZSBkb25lIGJ5IHNpbXBseSB0ZWxsaW5nIHRoZSBndWVz dCB0aGUgZGV2aWNlIGhhcyBsZXNzIE1TSS9NU0ktWAo+IGludGVycnVwdHMgdGhhbiBpdCByZWFs bHkgaGFzLgo+Cj4gPiA+IFBDSWUgRFBDIChEb3duc3RyZWFtIFBvcnQgQ29udGFpbm1lbnQpOiB3 aWxsIGl0IGJlIHN1cHBvcnRlZCBpbiBYZW4sIGFuZAo+IFhlbiB3aWxsIHJlZ2lzdGVyIGZvciBE UEMgaW50ZXJydXB0PyBXaGVuIFhlbiBicmluZ3MgdGhlIGxpbmsgYmFjayB1cCB3aWxsIGl0IAo+ IHNlbmQKPiBhIHNpbXVsYXRlZCBob3RwbHVnIHRvIGRvbTAgdG8gc2hvdyBsaW5rIGJhY2sgdXA/ Cj4gPgo+ID4gSSBkb24ndCBmZWVsIGl0IGlzIG5lY2Vzc2FyeSB0byBsb29rIGF0IEFFUiBmb3Ig dGhlIGZpcnN0IHdvcmsgb2YgUENJCj4gPiBwYXNzdGhyb3VnaC4gSSBjb25zaWRlciBpdCBhcyBh IHNlcGFyYXRlIGZlYXR1cmUgdGhhdCBjb3VsZCBwcm9iYWJseQo+ID4gY29tZSB3aXRoIHRoZSBS QVMgc3RvcnkuCj4gPgo+ID4gQXQgdGhlIG1vbWVudCwgSSBkb24ndCBrbm93IHdobyBpcyBnb2lu ZyB0byBoYW5kbGUgdGhlIGVycm9yIGFuZCBldmVuCj4gPiBob3cgdGhleSB3aWxsIGJlIHJlcG9y dGVkIHRvIHRoZSBndWVzdC4gQnV0IEkgZG9uJ3QgdGhpbmsgdGhpcyB3aWxsCj4gPiBoYXZlIGFu eSBpbXBhY3Qgb24gb3VyIGRlc2lnbiBjaG9pY2UgaGVyZS4KPiA+Cj4gPiBMZXQgbWUga25vdyBp ZiB5b3UgdGhpbmsgaXQgbWF5IGhhdmUgYW4gaW1wYWN0Lgo+Cj4gQXMgSnVsaWVuIHNhaWQsIEkg dGhpbmsgdGhhdCB5b3UgcHJvYmFibHkga25vdyBtb3JlIGFib3V0IEFFUi9EUEMgdGhhbiB3ZSBk bywKPiBzbyBpdCB3b3VsZCBiZSBnb29kIGlmIHlvdSBjb3VsZCBnbyBvdmVyIHRoZSBkZXNpZ24g ZG9jdW1lbnQgYW5kIG1hcmUgc3VyZQo+IHRoYXQgdGhlIGN1cnJlbnQgYXBwcm9hY2ggY2FuIHdv cmsgd2l0aCB0aGUgd2F5IHlvdSBpbnRlbmQgdG8gdXNlIEFFUi9EUEMuCj4KCkkgdGhpbmsgd2hh dCBJIHdyb3RlIGFib3ZlIHN1cHBsZW1lbnRzIHRoZSBkZXNpZ24sIGFuZCBJIGRvbid0IHNlZSBh bnkgCmZ1bmRhbWVudGFsIGlzc3VlLgpMZXQgbWUga25vdyBpZiB5b3UgaGF2ZSBhbnkgcXVlc3Rp b25zIG9yIGNvbmNlcm5zIHdpdGggcHJvcG9zZWQgZmxvdy4KCj4gVGhhbmtzLCBSb2dlci4KPgo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gWGVuLWRl dmVsIG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAoKClRoYW5rcywKVmlrcmFtClF1YWxjb21tIERhdGFjZW50ZXIg VGVjaG5vbG9naWVzLCBJbmMuIGFzIGFuIGFmZmlsaWF0ZSBvZiBRdWFsY29tbSBUZWNobm9sb2dp ZXMsIApJbmMuClF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUg Q29kZSBBdXJvcmEgRm9ydW0sIGEgTGludXggCkZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9q ZWN0LgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK