From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: GPU passthrough support for Stoney [Radeon R2/R3/R4/R5 Graphics]? Date: Wed, 22 May 2019 21:10:57 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Micah Morton Cc: amd-gfx list T24gV2VkLCBNYXkgMjIsIDIwMTkgYXQgNzowMCBQTSBNaWNhaCBNb3J0b24gPG1vcnRvbm1AY2hy b21pdW0ub3JnPiB3cm90ZToKPgo+IE9uIFdlZCwgTWF5IDIyLCAyMDE5IGF0IDE6MzkgUE0gQWxl eCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIFR1ZSwg TWF5IDIxLCAyMDE5IGF0IDE6NDYgUE0gTWljYWggTW9ydG9uIDxtb3J0b25tQGNocm9taXVtLm9y Zz4gd3JvdGU6Cj4gPiA+Cj4gPiA+IE9uIEZyaSwgTWF5IDE3LCAyMDE5IGF0IDk6NTkgQU0gQWxl eCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4g T24gRnJpLCBNYXkgMTcsIDIwMTkgYXQgMTE6MzYgQU0gTWljYWggTW9ydG9uIDxtb3J0b25tQGNo cm9taXVtLm9yZz4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBNYXkgMTYsIDIw MTkgYXQgMTozOSBQTSBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4gd3JvdGU6 Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIFRodSwgTWF5IDE2LCAyMDE5IGF0IDQ6MDcgUE0g TWljYWggTW9ydG9uIDxtb3J0b25tQGNocm9taXVtLm9yZz4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiBPbiBXZWQsIE1heSAxNSwgMjAxOSBhdCA3OjE5IFBNIEFsZXggRGV1Y2hl ciA8YWxleGRldWNoZXJAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiBPbiBXZWQsIE1heSAxNSwgMjAxOSBhdCAyOjI2IFBNIE1pY2FoIE1vcnRvbiA8bW9y dG9ubUBjaHJvbWl1bS5vcmc+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiBIaSBmb2xrcywKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gSSdtIGlu dGVyZXN0ZWQgaW4gcnVubmluZyBhIFZNIG9uIGEgc3lzdGVtIHdpdGggYW4gaW50ZWdyYXRlZCBT dG9uZXkKPiA+ID4gPiA+ID4gPiA+ID4gW1JhZGVvbiBSMi9SMy9SNC9SNSBHcmFwaGljc10gY2Fy ZCBhbmQgcGFzc2luZyB0aHJvdWdoIHRoZSBncmFwaGljcwo+ID4gPiA+ID4gPiA+ID4gPiBjYXJk IHRvIHRoZSBWTSB1c2luZyB0aGUgSU9NTVUuIEknbSB3b25kZXJpbmcgd2hldGhlciB0aGlzIGlz IGZlYXNpYmxlCj4gPiA+ID4gPiA+ID4gPiA+IGFuZCBzdXBwb3NlZCB0byBiZSBkb2FibGUgd2l0 aCB0aGUgcmlnaHQgc2V0dXAgKGFzIG9wcG9zZWQgdG8gcGFzc2luZwo+ID4gPiA+ID4gPiA+ID4g PiBhIGRpc2NyZXRlIEdQVSB0byB0aGUgVk0sIHdoaWNoIEkgdGhpbmsgaXMgZGVmaW5pdGVseSBk b2FibGU/KS4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gU28gZmFyLCBJIGNh biBkbyBhbGwgdGhlIHFlbXUva3ZtL3ZmaW8vaW9tbXUgc3R1ZmYgdG8gcnVuIHRoZSBWTSBhbmQK PiA+ID4gPiA+ID4gPiA+ID4gcGFzcyB0aGUgaW50ZWdyYXRlZCBHUFUgdG8gaXQsIGJ1dCB0aGUg ZHJtIGRyaXZlciBpbiB0aGUgVk0gZmFpbHMKPiA+ID4gPiA+ID4gPiA+ID4gZHVyaW5nIGFtZGdw dV9kZXZpY2VfaW5pdCgpLiBTcGVjaWZpY2FsbHksIHRoZSBsb2dzIHNob3cgdGhlIFNNVSBiZWlu Zwo+ID4gPiA+ID4gPiA+ID4gPiB1bnJlc3BvbnNpdmUsIHdoaWNoIGxlYWRzIHRvIGEgJ1NNVSBm aXJtd2FyZSBsb2FkIGZhaWxlZCcgZXJyb3IKPiA+ID4gPiA+ID4gPiA+ID4gbWVzc2FnZSBhbmQg a2VybmVsIHBhbmljLiBJIGNhbiBzaGFyZSBWTSBsb2dzIGFuZCB0aGUgaW52b2NhdGlvbiBvZgo+ ID4gPiA+ID4gPiA+ID4gPiBxZW11IGFuZCBzdWNoIGlmIGhlbHBmdWwsIGJ1dCBmaXJzdCB3YW50 ZWQgdG8ga25vdyBhdCBhIGhpZ2ggbGV2ZWwgaWYKPiA+ID4gPiA+ID4gPiA+ID4gdGhpcyBzaG91 bGQgYmUgZmVhc2libGU/Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFAuUy46 IEknbSBub3QgaW5pdGlhbGl6aW5nIHRoZSBHUFUgaW4gdGhlIGhvc3QgYmlvcyBvciBob3N0IGtl cm5lbCBhdAo+ID4gPiA+ID4gPiA+ID4gPiBhbGwsIHNvIEkgc2hvdWxkIGJlIHBhc3NpbmcgYSBm cmVzaCBHUFUgdG8gdGhlIFZNLiBBbHNvLCBJJ20gcHJldHR5Cj4gPiA+ID4gPiA+ID4gPiA+IHN1 cmUgSSdtIHJ1bm5pbmcgdGhlIGNvcnJlY3QgVkdBIGJpb3MgZm9yIHRoaXMgR1BVIGluIHRoZSBn dWVzdCBWTQo+ID4gPiA+ID4gPiA+ID4gPiBiaW9zIGJlZm9yZSBndWVzdCBib290Lgo+ID4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBBbnkgY29tbWVudHMvc3VnZ2VzdGlvbnMgd291 bGQgYmUgYXBwcmVjaWF0ZWQhCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gSXQgc2hv dWxkIHdvcmsgaW4gYXQgbGVhc3Qgb25jZSBhcyBsb25nIGFzIHlvdXIgdm0gaXMgcHJvcGVybHkg c2V0IHVwLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSXMgdGhlcmUgYW55IHJlYXNvbiBy dW5uaW5nIGNvcmVib290IHZzIFVFRkkgYXQgaG9zdCBib290IHdvdWxkIG1ha2UgYQo+ID4gPiA+ ID4gPiA+IGRpZmZlcmVuY2U/IEkgd2FzIHJ1bm5pbmcgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGNv cmVib290IHRoYXQgYXZvaWRzCj4gPiA+ID4gPiA+ID4gZG9pbmcgYW55IEdQVSBpbml0aWFsaXph dGlvbiBpbiBmaXJtd2FyZSAtLSBzbyB0aGUgZmlyc3QgUE9TVCBoYXBwZW5zCj4gPiA+ID4gPiA+ ID4gaW5zaWRlIHRoZSBndWVzdC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhlIEdQVSBvbiBB UFVzIHNoYXJlcyBhIGJ1bmNoIG9mIHJlc291cmNlcyB3aXRoIHRoZSBDUFUuICBUaGVyZSBhcmUg YQo+ID4gPiA+ID4gPiBidW5jaCBvZiBibG9ja3Mgd2hpY2ggYXJlIHNoYXJlZCBhbmQgbmVlZCB0 byBiZSBpbml0aWFsaXplZCBvbiBib3RoCj4gPiA+ID4gPiA+IGZvciBldmVyeXRoaW5nIHRvIHdv cmsgcHJvcGVybHkuCj4gPiA+ID4gPgo+ID4gPiA+ID4gSW50ZXJlc3RpbmcuIFNvIHNraXBwaW5n IHJ1bm5pbmcgdGhlIHZiaW9zIGluIHRoZSBob3N0IGFuZCB3YWl0aW5nCj4gPiA+ID4gPiB1bnRp bCBydW5uaW5nIGl0IGZvciB0aGUgZmlyc3QgdGltZSBpbiB0aGUgZ3Vlc3QgU2VhQklPUyBpcyBh IGJhZAo+ID4gPiA+ID4gaWRlYT8gV291bGQgaXQgYmUgYmV0dGVyIHRvIGxldCBBUFUrQ1BVIGlu aXRpYWxpemUgbm9ybWFsbHkgaW4gdGhlCj4gPiA+ID4gPiBob3N0IGFuZCB0aGVuIHNraXAgdHJ5 aW5nIHRvIHJ1biB0aGUgdmJpb3MgaW4gZ3Vlc3QgU2VhQklPUyBhbmQganVzdAo+ID4gPiA+ID4g ZG8gc29tZSBraW5kIG9mIHJlc2V0IGJlZm9yZSB0aGUgZHJtIGRyaXZlciBzdGFydHMgYWNjZXNz aW5nIGl0IGZyb20KPiA+ID4gPiA+IHRoZSBndWVzdD8KPiA+ID4gPgo+ID4gPiA+IElmIHlvdSBs ZXQgdGhlIHNiaW9zIGluaXRpYWxpemUgdGhpbmdzLCBpdCBzaG91bGQgd29yay4gIFRoZSBkcml2 ZXIKPiA+ID4gPiB3aWxsIGRvIHRoZSByaWdodCB0aGluZyB0byBpbml0IHRoZSBjYXJkIHdoZW4g aXQgbG9hZHMgd2hldGhlciBpdHMKPiA+ID4gPiBydW5uaW5nIG9uIGJhcmUgbWV0YWwgb3IgaW4g YSBWTS4gIFdlJ3ZlIG5ldmVyIHRlc3RlZCBhbnkgc2NlbmFyaW9zCj4gPiA+ID4gd2hlcmUgdGhl IEdQVSBvbiBBUFVzIGlzIG5vdCBoYW5kbGVkIGJ5IHRoZSBzYmlvcy4gIE5vdGUgdGhhdCB0aGUg R1BVCj4gPiA+ID4gZG9lcyBub3QgaGF2ZSB0byBiZSBwb3N0ZWQgcGVyIHNlLCBpdCBqdXN0IG5l ZWRzIHRvIGhhdmUgYmVlbiBwcm9wZXJseQo+ID4gPiA+IHRha2VuIGludG8gYWNjb3VudCB3aGVu IHRoZSBzYmlvcyBjb21lcyB1cCBzbyB0aGF0IHNoYXJlZCBjb21wb25lbnRzCj4gPiA+ID4gYXJl IGluaXRpYWxpemVkIGNvcnJlY3RseS4gIEkgZG9uJ3Qga25vdyB3aGF0IHlvdXIgcGF0Y2hlZCBz eXN0ZW0gZG9lcwo+ID4gPiA+IG9yIGRvZXNuJ3QgZG8gd2l0aCByZXNwZWN0IHRvIHRoZSBwbGF0 Zm9ybSBpbml0aWFsaXphdGlvbi4KPiA+ID4KPiA+ID4gU28gaXQgc291bmRzIGxpa2UgeW91IGFy ZSBzdWdnZXN0aW5nIHRoZSBmb2xsb3dpbmc6Cj4gPiA+Cj4gPiA+IGEpIFJ1biB0aGUgdmJpb3Mg YXMgcGFydCBvZiB0aGUgaG9zdCBzYmlvcyB0byBpbml0aWFsaXplIHN0dWZmIGFuZAo+ID4gPiBw YXRjaCB1cCB0aGUgdmJpb3MKPiA+ID4KPiA+ID4gYikgRG9uJ3QgcnVuIHRoZSBkcm0vYW1kZ3B1 IGRyaXZlciBpbiB0aGUgaG9zdCwgd2FpdCB1bnRpbCB0aGUgZ3Vlc3QgZm9yIHRoYXQKPiA+ID4K PiA+ID4gYykgQXZvaWQgcnVubmluZyB0aGUgdmJpb3MgKGFnYWluKSBpbiB0aGUgZ3Vlc3Qgc2Jp b3Mgc2luY2UgaXQgaGFzCj4gPiA+IGFscmVhZHkgYmVlbiBydW4uIEFsdGhvdWdoIHNpbmNlICJ0 aGUgZHJpdmVyIG5lZWRzIGFjY2VzcyB0byB0aGUgdmJpb3MKPiA+ID4gaW1hZ2UgaW4gdGhlIGd1 ZXN0IHRvIGdldCBkZXZpY2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkZXRhaWxzIiBJCj4gPiA+ IHNob3VsZCBzdGlsbCBkbyAnLWRldmljZQo+ID4gPiB2ZmlvLXBjaSwuLi4scm9tZmlsZT0vcGF0 aC90by92Ymlvcy10aGF0LXdhcy1maXhlZC11cC1ieS1ob3N0LXNiaW9zJywKPiA+ID4gYnV0IHNo b3VsZCBwYXRjaCB0aGUgZ3Vlc3Qgc2Jpb3MgdG8gYXZvaWQgcnVubmluZyB0aGUgdmJpb3MgYWdh aW4gaW4KPiA+ID4gdGhlIGd1ZXN0Pwo+ID4gPgo+ID4gPiBkKSBydW4gdGhlIGRybS9hbWRncHUg ZHJpdmVyIGluIHRoZSBndWVzdCBvbiB0aGUgaGFyZHdhcmUgdGhhdCB3YXMKPiA+ID4gaW5pdGlh bGl6ZWQgaW4gdGhlIGhvc3Qgc2Jpb3MKPiA+ID4KPiA+ID4gQW0gSSBnZXR0aW5nIHRoaXMgcmln aHQ/Cj4gPiA+Cj4gPgo+ID4gSSB3b3VsZCBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggYSBzdGFuZGFy ZCBzYmlvcy92Ymlvcy4gIEJvb3QgdGhlIHN5c3RlbQo+ID4gYXMgdXN1YWwuICBZb3UgY2FuIGJs YWNrbGlzdCBhbWRncHUgaWYgeW91IGRvbid0IHdhbnQgZ3B1IGRyaXZlcgo+ID4gbG9hZGVkIG9u IHRoZSBob3N0LiAgR2V0IGEgY29weSBvZiB0aGUgdmJpb3MgaW1hZ2UuICBEZXBlbmRpbmcgb24g dGhlCj4gPiBwbGF0Zm9ybSwgaXQgbWF5IGJlIGF2YWlsYWJsZSB2aWEgdGhlIHN0YW5kYXJkIHZi aW9zIHNoYWRvdyBsb2NhdGlvbgo+ID4gb3IgaXQgbWF5IGJlIGF0IHRoZSBzdGFydCBvZiBjYXJ2 ZW91dCBvciBpdCBtYXkgYmUgYXZhaWxhYmxlIHZpYSBhbgo+ID4gQUNQSSBpbnRlcmZhY2UuICBU aGUgZHJpdmVyIGhhcyB0aGUgbG9naWMgdG8gZmV0Y2ggaXQuICBZb3UgY2FuIGR1bXAgYQo+ID4g Y29weSBmcm9tIHRoZSBkcml2ZXIgdmlhIC9zeXMva2VybmVsL2RlYnVnL2RyaS9YL2FtZGdwdV92 YmlvcyB3aGVyZSBYCj4gPiBpcyB0aGUgbnVtYmVyIG9mIHRoZSBkcmkgZGV2aWNlIG9mIHRoZSBj YXJkIGluIHF1ZXN0aW9uLiAgVGhlbiBzdGFydAo+Cj4gSSd2ZSBiZWVuIGFibGUgdG8gcmV0cmll dmUgdGhlIHZiaW9zIGZyb20KPiAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvWC9hbWRncHVfdmJpb3Mg YXMgd2VsbCBhcwo+IC9zeXMvZGV2aWNlcy9wY2lYWFhYOlhYL1hYWFg6WFg6WFguWC9yb20gKGFs dGhvdWdoIHRoZXkgZG8gZGlmZmVyIGluCj4gNDYgZGlmZmVyZW50IGJ5dGUgbG9jYXRpb25zLCBu b3Qgc3VyZSBpZiB0aGlzIGlzIGV4cGVjdGVkKS4gSW4gYm90aAo+IGNhc2VzLCBwYXNzaW5nIHRo ZSB2YmlvcyB0aHJvdWdoIHRvIHRoZSBWTSByZXN1bHRzIGluIFNlYUJJT1MgaGFuZ2luZwo+IHdo aWxlIGV4ZWN1dGluZyB0aGUgdmJpb3M6Cj4KPiBGb3VuZCAyIGNwdShzKSBtYXggc3VwcG9ydGVk IDIgY3B1KHMpCj4gQ29weWluZyBQSVIgZnJvbSAweDdmZmJmYzYwIHRvIDB4MDAwZjVlMDAKPiBD b3B5aW5nIE1QVEFCTEUgZnJvbSAweDAwMDA2ZTYwLzdmZmEzNGMwIHRvIDB4MDAwZjVjZjAKPiBD b3B5aW5nIFNNQklPUyBlbnRyeSBwb2ludCBmcm9tIDB4MDAwMDZlNjAgdG8gMHgwMDBmNWIxMAo+ IFNjYW4gZm9yIFZHQSBvcHRpb24gcm9tCj4gUnVubmluZyBvcHRpb24gcm9tIGF0IGMwMDA6MDAw Mwo+IEhBTkdTIEhFUkUgSU5ERUZJTklURUxZIDwtLQoKU29ycnksIG1pc3VuZGVyc3Rvb2Qgd2hh dCB5b3Ugd2VyZSBhc2tpbmcuICBUaGVyZSBpcyBubyBuZWVkIHRvCmV4ZWN1dGUgdGhlIHZiaW9z IGluIHRoZSBWTS4gIFRoZSBkcml2ZXIganVzdCBuZWVkcyBhY2Nlc3MgdG8gaXQuCgo+Cj4gV2hp Y2ggaXMgd2h5IEkgd2FzIGFza2luZyBhYm91dCBub3QgcnVubmluZyB0aGUgdmJpb3MgaW4gdGhl IGd1ZXN0Cj4gU2VhQklPUy4gR3JhbnRlZCwgdGhlIHNiaW9zIEkndmUgYmVlbiBydW5uaW5nIGlu IHRoZSBob3N0IGlzIENocm9tZSBPUwo+IGNvcmVib290IGZpcm13YXJlIC0tIHNvIHByb2JhYmx5 IG5vdCB3aGF0IHlvdSBtZWFuIGJ5ICJzdGFuZGFyZAo+IHNiaW9zIj8gWW91IHRoaW5rIHRoZXJl IGlzIGEgZ29vZCBjaGFuY2UgcnVubmluZyBjb3JlYm9vdCBpbnN0ZWFkIG9mCj4gdGhlICJzdGFu ZGFyZCBzYmlvcyIgaXMgd2hhdCBpcyBjYXVzaW5nIHRoaW5ncyB0byBmYWlsPwo+CgpJdCdzIG5v dCBjbGVhciB0byBtZSB3aGF0IGV4YWN0bHkgeW91ciBlbnZpcm9ubWVudCBpcy4gIEFyZSB5b3UK cnVubmluZyBhIGN1c3RvbSBjb3JlYm9vdCB5b3UgYnVpbHQgeW91cnNlbGYgb3IgaXMgdGhpcyBh IHN0b25leQpjaHJvbWVib29rPyAgTXkgcG9pbnQgd2FzIGp1c3QgdG8gc3RhcnQgd2l0aCB0aGUg c2Jpb3MvdmJpb3MgdGhhdApzaGlwcGVkIHdpdGggdGhlIHN5c3RlbSByYXRoZXIgdGhhbiBzb21l IGN1c3RvbWl6ZWQgdGhpbmcuCgpBbGV4Cgo+ID4gVk0gd2l0aCB0aGUgZGV2aWNlIHBhc3NlZCB0 aHJvdWdoLiAgRG9uJ3Qgd29ycnkgYWJvdXQgcnVubmluZyB0aGUKPiA+IHZiaW9zIG9yIG5vdCBp biB0aGUgaG9zdCB2cy4gdGhlIGd1ZXN0LiAgVGhlIGRyaXZlciB3aWxsIGRvIHRoZSByaWdodAo+ ID4gdGhpbmcuCj4gPgo+ID4gQWxleAo+ID4KPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gTm90ZSB0aGF0IHRoZSBkcml2ZXIgbmVlZHMg YWNjZXNzIHRvIHRoZSB2YmlvcyBpbWFnZSBpbiB0aGUgZ3Vlc3QgdG8KPiA+ID4gPiA+ID4gPiA+ IGdldCBkZXZpY2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkZXRhaWxzIChjbG9ja3MsIGRpc3Bs YXkgY29ubmVjdG9yCj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uLCBldGMuKS4KPiA+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiA+IElzIHRoZXJlIGFueXRoaW5nIEkgbmVlZCB0byBkbyB0byBl bnN1cmUgdGhpcyBiZXNpZGVzIHBhc3NpbmcgJy1kZXZpY2UKPiA+ID4gPiA+ID4gPiB2ZmlvLXBj aSwuLi4scm9tZmlsZT0vcGF0aC90by92Z2Fyb20nIHRvIHFlbXU/Cj4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+IFlvdSBuZWVkIHRoZSBhY3R1YWwgdmJpb3Mgcm9tIGltYWdlIGZyb20geW91ciBzeXN0 ZW0uICBUaGUgaW1hZ2UgaXMKPiA+ID4gPiA+ID4gYm9hcmQgc3BlY2lmaWMuCj4gPiA+ID4gPgo+ ID4gPiA+ID4gSSBzaG91bGQgaGF2ZSB0aGUgY29ycmVjdCB2YmlvcyByb20gaW1hZ2UgZm9yIG15 IGJvYXJkLiBJJ20gZXh0cmFjdGluZwo+ID4gPiA+ID4gaXQgZnJvbSB0aGUgZmlybXdhcmUgaW1h Z2UgKHRoYXQgd29ya3MgZm9yIHJlZ3VsYXIgZ3JhcGhpY3MgaW5pdAo+ID4gPiA+ID4gd2l0aG91 dCB0aGlzIFZNIHN0dWZmKSBmb3IgdGhlIGJvYXJkIGF0IGJ1aWxkIHRpbWUgKHJhdGhlciB0aGFu Cj4gPiA+ID4gPiBncmFiYmluZyBpdCBmcm9tIC9zeXMvZGV2aWNlcy9wY2kuLi4gYXQgcnVudGlt ZSksIHNvIGl0IHNob3VsZG4ndCBiZQo+ID4gPiA+ID4gbW9kaWZpZWQgb3IgY29ycnVwdGVkIGlu IGFueSB3YXkuCj4gPiA+ID4KPiA+ID4gPiBUaGUgdmJpb3MgaW1hZ2UgaXMgcGF0Y2hlZCBhdCBi b290IHRpbWUgYnkgdGhlIHNiaW9zIGltYWdlIGZvciBydW4KPiA+ID4gPiB0aW1lIGNvbmZpZ3Vy YXRpb24gc3R1ZmYuICBGb3IgZXhhbXBsZSwgc29tZSBvZiB0aGUgcGNpZSBsYW5lcyBhcmUKPiA+ ID4gPiBzaGFyZWQgd2l0aCBkaXNwbGF5IGxhbmVzIGFuZCBjYW4gYmUgdXNlZCBmb3IgZWl0aGVy IGRpc3BsYXkgb3IgcGNpZQo+ID4gPiA+IGFkZCBpbiBjYXJkcy4gIFRoZSBzYmlvcyBkZXRlcm1p bmVzIHRoaXMgYXQgYm9vdCBhbmQgcGF0Y2hlcyB0aGUgdmJpb3MKPiA+ID4gPiBkaXNwbGF5IHRh YmxlcyBzbyB0aGUgZHJpdmVyIGtub3dzIHRoYXQgdGhlIGRpc3BsYXlzIGFyZSBub3QKPiA+ID4g PiBhdmFpbGFibGUuICBBbHNvIHRoaW5ncyBsaWtlIGZsYXQgcGFuZWxzIG9uIGxhcHRvcHMuICBP RU1zIG1heSBoYXZlCj4gPiA+ID4gc2V2ZXJhbCBkaWZmZXJlbnQgZmxhdCBwYW5lbCBtb2RlbHMg dGhleSB1c2Ugd2l0aCBhIHBhcnRpY3VsYXIKPiA+ID4gPiBwbGF0Zm9ybSBhbmQgdGhlIHNiaW9z IHBhdGNoZXMgdGhlIHZiaW9zIGRpc3BsYXkgdGFibGVzIHdpdGggdGhlCj4gPiA+ID4gcHJvcGVy IHBhcmFtZXRlcnMgZm9yIHRoZSBwYW5lbCBpbiB1c2UuICBUaGUgc2Jpb3MgYWxzbyBwYXRjaGVz IHRhYmxlcwo+ID4gPiA+IHJlbGF0ZWQgdG8gYmFuZHdpZHRoLiAgRS5nLiwgdGhlIHR5cGUgYW5k IHNwZWVkIGFuZCBudW1iZXIgb2YgY2hhbm5lbHMKPiA+ID4gPiBvZiB0aGUgc3lzdGVtIHJhbSBz byB0aGF0IHRoZSBHUFUgZHJpdmVyIGNhbiBzZXQgcHJvcGVyIGxpbWl0cyBvbgo+ID4gPiA+IHRo aW5ncyBsaWtlIGRpc3BsYXkgbW9kZXMuICBTbyB5b3UgbmVlZCB0byB1c2UgdGhlIHZiaW9zIGlt YWdlIHRoYXQgaXMKPiA+ID4gPiBwcm92aWRlZCBieSB0aGUgc2Jpb3MgYXQgYm9vdC4KPiA+ID4K PiA+ID4gT2sgeWVhaCBnb29kIHBvaW50LiBJIG5vdGljZWQgdGhhdCB0aGVyZSBhcmUgYSBmZXcg aHVuZHJlZCBieXRlCj4gPiA+IGxvY2F0aW9ucyBpbiB0aGUgdmJpb3MgdGhhdCBhcmUgZGlmZmVy ZW50IGJldHdlZW4gdGhlIHByZS1ib290IHZlcnNpb24KPiA+ID4gZnJvbSBidWlsZCB0aW1lIGFu ZCB0aGUgdmVyc2lvbiBkdW1wZWQgZnJvbSBzeXNmcyBhdCBydW50aW1lLCBzbwo+ID4gPiBzb21l dGhpbmcgbXVzdCBiZSBnZXR0aW5nIHBhdGNoZWQgdXAuCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBB bGV4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1n ZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==