From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH v6 1/4] xen: introduce SYMBOL Date: Fri, 18 Jan 2019 15:05:16 -0800 (PST) Message-ID: References: <5C3F051B020000780020E304@prv1-mh.provo.novell.com> <1CACC1FB020000D800417A66@prv1-mh.provo.novell.com> <5C3D97FE020000780020D9F3@prv1-mh.provo.novell.com> <5C3F051B020000780020E304@prv1-mh.provo.novell.com> <529ED2F90200004D00417A66@prv1-mh.provo.novell.com> <5C406AEA020000780020E9FA@prv1-mh.provo.novell.com> <5C3D97FE020000780020D9F3@prv1-mh.provo.novell.com> <5C3F051B020000780020E304@prv1-mh.provo.novell.com> <529ED2F90200004D00417A66@prv1-mh.provo.novell.com> <5C406AEA020000780020E9FA@prv1-mh.provo.novell.com> <76A2DEED0200005600417A66@prv1-mh.provo.novell.com> <5C41A256020000780020EF25@prv1-mh.provo.novell.com> 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 1gkdCw-0000II-03 for xen-devel@lists.xenproject.org; Fri, 18 Jan 2019 23:05:50 +0000 In-Reply-To: <5C41A256020000780020EF25@prv1-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Jan Beulich Cc: Juergen Gross , Stefano Stabellini , Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Julien Grall , Stewart Hildebrand , xen-devel List-Id: xen-devel@lists.xenproject.org T24gRnJpLCAxOCBKYW4gMjAxOSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4gPj4+IE9uIDE4LjAxLjE5 IGF0IDAyOjI0LCA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiBPbiBUaHUsIDE3 IEphbiAyMDE5LCBKYW4gQmV1bGljaCB3cm90ZToKPiA+PiA+Pj4gT24gMTcuMDEuMTkgYXQgMDE6 MzcsIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPiB3cm90ZToKPiA+PiA+IE9uIFdlZCwgMTYgSmFu IDIwMTksIEphbiBCZXVsaWNoIHdyb3RlOgo+ID4+ID4+IEluIGFueSBldmVudCAtIHNpbmNlIGlu dGVybWVkaWF0ZSB2YXJpYWJsZXMgbWVyZWx5IGhpZGUgdGhlCj4gPj4gPj4gY2FzdGluZyBmcm9t IHRoZSBjb21waWxlciwgYnV0IHRoZXkgZG9uJ3QgcmVtb3ZlIHRoZSBjYXN0cywgdGhlCj4gPj4g Pj4gc29sdXRpb24gaW52b2x2aW5nIGNhc3RzIGlzIGJldHRlciBpbW8sIGZvciBpbmN1cnJpbmcg bGVzcyBvdmVyaGVhZC4KPiA+PiA+IAo+ID4+ID4gVGhpcyBpcyB3aGVyZSBJIGNvbXBsZXRlbHkg ZGlzYWdyZWUuIFRoZSBpbnRlcm1lZGlhdGUgdmFyaWFibGVzIGFyZSBub3QKPiA+PiA+IGhpZGlu ZyBjYXN0cyBmcm9tIHRoZSBjb21waWxlci4gVGhlcmUgd2VyZSBuZXZlciBhbnkgcG9pbnRlcnMg aW4gdGhpcwo+ID4+ID4gY2FzZS4gIFRoZSBsaW5rZXIgY3JlYXRlcyAic3ltYm9scyIsIG5vdCBw b2ludGVycywgY29tcGxldGVseSBpbnZpc2libGUKPiA+PiA+IGZyb20gQyBsYW5kLiBBc3NlbWJs eSB1c2VzIHRoZXNlIHN5bWJvbHMgdG8gaW5pdGlhbGl6ZSB2YXJpYWJsZXMuIFdlCj4gPj4gPiBl eHBvc2UgdGhlc2UgYXNzZW1ibHkgdmFyaWFibGVzIGFzIGludGVnZXIgdG8gQyBsYW5kcy4gTEQg c2NyaXB0cyBhbmQKPiA+PiA+IGFzc2VtYmx5IGhhdmUgdGhlaXIgb3duIHRlcm1pbm9sb2d5IGFu ZCBydWxlczogbmVpdGhlciAiX3N0YXJ0IiBub3IKPiA+PiA+ICJzdGFydCIgYXJlIHBvaW50ZXJz IGF0IGFueSBwb2ludCBpbiB0aW1lLiBUaGUgb3BlcmF0aW9ucyBkb25lIGluIHZhci5TCj4gPj4g PiBpcyBub3QgYSBjYXN0LiBUaGUgQyBzcGVjIGlzIGhhcHB5LCB0aGUgY29tcGlsZXIgaXMgaGFw cHksIE1JU1JBLUMgaXMKPiA+PiA+IGhhcHB5LiBBbmQgd2UgZ2V0IHRvIGF2b2lkIHRoZSB1Z2x5 IFNZTUJPTCBtYWNybyB0aGF0IExpbnV4IHVzZXMuIEl0IGlzCj4gPj4gPiByZWFsbHkgYSB3aW4t d2luLgo+ID4+IAo+ID4+IFdlbGwsIHRoYXQncyBhIHBvc2l0aW9uIG9uZSBjYW4gdGFrZS4gQnV0 IHdlIGhhdmUgdG8gc2V0dGxlIG9uIGFub3RoZXIKPiA+PiBhc3BlY3QgdGhlbiBmaXJzdDogRG9l cyB3aGF0IGlzIG5vdCBkb25lIGluIEMgdW5kZXJseSBDJ3MgcnVsZXM/IEkKPiA+PiB0aG91Z2h0 IHlvdSB3ZXJlIG9mIHRoZSBvcGluaW9uIHRoYXQgd2hhdCBjb21lcyBmcm9tIGxpbmtlciBzY3Jp cHRzCj4gPj4gZG9lcy4gSW4gd2hpY2ggY2FzZSB3aGF0IGNvbWVzIGZyb20gYXNzZW1ibHkgZmls ZXMgb3VnaHQgdG8sIHRvby4KPiA+PiAoRkFPRCBteSBpbXBsaWNhdGlvbiBpczogSWYgdGhlIGFu c3dlciBpcyB5ZXMsIGJvdGggYXBwcm9hY2hlcwo+ID4+IHZpb2xhdGUgQydzIHJ1bGVzLiBJZiB0 aGUgYW5zd2VyIGlzIG5vLCBubyBjaGFuZ2UgaXMgbmVlZGVkIGF0IGFsbC4pCj4gPiAKPiA+IEdy ZWF0IHF1ZXN0aW9uLCB0aGF0IGlzIHRoZSBjb3JlIG9mIHRoZSBpc3N1ZS4gQWxzbywgbGV0IG1l IHByZW1pc2UgdGhhdAo+ID4gSSBhZ3JlZSBvbiB0aGUgY29tbWVudHMgeW91IG1hZGUgb24gdGhl IHBhdGNoZXMgKEkgZGlzbGlrZSAic3RhcnRfIgo+ID4gdG9vKSwgYW5kIEkgY2FuIGFkZHJlc3Mg dGhlbSBpZiB3ZSBhZ3JlZSB0byBjb250aW51ZSBkb3duIHRoaXMgcGF0aC4KPiA+IAo+ID4gQnV0 IG5vLCBJIGRvIG5vdCB0aGluayB0aGF0IHdoYXQgaXMgZG9uZSBvdXRzaWRlIG9mIEMtbGFuZCBz aG91bGQgZm9sbG93Cj4gPiBDIHJ1bGVzLiBCdXQgSSBkbyBub3QgYWdyZWUgd2l0aCB5b3VyIGNv bmNsdXNpb24gdGhhdCBpbiB0aGF0IGNhc2UgdGhlcmUKPiA+IGlzIG5vIGRpZmZlcmVuY2UgYmV0 d2VlbiB0aGUgYXBwcm9hY2hlcy4gTGV0J3MgZ2V0IG1vcmUgaW50byB0aGUKPiA+IGRldGFpbHMu Cj4gPiAKPiA+IAo+ID4gMSkgU1lNQk9MX0hJREUgcmV0dXJuaW5nIHBvaW50ZXIgdHlwZQo+ID4g Cj4gPiBMZXQncyB0YWtlIF9zdGFydCBhbmQgX2VuZCBhcyBhbiBleGFtcGxlLiBfc3RhcnQgaXMg Ym9ybiBhcyBhIGxpbmtlcgo+ID4gc3ltYm9sLCBhbmQgaXQgYmVjb21lcyBhIEMgcG9pbnRlciB3 aGVuIHdlIGRvOgo+ID4gCj4gPiAgIGV4dGVybiBjaGFyIF9zdGFydFtdLCBfZW5kW10KPiA+IAo+ ID4gTm93IGl0IGlzIGEgcG9pbnRlciAoYWN0dWFsbHkgSSBzaG91bGQgc2F5IGFuIGFycmF5LCBi dXQgbGV0J3MgcHJldGVuZAo+ID4gdGhleSBhcmUgdGhlIHNhbWUgdGhpbmcgZm9yIHRoaXMgZGlz Y3Vzc2lvbikuCj4gPiAKPiA+IFdoZW4gd2UgZG86Cj4gPiAKPiA+ICAgU1lNQk9MX0hJREUoX2Vu ZCkgLSBTWU1CT0xfSElERShfc3RhcnQpCj4gPiAKPiA+IFdlIGFyZSBzdGlsbCBzdWJ0cmFjdGlu ZyBwb2ludGVyczogdGhlIHBvaW50ZXJzIHJldHVybmVkIGJ5IFNZTUJPTF9ISURFLgo+ID4gV2Ug Y2Fubm90IHByb3ZlIHRoYXQgdGhleSBhcmUgcG9pbnRlcnMgdG8gdGhlIHNhbWUgb2JqZWN0IG9y IHN1YnNlcXVlbmNlCj4gPiBvYmplY3RzIGluIG1lbW9yeSwgc28gaXQgaXMgdW5kZWZpbmVkIGJl aGF2aW9yLCB3aGljaCBpcyBub3QgYWxsb3dlZC4KPiAKPiBTdG9wLiBOby4gV2UgdmVyeSBtdWNo IGNhbiBwcm92ZSB0aGV5IGFyZSAtIF9lbmQgcG9pbnRzIGF0Cj4gb25lIHBhc3QgdGhlIGxhc3Qg ZWxlbWVudCBvZiBfc3RhcnRbXS4gSXQgaXMgdGhlIGNvbXBpbGVyIHdoaWNoCj4gY2FuJ3QgcHJv dmUgdGhlIG9wcG9zaXRlLCBhbmQgaGVuY2UgaXQgY2FuJ3QgbGV2ZXJhZ2UKPiB1bmRlZmluZWQg YmVoYXZpb3IgZm9yIG9wdGltaXphdGlvbiBwdXJwb3Nlcy4KClRoaXMgaXMgYW4gaW50ZXJlc3Rp bmcgY29tbWVudC4gSG93ZXZlciwgZXZlbiBmb3Igbm9ybWFsIHBvaW50ZXJzIGl0IGlzCnVucmVs aWFibGUgdG8gY291bnQgb24gb25lIHBvaW50aW5nIG9uZSBwYXN0IHRoZSBsYXN0IGVsZW1lbnQg b2YgdGhlCm90aGVyLiBUaGlzIHdhcyB3ZWxsIGV4cGxhaW5lZCBpbiB0aGUgR0NDIHRocmVhZCBs aW5rZWQgZWFybGllciBpbiB0aGlzCnRocmVhZC4gVGhlIHZpc2lvbiBvZiBhdCBsZWFzdCBvbmUg b2YgdGhlIEdDQyBtYWludGFpbmVycyBpcyB0aGF0IHRoZQpjb21waWxlciBpcyBmcmVlIHRvIHBs YWNlIHRoaW5ncyBpbiBtZW1vcnkgd2hlcmUgaXQgd2lzaGVzLCBzbyBhcyBhCnByb2dyYW1tZXIg eW91IGNhbm5vdCBjb3VudCBvbiBwb2ludGVycyBwb2ludGluZyBvbmUgcGFzdCB0aGUgbGFzdApl bGVtZW50IG9mIHRoZSBvdGhlci4gRXZlci4gSW4gdGhpcyBjYXNlLCB3aGVyZSBfc3RhcnQgYW5k IF9lbmQgYXJlCmRlZmluZWQgb3V0c2lkZSBvZiBDLWxhbmQsIEkgdGhpbmsgaXQgaXMgZXZlbiBt b3JlIHRydWUsIGFuZCBpdCByZW1haW5zCnVuZGVmaW5lZC4KCk1vcmVvdmVyLCBJIHdlbnQgYmFj ayB0byBNSVNSQUMgKGZpbmFsbHkgSSBoYXZlIGEgY29weSkgYW5kIHJ1bGUgMTguMgpzYXlzOiAi c3VidHJhY3Rpb24gYmV0d2VlbiBwb2ludGVycyBzaGFsbCBvbmx5IGJlIGFwcGxpZWQgdG8gcG9p bnRlcnMKdGhhdCBhZGRyZXNzIGVsZW1lbnRzIG9mIHRoZSBzYW1lIGFycmF5Ii4gU28sIGFsbCB0 aGUgZXZpZGVuY2Ugd2UgaGF2ZQpzZWVtcyB0byBzYXkgdGhhdCB3ZSBjYW5ub3QgcmVseSBvbiBf ZW5kIHBvaW50aW5nIG9uZSBwYXN0IHRoZSBsYXN0CmVsZW1lbnQgb2YgX3N0YXJ0IGluIHRoaXMg bWF0dGVyLgoKCj4gPiAzKSB2YXIuUyArIHN0YXJ0XyBhcyB1bnNpZ25lZCBsb25nCj4gPiAKPiA+ IFdpdGggdGhpcyBhcHByb2FjaCwgX3N0YXJ0IGlzIGJvcm4gYXMgYSBsaW5rZXIgc3ltYm9sLiBJ dCBpcyBuZXZlcgo+ID4gZXhwb3J0ZWQgdG8gQywgc28gZnJvbSBDIHBvaW50IG9mIHZpZXcsIGl0 IGRvZXNuJ3QgZXhpc3QuIFRoZXJlIGlzCj4gPiBhbm90aGVyIHZhcmlhYmxlIG5hbWVkICJzdGFy dF8iIGRlZmluZWQgaW4gYXNzZW1ibHkgYW5kIGluaXRpYWxpemVkIHRvCj4gPiBfc3RhcnQuIE5v dyB3ZSBnbyBpbnRvIEMgbGFuZCB3aXRoOgo+ID4gCj4gPiAgIGV4dGVybiB1aW50cHRyX3Qgc3Rh cnRfLCBlbmRfCj4gPiAKPiA+IHN0YXJ0XyBhbmQgZW5kXyBhcmUgdWludHB0cl90IGZyb20gdGhl IGJlZ2lubmluZyBmcm9tIEMgcG9pbnQgb2Ygdmlldy4KPiA+IFRoZXkgaGF2ZSBuZXZlciBiZWVu IHBvaW50ZXJzIG9yIGluIGFueSB3YXkgY29ubmVjdGVkIHRvIF9zdGFydC4gVGhleQo+ID4gYXJl ICJjbGVhbiIuCj4gPiAKPiA+IFdoZW4gd2UgZG86Cj4gPiAKPiA+ICAgX2VuZCAtIF9zdGFydAo+ ID4gCj4gPiBpdCBpcyBhIHN1YnRyYWN0aW9uIGJldHdlZW4gdWludHB0cl90LCB3aGljaCBpcyBh bGxvd2VkLiBXaGVuIHdlIGRvOgo+ID4gCj4gPiAgICAgZm9yICggY2FsbCA9IChjb25zdCBpbml0 Y2FsbF90ICopaW5pdGNhbGxfc3RhcnRfOwo+ID4gICAgICAgICAgICh1aW50cHRyX3QpY2FsbCA8 IHByZXNtcF9pbml0Y2FsbF9lbmRfOwo+ID4gCj4gPiBUaGUgY29tcGFyaXNvbiBpcyBzdGlsbCBi ZXR3ZWVuIHVpbnRwdHJfdCB0eXBlcywgYW5kIHRoZSB2YWx1ZSBvZiAiY2FsbCIKPiA+IHN0aWxs IGNvbWVzIGZyb20gYW4gdW5zaWduZWQgbG9uZyBpbml0aWFsbHkuIFRoZXJlIGlzIG5ldmVyIGEg Y29tcGFyaXNvbgo+ID4gYmV0d2VlbiBkdWJpb3VzIHBvaW50ZXJzLiAoSW50ZXJnZXIgdG8gcG9p bnRlciBjb252ZXJzaW9ucyBhbmQgcG9pbnRlcgo+ID4gdG8gaW50ZWdlciBjb252ZXJzaW9ucyBh cmUgYWxsb3dlZCBieSBNSVNSQSB3aXRoIHNvbWUgbGltaXRhdGlvbnMsIGJ1dCBJCj4gPiBhbSBk b3VibGUtY2hlY2tpbmcuKSBFdmVuOgo+ID4gCj4gPiAgICAodWludHB0cl90KXJhbmRvbV9wb2lu dGVyIDwgcHJlc21wX2luaXRjYWxsX2VuZF8KPiA+IAo+ID4gd291bGQgYmUgYWNjZXB0YWJsZSBi ZWNhdXNlIHByZXNtcF9pbml0Y2FsbF9lbmRfIGlzIGFuIGludGVnZXIgYW5kIGhhcwo+ID4gYWx3 YXlzIGJlZW4gYW4gaW50ZWdlciBmcm9tIEMgcG9pbnQgb2Ygdmlldy4KPiAKPiBXZWxsLCBhcyBz YWlkIC0gdGhpcyBpcyBvbmUgb2YgdGhlIHBvc3NpYmxlIHBvc2l0aW9ucyB0byB0YWtlLiBQZXJz b25hbGx5Cj4gSSBzZWUgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBoZWxwZXIgc3ltYm9scyBk ZWZpbmVkIGluCj4gYXNzZW1ibHkgc291cmNlcywgb3IgaW4gQyBzb3VyY2VzIHRoZSBvYmplY3Qg ZmlsZXMgZm9yIHdoaWNoIGFyZSBuZXZlcgo+IG1hZGUgcGFydCBvZiBwb3RlbnRpYWwgd2hvbGUg cHJvZ3JhbSBvcHRpbWl6YXRpb24uIAoKSSBkb24ndCB0aGluayB0aGlzIGlzIHRoZSBjYXNlIGZv ciBNSVNSQUMuIEMgcnVsZXMgYXBwbHkgdG8gQy4gT3RoZXIKcnVsZXMgYXBwbHkgdG8gYXNzZW1i bHkgYW5kIGxpbmtlciBzY3JpcHRzLiBUaGlzIGlzIHNvbWV0aGluZyB0aGF0CnNob3VsZCBiZSBl YXN5IHRvIGNoZWNrLCBhbmQgSSBob3BlIHRoYXQgU3Rld2FydCBzaG91bGQgYmUgYWJsZSB0bwpj b25maXJtLgoKCj4gVXNpbmcgQyBmaWxlcyBmb3IgdGhpcyBpcyBzdGlsbCBpbiBjb25mbGljdCB3 aXRoIHRoZSBzdXBwb3NlZAo+IHVuZGVmaW5lZCBiZWhhdmlvciwgYnV0IEkgdGhpbmsgeW91IGFn cmVlIHRoYXQgQyBhbmQgYXNzZW1ibHkgZmlsZXMKPiBjb3VsZCBiZSBzZXQgdXAgc3VjaCB0aGF0 IHRoZSByZXN1bHRpbmcgYmluYXJ5IGRhdGEgaXMgaWRlbnRpY2FsLiBJbgo+IHdoaWNoIGNhc2Ug aXQgaXMgYm9ndXMgdG8gY2FsbCBvbmUgc2F0aXNmYWN0b3J5LCBidXQgbm90IHRoZSBvdGhlci4K Ckkgc2VlIHdoYXQgeW91IGFyZSBzYXlpbmcsIGJ1dCBpdCBkb2Vzbid0IHdvcmsgdGhhdCB3YXkg ZnJvbSBhIHNwZWMKY29tcGxpYW5jZSBwb2ludCBvZiB2aWV3LgoKCj4gPiBIb3dldmVyLCB0aGVy ZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVkIG5vdCBjb3JyZWN0bHkgc29sdmVkIGJ5IHY4 Cj4gPiBvZiB0aGUgc2VyaWVzLiBGb3Igc3RhcnRlcnM6IAo+ID4gCj4gPiAgICAgICAgIGFwcGx5 X2FsdGVybmF0aXZlcygoc3RydWN0IGFsdF9pbnN0ciAqKWFsdF9pbnN0cnVjdGlvbnNfLAo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cnVjdCBhbHRfaW5zdHIgKilhbHRfaW5zdHJ1 Y3Rpb25zX2VuZF8pOwo+ID4gCj4gPiBJIGNhbiBzZWUgaG93IHRoZSBwb2ludGVycyBjb21wYXJp c29ucyBpbiBhcHBseV9hbHRlcm5hdGl2ZXMgY291bGQgYmUKPiA+IGNvbnNpZGVyZWQgd3Jvbmcg Z2l2ZW4gdGhlIHdheSB0aGUgcG9pbnRlcnMgYXJlIGluaXRpYWxpemVkOgo+ID4gCj4gPiAgICAg Zm9yICggYSA9IGJhc2UgPSBzdGFydDsgYSA8IGVuZDsgYSsrICkKPiA+ICAgICB7Cj4gPiAKPiA+ IHN0YXJ0IGFuZCBlbmQgY29tZSBmcm9tIGFsdF9pbnN0cnVjdGlvbnNfIGFuZCBhbHRfaW5zdHJ1 Y3Rpb25zX2VuZF8uIEl0Cj4gPiBkb2Vzbid0IG1hdHRlciB0aGF0IGFsdF9pbnN0cnVjdGlvbnNf IGFuZCBhbHRfaW5zdHJ1Y3Rpb25zX2VuZF8gYXJlCj4gPiAic3BlY2lhbCIsIHRoZXkgY291bGQg YmUgcGVyZmVjdGx5IG5vcm1hbCBpbnRlZ2VycyBhbmQgd2Ugd291bGQgc3RpbGwKPiA+IGhhdmUg dGhlIHNhbWUgcHJvYmxlbTogd2UgY2Fubm90IHByb3ZlIHRoYXQgInN0YXJ0IiBhbmQgImVuZCIg cG9pbnQgdG8KPiA+IHRoZSBzYW1lIG9iamVjdCBvciBzdWJzZXF1ZW50IG9iamVjdHMgaW4gbWVt b3J5Lgo+ID4gCj4gPiBUaGUgd2F5IHRvIGZpeCBpdCBpcyBieSBjaGFuZ2luZyB0aGUgcGFyYW1l dGVycyBvZiBhcHBseV9hbHRlcm5hdGl2ZXMgdG8KPiA+IGludGVyZ2VyIHR5cGVzLCBtYWtpbmcg Y29tcGFyaXNvbiBiZXR3ZWVuIGludGVnZXJzLCBhbmQgb25seSB1c2luZwo+ID4gcG9pbnRlcnMg dG8gYWNjZXNzIHRoZSBkYXRhLgo+IAo+IFlvdSBrbm93IG15IHBvc2l0aW9uIG9uIGNhc3RzIGZy b20gaW50ZWdlciB0byBwb2ludGVyIHR5cGVzLCBlc3BlY2lhbGx5Cj4gb25lcyB0YWtpbmcgYSB0 eXBlIG91dCBvZiB0aGluIGFpci4gVGhpcyBhcHBsaWVzIHRvIHlvdXIgYWRkaXRpb24gdG8gdGhl Cj4gYXBwbHlfYWx0ZXJuYXRpdmVzKCkgY29uc3RydWN0IGFzIHdlbGwgYXMgdGhlIGFsdGVybmF0 aXZlIG9mIGFkZGluZyBzdWNoCj4gaW4gb3JkZXIgdG8gYWNjZXNzIG1lbW9yeS4gVGhlIHF1b3Rl IGZyb20gdGhlIHN0YW5kYXJkIHRoYXQgSSBnYXZlCj4gbWFrZXMgc3VjaCBjYXN0cyBub3QgcHJv dmFibHkgKGJ5IHRoZSBjb21waWxlcikgZGVmaW5lZCBiZWhhdmlvciBhcwo+IHdlbGwsIHNvIGl0 IGFsbCBib2lscyBkb3duIHRvIHRoZSBzYW1lIGRpc3RpbmN0aW9uIGFzIHBvaW50ZWQgb3V0IGFi b3ZlIGluCj4gdGhlIGZpcnN0IHBhcnQgb2YgbXkgcmVwbHkgaGVyZTogX1dlXyBjYW4gcHJvdmUg aXQsIGJ1dCB0aGUgY29tcGlsZXIKPiBjYW4ndC4gSGVuY2Ugd2UncmUgc3RpbGwgZGVwZW5kaW5n IG9uIHdob3NlIHByb29mIGlzIG5lY2Vzc2FyeSB0bwo+IGVsaW1pbmF0ZSBNSVNSQSdzIHVuZGVm aW5lZCBiZWhhdmlvciBjb25jZXJucy4KCkNvbXBhcmlzb25zIGJldHdlZW4gcG9pbnRlcnMgdG8g ZGlmZmVyZW50IG9iamVjdHMgaXMgdW5kZWZpbmVkIGJ5IHRoZSBDCnNwZWMsIGFuZCBub3QgYWxs b3dlZCBieSBNSVNSQUMuCgpDYXN0aW5nIHBvaW50ZXJzIHRvIGludGVnZXJzIGFuZCBjYXN0aW5n IGludGVnZXJzIHRvIHBvaW50ZXJzIGlzCmltcGxlbWVudGF0aW9uLWRlZmluZWQsIHdoaWNoIGlz IG5vdCB0aGUgc2FtZSB0aGluZyBhcyB1bmRlZmluZWQuCgpTcGVjaWZpY2FsbHksIGNhc3Rpbmcg aW50ZWdlcnMgdG8gcG9pbnRlcnMgYW5kIHBvaW50ZXJzIHRvIGludGVnZXJzIGlzCmFsbG93ZWQg YnkgTUlTUkFDIHdpdGggdGhlIGNhdmVhdCB0aGF0IHdlIHNob3VsZCBhdm9pZCBtaXNhbGlnbmVk CnBvaW50ZXJzIChjaGFyKiBhcmUgYWx3YXlzIGFsbG93ZWQpLCBhbmQgdGhhdCBhIGNvbXBhdGli bGUgcG9pbnRlciB0eXBlCmlzIHVzZWQgd2hlbiBhY2Nlc3NpbmcgdGhlIG9iamVjdCAoY2hhciog aXMgYWx3YXlzIGNvbXBhdGlibGUpLiBTdGV3YXJ0CndpbGwgc2VuZCBhIGxvbmdlciBleHBsYW5h dGlvbiBvdmVyIHRoZSB3ZWVrZW5kLgoKSSBkb24ndCBtYWtlIHVwIHRoZSBydWxlcywgSSBhbSBv bmx5IHRyeWluZyB0byBmb2xsb3cgdGhlbSA6LSkKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=