From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: Should PV frontend drivers trust the backends? Date: Tue, 1 May 2018 07:55:39 +0000 Message-ID: <9b85396090414fadaa79d20342237174@AMSPEX02CL03.citrite.net> References: <0e971d69-ba71-cff8-a9b5-cf0d49ebc77e@gmail.com> <20180430173238.GA13598@mail-itl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fDQ8V-0000IV-TQ for xen-devel@lists.xenproject.org; Tue, 01 May 2018 07:55:43 +0000 In-Reply-To: <20180430173238.GA13598@mail-itl> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: =?utf-8?B?J01hcmVrIE1hcmN6eWtvd3NraS1Hw7NyZWNraSc=?= , Oleksandr Andrushchenko Cc: 'Juergen Gross' , xen-devel List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJlayBNYXJjenlrb3dza2kt R8OzcmVja2kNCj4gW21haWx0bzptYXJtYXJla0BpbnZpc2libGV0aGluZ3NsYWIuY29tXQ0KPiBT ZW50OiAzMCBBcHJpbCAyMDE4IDE4OjMzDQo+IFRvOiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8 YW5kcjIwMDBAZ21haWwuY29tPg0KPiBDYzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0 cml4LmNvbT47ICdKdWVyZ2VuIEdyb3NzJw0KPiA8amdyb3NzQHN1c2UuY29tPjsgeGVuLWRldmVs IDx4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+DQo+IFN1YmplY3Q6IFJlOiBbWGVuLWRl dmVsXSBTaG91bGQgUFYgZnJvbnRlbmQgZHJpdmVycyB0cnVzdCB0aGUgYmFja2VuZHM/DQo+IA0K PiBPbiBUaHUsIEFwciAyNiwgMjAxOCBhdCAxMTo0Nzo0MUFNICswMzAwLCBPbGVrc2FuZHIgQW5k cnVzaGNoZW5rbyB3cm90ZToNCj4gPiBPbiAwNC8yNi8yMDE4IDExOjE2IEFNLCBQYXVsIER1cnJh bnQgd3JvdGU6DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy b206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIFttYWlsdG86YW5kcjIwMDBAZ21haWwuY29tXQ0K PiA+ID4gPiBTZW50OiAyNiBBcHJpbCAyMDE4IDA3OjAwDQo+ID4gPiA+IFRvOiBQYXVsIER1cnJh bnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPjsgJ0p1ZXJnZW4gR3Jvc3MnDQo+ID4gPiA+IDxq Z3Jvc3NAc3VzZS5jb20+OyB4ZW4tZGV2ZWwgPHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y Zz4NCj4gPiA+ID4gU3ViamVjdDogUmU6IFtYZW4tZGV2ZWxdIFNob3VsZCBQViBmcm9udGVuZCBk cml2ZXJzIHRydXN0IHRoZQ0KPiBiYWNrZW5kcz8NCj4gPiA+ID4NCj4gPiA+ID4gT24gMDQvMjUv MjAxOCAwNDo0NyBQTSwgUGF1bCBEdXJyYW50IHdyb3RlOg0KPiA+ID4gPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IFhlbi1kZXZlbCBbbWFpbHRvOnhl bi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXQ0KPiBPbg0KPiA+ID4gPiBCZWhh bGYNCj4gPiA+ID4gPiA+IE9mIEp1ZXJnZW4gR3Jvc3MNCj4gPiA+ID4gPiA+IFNlbnQ6IDI1IEFw cmlsIDIwMTggMTM6NDMNCj4gPiA+ID4gPiA+IFRvOiB4ZW4tZGV2ZWwgPHhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZz4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFtYZW4tZGV2ZWxdIFNob3Vs ZCBQViBmcm9udGVuZCBkcml2ZXJzIHRydXN0IHRoZQ0KPiBiYWNrZW5kcz8NCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiBUaGlzIGlzIGEgZm9sbG93dXAgb2YgYSBkaXNjdXNzaW9uIG9uIElSQzoN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgbWFpbiBxdWVzdGlvbiBvZiB0aGUgZGlzY3Vz c2lvbiB3YXM6ICJTaG91bGQgZnJvbnRlbmQgZHJpdmVycw0KPiA+ID4gPiA+ID4gdHJ1c3QgdGhl aXIgYmFja2VuZHMgbm90IGRvaW5nIG1hbGljaW91cyBhY3Rpb25zPyINCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBUaGlzIElNTyBpbmNsdWRlczoNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAx LiBUaGUgZGF0YSBwdXQgYnkgdGhlIGJhY2tlbmQgb24gdGhlIHJpbmcgcGFnZShzKSBpcyBzYW5l IGFuZA0KPiA+ID4gPiA+ID4gICAgICBjb25zaXN0ZW50LCBtZWFuaW5nIHRoYXQgZS5nLiB0aGUg cmVzcG9uc2UgcHJvZHVjZXIgaW5kZXggaXMNCj4gYWx3YXlzDQo+ID4gPiA+ID4gPiAgICAgIGFo ZWFkIG9mIHRoZSBjb25zdW1lciBpbmRleC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAyLiBS ZXNwb25zZSBkYXRhIHdvbid0IGJlIG1vZGlmaWVkIGJ5IHRoZSBiYWNrZW5kIGFmdGVyIHRoZQ0K PiBwcm9kdWNlcg0KPiA+ID4gPiA+ID4gICAgICBpbmRleCBoYXMgYmVlbiBpbmNyZW1lbnRlZCBz aWduYWxpbmcgdGhlIHJlc3BvbnNlIGlzIHZhbGlkLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IDMuIFJlc3BvbnNlIGRhdGEgaXMgc2FuZSwgZS5nLiBhbiBJL08gZGF0YSBsZW5ndGggaXMgbm90 IGxhcmdlciB0aGFuDQo+ID4gPiA+ID4gPiAgICAgIHRoZSBidWZmZXIgb3JpZ2luYWxseSB3YXMu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gNC4gV2hlbiBhIHJlc3BvbnNlIGhhcyBiZWVuIHNl bnQgYWxsIGdyYW50cyBiZWxvbmdpbmcgdG8gdGhlDQo+IHJlcXVlc3QNCj4gPiA+ID4gPiA+ICAg ICAgaGF2ZSBiZWVuIHVubWFwcGVkIGFnYWluIGJ5IHRoZSBiYWNrZW5kLCBtZWFuaW5nIHRoYXQg dGhlDQo+IGZyb250ZW5kDQo+ID4gPiA+ID4gPiAgICAgIGNhbiBhc3N1bWUgdGhlIGdyYW50cyBj YW4gYmUgcmVtb3ZlZCB3aXRob3V0IGNvbmZsaWN0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ IFRvZGF5IG1vc3QgZnJvbnRlbmQgZHJpdmVycyAoYXQgbGVhc3QgaW4gdGhlIExpbnV4IGtlcm5l bCkgc2VlbSB0bw0KPiA+ID4gPiA+ID4gYXNzdW1lIGFsbCBvZiB0aGUgYWJvdmUgaXMgdHJ1ZSAo dGhlcmUgYXJlIHNvbWUgZXhjZXB0aW9ucywgYnV0DQo+IG5ldmVyDQo+ID4gPiA+ID4gPiBmb3Ig YWxsIGl0ZW1zKToNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtIHRoZXkgZG9uJ3QgY2hlY2sg c2FuaXR5IG9mIHJpbmcgaW5kZXggdmFsdWVzDQo+ID4gPiA+ID4gPiAtIHRoZXkgZG9uJ3QgY29w eSByZXNwb25zZSBkYXRhIGludG8gbG9jYWwgbWVtb3J5IGJlZm9yZSBsb29raW5nIGF0DQo+IGl0 DQo+ID4gPiA+ID4gPiAtIHRoZXkgZG9uJ3QgdmVyaWZ5IHJldHVybmVkIGRhdGEgbGVuZ3RoIChv ciBkbyBzbyB2aWEgQlVHX09OKCkpDQo+ID4gPiA+ID4gPiAtIHRoZXkgQlVHKCkgaW4gY2FzZSBv ZiBhIGNvbmZsaWN0IHdoZW4gdHJ5aW5nIHRvIHJlbW92ZSBhIGdyYW50DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gU28gdGhlIGJhc2ljIHF1ZXN0aW9uIGlzOiBzaG91bGQgYWxsIExpbnV4IGZy b250ZW5kIGRyaXZlcnMgYmUNCj4gbW9kaWZpZWQNCj4gPiA+ID4gPiA+IGluIG9yZGVyIHRvIGJl IGFibGUgdG8gdG9sZXJhdGUgYnVnZ3kgb3IgbWFsaWNpb3VzIGJhY2tlbmRzPyBPciBpcw0KPiB0 aGUNCj4gPiA+ID4gPiA+IGxpc3Qgb2YgdHJ1c3QgYWJvdmUgZmluZT8NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBJTU8gZXZlbiBpbiBjYXNlIHRoZSBmcm9udGVuZHMgZG8gdHJ1c3QgdGhlIGJh Y2tlbmRzIHRvIGJlaGF2ZQ0KPiBzYW5lIHRoaXMNCj4gPiA+ID4gPiA+IGRvZXNuJ3QgbWVhbiBk cml2ZXIgZG9tYWlucyBkb24ndCBtYWtlIHNlbnNlLiBEcml2ZXIgZG9tYWlucyBzdGlsbA0KPiBt YWtlDQo+ID4gPiA+ID4gPiBhIFhlbiBob3N0IG1vcmUgcm9idXN0IGFzIHRoZXkgZS5nLiBwcm90 ZWN0IHRoZSBob3N0IGFnYWluc3QgZHJpdmVyDQo+ID4gPiA+ID4gPiBmYWlsdXJlcyBub3JtYWxs eSBsZWFkaW5nIHRvIGEgY3Jhc2ggb2YgZG9tMC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gSSBz ZWUgdGhlIGdlbmVyYWwgcXVlc3Rpb24gYXMgYmVpbmcgYW5hbG9nb3VzIHRvICdzaG91bGQgYSBM aW51eA0KPiBkZXZpY2UNCj4gPiA+ID4gZHJpdmVyIHRydXN0IGl0cyBoYXJkd2FyZScgYW5kIEkg dGhpbmsgdGhlIGFuc3dlciBmb3IgYSBnZW5lcmFsIHB1cnBvc2UNCj4gT1MgbGlrZQ0KPiA+ID4g PiBsaW51eCBpcyAneWVzJy4NCj4gPiA+ID4gPiBOb3csIGhhdmluZyB3b3JrZWQgb24gZmF1bHQg dG9sZXJhbnQgc3lzdGVtcyBpbiBhIHBhc3QgbGlmZSwgdGhlcmUgYXJlDQo+ID4gPiA+IGRlZmlu aXRlbHkgY2FzZXMgd2hlcmUgeW91IHdhbnQgeW91ciBPUyBub3QgdG8gaW1wbGljaXRseSB0cnVz dCBpdHMNCj4gcGVyaXBoZXJhbA0KPiA+ID4gPiBoYXJkd2FyZSBhbmQgaGVuY2Ugc3BlY2lhbCBk ZXZpY2UgZHJpdmVycyBhcmUgdXNlZC4NCj4gPiA+ID4gU28gd2hhdCBkbyB5b3UgZG8gaWYgY291 bnRlcnMgcHJvdmlkZWQgYnkgdGhlIHVudHJ1c3RlZCBIVyBhcmUgb2sNCj4gPiA+ID4gYW5kIHRo ZSBwYXlsb2FkIGlzIG5vdD8NCj4gPiA+IFdlbGwsIHRoYXQgZGVwZW5kcyBvbiB3aGV0aGVyIHRo ZXJlIGlzIGFjdHVhbGx5IGFueSB3YXkgdG8gdmVyaWZ5IHRoZQ0KPiBwYXlsb2FkIGluIGEgZHJp dmVyLiBXaGF0ZXZlciBsYXllciBpbiB0aGUgc3lzdGVtIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUg ZGF0YQ0KPiBuZWVkcyB0byB2ZXJpZnkgaXRzIGludGVncml0eSBpbiBhIGZhdWx0IHRvbGVyYW50 IHN5c3RlbS4gR2VuZXJhbGx5IHRoZSBkcml2ZXIgY2FuDQo+IG9ubHkgYXR0ZW1wdCB0byB2ZXJp ZnkgdGhhdCBpdCdzIGhhcmR3YXJlIGlzIHdvcmtpbmcgYXMgZXhwZWN0IGFuZCBxdWllc2NlIGl0 IGlmDQo+IG5vdC4gRm9yIHRoYXQgcmVhc29uLCBpbiB0aGUgc3lzdGVtcyBJIHdvcmtlZCBvbiwg dGhlIGRyaXZlciBoYWQgdGhlIGFiaWxpdHkgdG8NCj4gY29udHJvbCBGRVRzIHRoYXQgZGlzY29u bmVjdGVkIHBlcmlwaGVyYWwgaC93IGZyb20gdGhlIFBDSSBidXMuDQo+ID4gPg0KPiA+ID4gPiA+ IEkgdGhpbmsgdGhlIHNhbWUgd291bGQgYXBwbHkgZm9yIHZpcnR1YWwgbWFjaGluZXMgaW4gc2l0 dWF0aW9ucyB3aGVyZQ0KPiBhDQo+ID4gPiA+IGRyaXZlciBkb21haW4gaXMgbm90IHdob2xseSBj b250cm9sbGVkIGJ5IGEgaG9zdCBhZG1pbmlzdHJhdG9yIG9yIGlzIG5vdA0KPiA+ID4gPiB0cnVz dGVkIHRvIHRoZSBzYW1lIGV4dGVudCBhcyBkb20wIGZvciBvdGhlciByZWFzb25zOyBpLmUuIHRo ZXkgc2hvdWxkDQo+IGhhdmUNCj4gPiA+ID4gc3BlY2lhbGlzdCBmcm9udGVuZHMuDQo+ID4gPiA+ IEkgYmVsaWV2ZSB3ZSBtaWdodCBiZSBhYmxlIHRvIGV4cHJlc3Mgc29tZSBjb21tb24gc3RyYXRl Z3kgZm9yIHRoZQ0KPiA+ID4gPiBmcm9udGVuZHMuDQo+ID4gPiA+IEkgZG8gdW5kZXJzdGFuZCB0 aG91Z2ggdGhhdCBpdCBhbGwgbmVlZHMgdG8gYmUgZGVjaWRlZCBvbiBjYXNlIGJ5IGNhc2UNCj4g PiA+ID4gYmFzaXMsDQo+ID4gPiA+IGJ1dCBjb21tb24gdGhpbmdzIGNvdWxkIHN0aWxsIGJlIHRo ZXJlLCBlLmcuIGlmIHByb2QvY29ucyBjb3VudGVycyBhcmUNCj4gPiA+ID4gbm90IGluIHN5bmMN Cj4gPiA+ID4gd2hhdCBhIGZyb250ZW5kIG5lZWRzIHRvIGRvOg0KPiA+ID4gPiAgIMKgLSBzaG91 bGQgaXQga2VlcCB0cnlpbmcgdG8gZ2V0IGluIHN5bmMgLSBtaWdodCBiZSBhIGJhZCBpZGVhIGFz IHRoZQ0KPiA+ID4gPiByZXEvcmVzcCBkYXRhDQo+ID4gPiA+ICAgwqDCoCBtYXkgYWxyZWFkeSBi ZWNvbWUgaW5jb25zaXN0ZW50IChuZXQgY2FuIHByb2JhYmx5IHN1cnZpdmUsIGJ1dCBub3QNCj4g PiA+ID4gYmxvY2spDQo+ID4gPiA+ICAgwqAtIHNob3VsZCBpdCB0ZWFyIGRvd24gdGhlIGNvbm5l Y3Rpb24gd2l0aCB0aGUgYmFja2VuZCAtIHRoaXMgbWF5DQo+ID4gPiA+IHJlbmRlciBpbiB0aGUg d2hvbGUNCj4gPiA+ID4gICDCoMKgIHN5c3RlbSBpbnN0YWJpbGl0eSwgZS5nLiBpbWFnaW5lIHlv dSB0ZWFyIGRvd24gYSAiLyIgYmxvY2sgZGV2aWNlDQo+ID4gPiA+ICAgwqAtIHNob3VsZCBpdCBC VUdfT04gYW5kIGRpZQ0KPiA+ID4gPiBUbyBtZSB0aGUgc2Vjb25kIG9wdGlvbiAodGVhciBkb3du IHRoZSBjb25uZWN0aW9uKSBzZWVtcyB0byBiZQ0KPiA+ID4gPiBtb3JlIHJlYXNvbmFibGUsIGFs dGhvdWdoIGl0IGNhbiBzdGlsbCByZW5kZXIgdGhlIGd1ZXN0IHVudXNhYmxlLCBidXQgYXQNCj4g PiA+ID4gbGVhc3QgaXQNCj4gPiA+ID4gZ2l2ZXMgYSBjaGFuY2UgZm9yIHRoZSBndWVzdCB0byBy ZWNvdmVyIGluIGEgcHJvcGVyIHdheQ0KPiA+ID4gPg0KPiA+ID4gQWJzb2x1dGVseSB0aGF0IGNh biBiZSBkb25lIGFuZCBpdCdzIGNlcnRhaW5seSBhIGdvb2QgaWRlYSB0byBiZSBzb21ld2hhdA0K PiBkZWZlbnNpdmUgYnV0LCBhcyB5b3Ugc2F5LCBpdCdzIHF1aXRlIGxpa2VseSB0aGF0IHRoZSBQ ViBwYWlyIGlzIHBhcnQgb2YgYSBjcml0aWNhbA0KPiBzdWJzeXN0ZW0gZm9yIHRoZSBndWVzdCBh bmQgc28gYSBCVUcoKSBtYXkgd2VsbCBiZSB0aGUgYmVzdCBvcHRpb24gdG8gbWFrZQ0KPiBzdXJl IHRoYXQgdGhlIGluZXZpdGFibGUgZ3Vlc3QgY3Jhc2ggYWN0dWFsbHkgY29udGFpbnMgcGVydGlu ZW50IGluZm9ybWF0aW9uLg0KPiANCj4gSW4gc29tZSBjYXNlcyBpbmRlZWQgc3VjaCBkZXZpY2Ug bWlnaHQgYmUgY3JpdGljYWwuIEJ1dCAicXVpdGUgbGlrZWx5Ig0KPiBJTU8gaXNuJ3QgZ29vZCBl bm91Z2ggdG8gYWJhbmRvbiBhbGwgdGhlIG90aGVyIGNhc2VzIGFuZCBjcmFzaCB0aGUNCj4gZG9t YWluIGlmIGFueSBkZXZpY2UgZmFpbHMuDQo+IFRlYXJpbmcgZG93biBtaXNiZWhhdmluZyBjb25u ZWN0aW9uIGlzIGFic29sdXRlbHkgcmVhc29uYWJsZSAoSSBkbyBub3QNCj4gYWR2b2NhdGUgZm9y IHNvbWUgY29tcGxleCByZWNvdmVyeSBhbGdvcml0aG0pLCBidXQgY3Jhc2hpbmcgdGhlIGRvbWFp bg0KPiBpcyBub3QuDQoNClNvIHdoYXQgaGFwcGVucyBpZiB0aGUgYmFja2VuZCBzZXJ2aWNpbmcg dGhlIFZNJ3MgYm9vdCBkaXNrIGZhaWxzPyBJcyBpdCBiZXR0ZXIgdG86DQoNCmEpIEJVRygpL0JT T0Qgd2l0aCBzb21lIG1lYW5pbmdmdWwgc3RhY2sgYW5kIGNvZGUgc3VjaCB0aGF0IGl0J3Mgb2J2 aW91cyB0aGF0IGhhcHBlbmVkLCBzbw0KYikgY292ZXIgdXAgYW5kIHdhaXQgdW50aWwgc29tZXRo aW5nIGZ1cnRoZXIgdXAgdGhlIHN0b3JhZ2Ugc3RhY2sgY3Jhc2hlcyB0aGUgVk0sIHByb2JhYmx5 IHdpdGggc29tZSBlcnJvciB0aGF0J3MganVzdCBhIGdlbmVyaWMgdGltZW91dA0KDQpJJ20gY2xl YXJseSBhZHZvY2F0aW5nIGEpIGJ1dCBpdCdzIHBvc3NpYmxlIGIpIG1heSBiZSBtb3JlIGRlc2ly YWJsZSBpbiBzb21lIHNjZW5hcmlvcy4gSSB0aGluayB0aGUgY2hvaWNlIGlzIHVwIHRvIHdob2V2 ZXIgaXMgd3JpdGluZyB0aGUgZnJvbnRlbmQgYW5kIG5vLW9uZSBlbHNlIHNob3VsZCBkZWNpZGUg dGhlaXIgcG9saWN5IGZvciB0aGVtLg0KDQo+IA0KPiA+ID4NCj4gPiA+ID4gQW5kLCBpZiBteSBh c3N1bXB0aW9uIGlzIGNvcnJlY3QsIHdlIHN0aWxsIGRvIHRydXN0IHRoZSBjb250ZW50cyBvZiB0 aGUNCj4gPiA+ID4gcmVxdWVzdHMNCj4gPiA+ID4gYW5kIHJlc3BvbnNlcywgZS5nLiB0aGUgcGF5 bG9hZCBpcyBzdGlsbCB0cnVzdGVkLg0KPiA+ID4gV2h5IHNob3VsZCB0aGUgcGF5bG9hZCBiZSBh bnkgbW9yZSB0cnVzdGVkIHRoYW4gdGhlIGNvbnRlbnQgb2YgdGhlDQo+IHNoYXJlZCByaW5nPyBU aGV5IGFyZSBib3RoIHNoYXJlZCB3aXRoIHRoZSBiYWNrZW5kIGFuZCB0aGVyZWZvcmUgY2FuIGJl DQo+IGNvcnJ1cHRlZCB0byB0aGUgc2FtZSBleHRlbnQuDQo+ID4gVGhpcyBpcyBleGFjdGx5IG15 IHBvaW50OiBpZiB3ZSBvbmx5IHRyeSB0byBwcm90ZWN0IGZyb20gaW5jb25zaXN0ZW50DQo+ID4g cHJvZC9jb25zIHRoZW4NCj4gPiB0aGlzIHByb3RlY3Rpb24gaXMgc3RpbGwgaW5jb21wbGV0ZSBh cyB0aGUgcGF5bG9hZCBtYXkgYmUgdGhlIHNvdXJjZSBvZg0KPiA+IGZhaWx1cmUuDQo+IA0KPiBX ZWxsLCB5b3UgY2FuIHRha2UgZXh0cmEgbWVhc3VyZXMsIGV4dGVybmFsIHRvIHRoZSBkcml2ZXIs IHRvDQo+IHByb3RlY3QgYWdhaW5zdCBtYWxpY2lvdXMgcGF5bG9hZCAobGlrZSBlbmNyeXB0aW9u IG1lbnRpb25lZCBieSBBbmRyZXcsDQo+IG9yIGRtLXZlcml0eSBmb3IgYmxvY2sgZGV2aWNlcyku IEJ1dCB5b3UgY2FuJ3QgZG8gdGhlIHNhbWUgYWJvdXQgdGhlDQo+IGRyaXZlciBpdHNlbGYgKHJp bmcgaGFuZGxpbmcgZXRjKS4NCj4gDQoNCkFzIEkgc2FpZCwgdmVyaWZpY2F0aW9uIHNob3VsZCBi ZSBkb3duIHRvIHRoZSBsYXllciB0aGF0IGhhcyB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24uDQoN Cj4gT2YgY291cnNlIGJhY2tlbmQgd2lsbCBiZSBhYmxlIHRvIHBlcmZvcm0gYSBEb1MgdG8gc29t ZSBleHRlbmQgaW4gYWxsDQo+IHRoZSBjYXNlcywgYXQgbGVhc3QgYnkgc3RvcHBpbmcgcmVzcG9u ZGluZyB0byByZXF1ZXN0cy4gQnV0IGtlZXAgaW4gbWluZA0KPiB0aGF0IHJvb3QgZnMgaXMgbm90 IHRoZSBvbmx5IGRldmljZSBvdXQgdGhlcmUuIFRoZXJlIGFyZSBhbHNvIG90aGVyDQo+IGJsb2Nr IGRldmljZSwgbmV0d29yayBpbnRlcmZhY2VzIGV0Yy4gQW5kIG1pc2JlaGF2aW5nIGJhY2tlbmQg c2hvdWxkDQo+IF9ub3RfIGJlIGFibGUgdG8gdGFrZSBvdmVyIGZyb250ZW5kIGRvbWFpbiBpbiB0 aG9zZSBjYXNlcy4gQW5kIGlkZWFsbHkNCj4gYWxzbyBzaG91bGRuJ3QgYWxzbyBiZSBhYmxlIHRv IGNyYXNoIGl0IChpZiBkZXZpY2UgaXNuJ3QgY3JpdGljYWwgZm9yDQo+IGRvbVUpLg0KPiANCg0K SSBzdGlsbCB0aGluayB0aGF0IGlzIHRoZSBjaG9pY2Ugb2YgdGhlIGZyb250ZW5kLiBZZXMsIHRo ZXkgY2FuIGJlIHByb2dyYW1tZWQgZGVmZW5zaXZlbHkgYnV0IGZvciBzb21lIHVzZWNhc2VzIGl0 IG1heSBqdXN0IG5vdCBiZSB0aGF0IGltcG9ydGFudC4NCg0KPiBJZiB5b3Ugd2FudCBzb21lIHJl YWwgd29ybGQgdXNlIGNhc2VzIGZvciB0aGlzLCBoZXJlIGFyZSB0d28gZnJvbSBRdWJlcw0KPiBP UzoNCj4gDQo+IDEuIEJsb2NrIGRldmljZXMgLSBiYXNlIHN5c3RlbSBkZXZpY2VzICgvLCAvaG9t ZSBlcXVpdmFsZW50IGV0YykgaGF2ZQ0KPiBiYWNrZW5kcyBpbiBkb20wICgqKSwgYnV0IHRoZXJl IGlzIGFsc28gYW4gb3B0aW9uIHRvIHVzZSBibG9jayBkZXZpY2VzDQo+IGV4cG9ydGVkIGJ5IG90 aGVyIGRvbWFpbnMuIEZvciBleGFtcGxlIHRoZSBvbmUgaGFuZGxpbmcgVVNCIGNvbnRyb2xsZXJz Lg0KPiBTbywgd2hlbiB5b3UgcGx1ZyBVU0Igc3RpY2ssIG9uZSBkb21haW4gaGFuZGxlIGFsbCB0 aGUgVVNCIG5hc3R5IHN0dWZmLA0KPiBhbmQgZXhwb3J0IGl0IGFzIGEgcGxhaW4gZGV2aWNlIHRv IGFub3RoZXIgZG9tYWluIHdoZW4gdXNlciBjYW4gbW91bnQNCj4gTFVLUyBjb250YWluZXIgc3Rv cmVkIHRoZXJlLiBXaGF0ZXZlciBoYXBwZW5zIHRoZXJlLCBub3RoaW5nIGZyb20gdGhhdA0KPiBV U0Igc3RpY2sgdG91Y2hlcyBkb20wIGF0IGFueSB0aW1lLg0KPiANCj4gMi4gTmV0d29yayBkZXZp Y2VzIC0gdGhlcmUgYXJlIG5vIG5ldHdvcmsgYmFja2VuZHMgaW4gZG9tMCBhdCBhbGwuIFRoZXJl DQo+IGlzIG9uZSAob3IgbW9yZSkgZGVkaWNhdGVkIGRvbWFpbiBmb3IgaGFuZGxpbmcgTklDcywg dGhlbiB0aGVyZSBpcw0KPiAocG9zc2libHkgYSB0cmVlIG9mKSBkb21haW4ocykgcm91dGluZyB0 aGUgdHJhZmZpYy4gSW4gc29tZSBjYXNlcyBhIFZNDQo+IGZhY2luZyBhY3R1YWwgbmV0d29yayAo d2hlcmUgdGhlIGJhY2tlbmQgcnVucykgaXMgY29uc2lkZXJlZCBsZXNzDQo+IHRydXN0ZWQgdGhh biBhIFZNIHVzaW5nIHRoYXQgbmV0d29yayAod2hlcmUgdGhlIGZyb250ZW5kIHJ1bnMpLg0KDQpC dXQsIHdpdGhvdXQgcmV2b2NhYmxlIGdyYW50cyB0aGF0IGJhY2tlbmQgY291bGQgc3RpbGwgRG9T IHRoZSBmcm9udGVuZCwgcmlnaHQ/DQoNCj4gDQo+IEJUVyBTaW5jZSBYU0EtMTU1IHdlIGRvIGhh dmUgc29tZSBhZGRpdGlvbmFsIHBhdGNoZXMgZm9yIGJsb2NrIGFuZA0KPiBuZXR3b3JrIGZyb250 ZW5kLCBtYWtpbmcgc2ltaWxhciBjaGFuZ2VzIGFzIGRvbmUgdG8gYmFja2VuZHMgYXQgdGhhdA0K PiB0aW1lLiBJJ2xsIHJlc2VuZCB0aGVtIGluIGEgbW9tZW50Lg0KPiANCj4gKCopIHdlIHN0aWxs IGhhdmUgcGxhbnMgdG8gc3VwcG9ydCBhbHNvIHVudHJ1c3RlZCBiYWNrZW5kcyBmb3IgYmFzZQ0K PiBzeXN0ZW0sIHdpdGggZG9tVSB2ZXJpZnlpbmcgYWxsIHRoZSBkYXRhIGl0IGdldHMgKGRtLXZl cml0eSwgZG0tY3J5cHQpLg0KPiBCdXQgaXQgaXNuJ3QgdGhlcmUgeWV0Lg0KDQpNYXliZSB0aGUg ZnJvbnRlbmQgc2hvdWxkIGFkdmlzZWQgb24gdGhlIHRydXN0IGxldmVsIG9mIGEgYmFja2VuZCBz byB0aGF0IGl0IGNhbiBhcHBseSBhdWRpdGluZyBzaG91bGQgaXQgd2lzaCB0by4gSWYgdGhlIGJh Y2tlbmQgd2VyZSBydW5uaW5nIGluIGRvbTAgdGhlbiB0aGVyZSB3b3VsZCBiZSBsaXR0bGUgcG9p bnQsIGJ1dCBhIGZyb250ZW5kIG1heSB3aXNoIHRvIGJlIG1vcmUgY2FyZWZ1bCB3aGVuIGUuZy4g dGhlIGRvbWFpbiBpcyBhIHRydXN0ZWQgZHJpdmVyIGRvbWFpbiAoYnV0IHdpdGggbm8gZG0gcHJp dikuIFRoZXJlIGhhdmUgYWxzbyBiZWVuIGRpc2N1c3Npb25zIGFib3V0IHNraXBwaW5nIHRoZSB1 c2Ugb2YgZ3JhbnRzIHdoZW4gdGhlIGJhY2tlbmQgaGFzIG1hcHBpbmcgcHJpdmlsZWdlLCBmb3Ig cGVyZm9ybWFuY2UgcmVhc29ucywgc28gbWF5YmUgdGhhdCBjb3VsZCBiZSB3b3JrZWQgaW4gdG9v Lg0KDQogIFBhdWwNCg0KPiANCj4gLS0NCj4gQmVzdCBSZWdhcmRzLA0KPiBNYXJlayBNYXJjenlr b3dza2ktR8OzcmVja2kNCj4gSW52aXNpYmxlIFRoaW5ncyBMYWINCj4gQTogQmVjYXVzZSBpdCBt ZXNzZXMgdXAgdGhlIG9yZGVyIGluIHdoaWNoIHBlb3BsZSBub3JtYWxseSByZWFkIHRleHQuDQo+ IFE6IFdoeSBpcyB0b3AtcG9zdGluZyBzdWNoIGEgYmFkIHRoaW5nPw0KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==