From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anchal Agarwal Subject: Re: [PATCH] xen/netfront: Remove unneeded .resume callback Date: Thu, 28 Mar 2019 23:19:28 +0000 Message-ID: <20190328231928.GA5172@kaos-source-ops-60001.pdx1.amazon.com> References: <6205819a-af39-8cd8-db87-f3fe047ff064@gmail.com> <09afcdca-258f-e5ca-5c31-b7fd079eb213@oracle.com> <3e868e7a-4872-e8ab-fd2c-90917ad6d593@arm.com> <435369ba-ad3b-1d3a-c2f4-babe8bb6189c@amazon.com> <20190325173011.GA20277@kaos-source-ops-60001.pdx1.amazon.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 1h9eJC-0006vF-Fd for xen-devel@lists.xenproject.org; Thu, 28 Mar 2019 23:19:42 +0000 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Oleksandr Andrushchenko Cc: "jgross@suse.com" , "sstabellini@kernel.org" , "Oleksandr_Andrushchenko@epam.com" , "netdev@vger.kernel.org" , Munehisa Kamata , "linux-kernel@vger.kernel.org" , Anchal Agarwal , Julien Grall , "xen-devel@lists.xenproject.org" , Boris Ostrovsky , Volodymyr Babchuk , "davem@davemloft.net" List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBNYXIgMjcsIDIwMTkgYXQgMDg6NDA6MjBBTSArMDIwMCwgT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gd3JvdGU6Cj4gT24gMy8yNS8xOSA3OjMwIFBNLCBBbmNoYWwgQWdhcndhbCB3cm90 ZToKPiA+T24gRnJpLCBNYXIgMjIsIDIwMTkgYXQgMTA6NDQ6MzNBTSArMDAwMCwgT2xla3NhbmRy IEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4gPj5PbiAzLzIwLzE5IDU6NTAgQU0sIE11bmVoaXNhIEth bWF0YSB3cm90ZToKPiA+Pj5PbiAzLzE4LzIwMTkgMzowMiBBTSwgT2xla3NhbmRyIEFuZHJ1c2hj aGVua28gd3JvdGU6Cj4gPj4+PitBbWF6b24KPiA+Pj4+cGxzIHNlZSBpbmxpbmUKPiA+Pj5IaSBP bGVrc2FuZHIsCj4gPj4+Cj4gPj4+TGV0IG1lIGFkZCBzb21lIGNvbW1lbnRzIGFzIHRoZSBvcmln aW5hbCBhdXRob3Igb2YgdGhlIHNlcmllcy4KPiA+PlRoYW5rIHlvdSBmb3IgeW91ciB3b3JrIQo+ ID5IaSBPbGVrc2FuZHIsCj4gPj4+Pk9uIDMvMTQvMTkgOTowMCBQTSwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+ID4+Pj4+SGksCj4gPj4+Pj4KPiA+Pj4+Pk9uIDMvMTQvMTkgMzo0MCBQTSwgQm9yaXMg T3N0cm92c2t5IHdyb3RlOgo+ID4+Pj4+Pk9uIDMvMTQvMTkgMTE6MTAgQU0sIE9sZWtzYW5kciBB bmRydXNoY2hlbmtvIHdyb3RlOgo+ID4+Pj4+Pj5PbiAzLzE0LzE5IDU6MDIgUE0sIEJvcmlzIE9z dHJvdnNreSB3cm90ZToKPiA+Pj4+Pj4+Pk9uIDMvMTQvMTkgMTA6NTIgQU0sIE9sZWtzYW5kciBB bmRydXNoY2hlbmtvIHdyb3RlOgo+ID4+Pj4+Pj4+Pk9uIDMvMTQvMTkgNDo0NyBQTSwgQm9yaXMg T3N0cm92c2t5IHdyb3RlOgo+ID4+Pj4+Pj4+Pj5PbiAzLzE0LzE5IDk6MTcgQU0sIE9sZWtzYW5k ciBBbmRydXNoY2hlbmtvIHdyb3RlOgo+ID4+Pj4+Pj4+Pj4+RnJvbTogT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+ID4+Pj4+Pj4+Pj4+ Cj4gPj4+Pj4+Pj4+Pj5DdXJyZW50bHkgb24gZHJpdmVyIHJlc3VtZSB3ZSByZW1vdmUgYWxsIHRo ZSBuZXR3b3JrIHF1ZXVlcyBhbmQKPiA+Pj4+Pj4+Pj4+PmRlc3Ryb3kgc2hhcmVkIFR4L1J4IHJp bmdzIGxlYXZpbmcgdGhlIGRyaXZlciBpbiBpdHMgY3VycmVudCBzdGF0ZQo+ID4+Pj4+Pj4+Pj4+ YW5kIG5ldmVyIHNpZ25hbGluZyB0aGUgYmFja2VuZCBvZiB0aGlzIGZyb250ZW5kJ3Mgc3RhdGUg Y2hhbmdlLgo+ID4+Pj4+Pj4+Pj4+VGhpcyBsZWFkcyB0byB0aGUgbnVtYmVyIG9mIGNvbnNlcXVl bmNlczoKPiA+Pj4+Pj4+Pj4+Pi0gd2hlbiBmcm9udGVuZCB3aXRoZHJhd3MgZ3JhbnRlZCByZWZl cmVuY2VzIHRvIHRoZSByaW5ncyBldGMuIGl0Cj4gPj4+Pj4+Pj4+Pj5jYW5ub3QKPiA+Pj4+Pj4+ Pj4+PiAgPz8/Pz8/Pz8gYmUgY2xlYW5seSBkb25lIGFzIHRoZSBiYWNrZW5kIHN0aWxsIGhvbGRz IHRob3NlIChpdCB3YXMgbm90Cj4gPj4+Pj4+Pj4+Pj50b2xkIHRvCj4gPj4+Pj4+Pj4+Pj4gID8/ Pz8/Pz8/IGZyZWUgdGhlIHJlc291cmNlcykKPiA+Pj4+Pj4+Pj4+Pi0gaXQgaXMgbm90IHBvc3Np YmxlIHRvIHJlc3VtZSBkcml2ZXIgb3BlcmF0aW9uIGFzIGFsbCB0aGUKPiA+Pj4+Pj4+Pj4+PmNv bW11bmljYXRpb24KPiA+Pj4+Pj4+Pj4+PiAgPz8/Pz8/Pz8gbWVhbnMgd2l0aCB0aGUgYmFja25l ZCB3ZXJlIGRlc3Ryb3llZCBieSB0aGUgZnJvbnRlbmQsIHRodXMKPiA+Pj4+Pj4+Pj4+PiAgPz8/ Pz8/Pz8gbWFraW5nIHRoZSBmcm9udGVuZCBhcHBlYXIgdG8gdGhlIGd1ZXN0IE9TIGFzIGZ1bmN0 aW9uYWwsIGJ1dAo+ID4+Pj4+Pj4+Pj4+ICA/Pz8/Pz8/PyBub3QgcmVhbGx5Lgo+ID4+Pj4+Pj4+ Pj5XaGF0IGRvIHlvdSBtZWFuPyBBcmUgeW91IHNheWluZyB0aGF0IGFmdGVyIHJlc3VtZSB5b3Ug bG9zZQo+ID4+Pj4+Pj4+Pj5jb25uZWN0aXZpdHk/Cj4gPj4+Pj4+Pj4+RXhhY3RseSwgaWYgeW91 IHRha2UgYSBsb29rIGF0IHRoZSAucmVzdW1lIGNhbGxiYWNrIGFzIGl0IGlzIG5vdwo+ID4+Pj4+ Pj4+PndoYXQgaXQgZG9lcyBpdCBkZXN0cm95cyB0aGUgcmluZ3MgZXRjLiBhbmQgbmV2ZXIgbm90 aWZpZXMgdGhlIGJhY2tlbmQKPiA+Pj4+Pj4+Pj5vZiB0aGF0LCBlLmcuIGl0IHN0YXlzIGluLCBz YXksIGNvbm5lY3RlZCBzdGF0ZSB3aXRoIGNvbW11bmljYXRpb24KPiA+Pj4+Pj4+Pj5jaGFubmVs cyBkZXN0cm95ZWQuIEl0IG5ldmVyIGdvZXMgaW50byBhbnkgb3RoZXIgWGVuIGJ1cyBzdGF0ZSwg c28KPiA+Pj4+Pj4+Pj50aGVyZSBpcwo+ID4+Pj4+Pj4+Pm5vIHdheSBpdHMgc3RhdGUgbWFjaGlu ZSBjYW4gaGVscCByZWNvdmVyaW5nLgo+ID4+Pj4+Pj4+TXkgdHJlZSBpcyBhYm91dCBhIG1vbnRo IG9sZCBzbyBwZXJoYXBzIHRoZXJlIGlzIHNvbWUgc29ydCBvZiByZWdyZXNzaW9uCj4gPj4+Pj4+ Pj5idXQgdGhpcyBjZXJ0YWlubHkgd29ya3MgZm9yIG1lLiBBZnRlciByZXN1bWUgbmV0ZnJvbnQg Z2V0cwo+ID4+Pj4+Pj4+WGVuYnVzU3RhdGVJbml0V2FpdCBmcm9tIGJhY2tlbmQgd2hpY2ggY2F1 c2VzIHhlbm5ldF9jb25uZWN0KCkuCj4gPj4+Pj4+PkFoLCB0aGUgZGlmZmVyZW5jZSBjYW4gYmUg b2YgdGhlIHdheSB3ZSBnZXQgdGhlIGd1ZXN0IGVudGVyCj4gPj4+Pj4+PnRoZSBzdXNwZW5kIHN0 YXRlLiBJIGFtIG1ha2luZyBteSBndWVzdCB0byBzdXNwZW5kIHdpdGg6Cj4gPj4+Pj4+PmVjaG8g bWVtID4gL3N5cy9wb3dlci9zdGF0ZQo+ID4+Pj4+Pj5BbmQgdGhlbiBJIHVzZSBhbiBpbnRlcnJ1 cHQgdG8gdGhlIGd1ZXN0ICh0aGlzIGlzIGEgdGVzdCBjb2RlKQo+ID4+Pj4+Pj50byB3YWtlIGl0 IHVwLgo+ID4+Pj4+Pj5Db3VsZCB5b3UgcGxlYXNlIHNoYXJlIHlvdXIgZXhhY3QgdXNlLWNhc2Ug d2hlbiB0aGUgZ3Vlc3QgZW50ZXJzIHN1c3BlbmQKPiA+Pj4+Pj4+YW5kIHdoYXQgeW91IGRvIHRv IHJlc3VtZSBpdD8KPiA+Pj4+Pj54bCBzYXZlIC8geGwgcmVzdG9yZQo+ID4+Pj4+Pgo+ID4+Pj4+ Pj5JIGNhbiBzZWUgbm8gd2F5IGJhY2tlbmQgbWF5IHdhbnQgZW50ZXIgWGVuYnVzU3RhdGVJbml0 V2FpdCBpbiBteQo+ID4+Pj4+Pj51c2UtY2FzZQo+ID4+Pj4+Pj5hcyBpdCBzaW1wbHkgZG9lc24n dCBrbm93IHdlIHdhbnQgaGltIHRvLgo+ID4+Pj4+PllvdXJzIGxvb2tzIGxpa2UgQUNQSSBwYXRo LCBJIGRvbid0IGtub3cgaG93IHdlbGwgaXQgd2FzIHRlc3RlZCBUQkguCj4gPj4+Pj5JIHJlbWVt YmVyIGEgc2VyaWVzIGZyb20gYW1hem9uIFsxXSB0aGF0IHBsYXlzIGFyb3VuZCBzdXNwZW5kIGFu ZCBoaWJlcm5hdGlvbi4gVGhlIHBhdGNoIFsyXSBsZWFkcyBtZSB0byB0aGluayB0aGF0IGd1ZXN0 IHRyaWdnZXJlZCBzdXNwZW5kL3Jlc3VtZSBkb2VzIG5vdCB3b3JrIHByb3Blcmx5LiBJdCBsb29r cyBsaWtlIHRoZSBzZXJpZXMgaGFzIG5ldmVyIGJlZW4gZnVsbHkgcmV2aWV3ZWQuIE5vdCBzdXJl IHdoeS4uLgo+ID4+Pj5KdWxpZW4sIHRoYW5rcyBhIGxvdCBmb3IgYnJpbmdpbmcgdGhlc2UgcGF0 Y2hlcyB0byBvdXIgYXR0ZW50aW9uIHdoaWNoIHdlIG9idmlvdXNseSBtaXNzZWQuCj4gPj4+Pj5B bnl3YXksIGZyb20gbXkgdW5kZXJzdGFuZGluZyB0aGlzIHNlcmllcyBtYXkgc29sdmUgT2xla3Nh bmRyIGlzc3VlLiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgYWRkcmVzcyB0aGUgY29tbW9uIGNv ZGUgc2lkZS4gQUZBSUsgT2xla3NhbmRyIGlzIHRhcmdldGluZyBBcm0gcGxhdGZvcm0uIElmIHNv LCBJIHRoaW5rIHRoaXMgd291bGQgcmVxdWlyZSBtb3JlIHdvcmsgdGhhbiB0aGlzIHNlcmllcy4g QXJtIGNvZGUgc3RpbGwgbWlzcyBmZXcgYml0cyBwcm9wZXJseSBzdXNwZW5kL3Jlc3VtZSBhcmNo IHNwZWNpZmljIGNvZGUgKHNlZSBbMl0pLgo+ID4+Pj4+Cj4gPj4+Pj5JIGhhdmUgYSBicmFuY2gg b24gbXkgZ2l0IHRvIHRyYWNrIHRoZSBzZXJpZXMuIEhvd2V2ZXIsIHRoZXkgbmV2ZXIgaGF2ZSBi ZWVuIHJlc2VudCBhZnRlciBJYW4gQ2FtcGJlbGwgbGVmdCBDaXRyaXguIEkgd291bGQgYmUgaGFw cHkgdG8gcmV2aWV3IHRoZW0gaWYgc29tZW9uZSB3YW50cyB0byBwaWNrIHRoZW0gdXAgYW5kIHJl cG9zdCB0aGVtLgo+ID4+Pj4+Cj4gPj4+PkZpcnN0IG9mIGFsbCwgbGV0IG1lIG1ha2UgaXQgY2xl YXIgdGhhdCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBoaWJlcm5hdGlvbiBsb25nIHRlcm0sIHNvIGl0 IHdvdWxkIGJlCj4gPj4+PmRlc2lyYWJsZSB0byByZS11c2UgYXMgbXVjaCB3b3JrIGZvcm0gcmVz dW1lL3N1c3BlbmQgYXMgd2UgY2FuLiBCdXQsIHdlIHNlZSBpdCBhcyBhIHN0ZXAgYnkKPiA+Pj4+ c3RlcCB3b3JrLCBlLmcuIGZpcnN0IFMyUkFNIGFuZCBsYXRlciBvbiBoaWJlcm5hdGlvbi4KPiA+ Pj4+TGV0IG1lIGNsYXJpZnkgdGhlIGltbWVkaWF0ZSB1c2UtY2FzZSB0aGF0IHdlIGhhdmUsIHNv IGl0IGlzIGVhc2llciB0byB1bmRlcnN0YW5kIHdoYXQgd2Ugd2FudAo+ID4+Pj5hbmQgd2hhdCB3 ZSBkb24ndCBhdCB0aGUgbW9tZW50LiBXZSBhcmUgYWJvdXQgdG8gY29udGludWUgd29yayBzdGFy dGVkIGJ5IE1pcmVsYS9YaWxpbnggb24KPiA+Pj4+U3VzcGVuZC10by1SQU0gZm9yIEFSTSBbM10g YW5kIHdlIG1hZGUgbnVtYmVyIG9mIGFzc3VtcHRpb25zOgo+ID4+Pj4xLiBXZSBhcmUgdGFsa2lu ZyBhYm91dCAqc3lzdGVtKiBzdXNwZW5kLCBlLmcuIHRoZSBnb2FsIGlzIHRvIHN1c3BlbmQgYWxs IHRoZSBjb21wb25lbnRzCj4gPj4+Pm9mIHRoZSBzeXN0ZW0gYW5kIFhlbiBpdHNlbGYgYXQgb25j ZS4gVGhpbmsgYWJvdXQgdGhpcyBhcyBmYXN0LWJvb3QgYW5kL29yIGVuZXJneSBzYXZpbmcKPiA+ Pj4+ZmVhdHVyZSBpZiB5b3Ugd2lsbC4KPiA+Pj4+Mi4gV2l0aCBzdXNwZW5kL3Jlc3VtZSB0aGVy ZSBpcyBubyBpbnRlbnRpb24gdG8gbWlncmF0ZSBWTXMgdG8gYW55IG90aGVyIGhvc3QuCj4gPj4+ PjMuIE1vc3QgcHJvYmFibHkgY29uZmlndXJhdGlvbiBvZiB0aGUgYmFjay9mcm9udCB3b24ndCBj aGFuZ2UgYmV0d2VlbiBzdXNwZW5kL3Jlc3VtZS4KPiA+Pj4+QnV0IGxvbmcgdGVybSB3ZSBhcmUg YWxzbyB0aGlua2luZyBmb3Igc3VwcG9ydGluZyBzdXNwZW5kL3Jlc3VtZSBpbiBpdHMgYnJvYWRl ciBtZWFuaW5nLAo+ID4+Pj5lLmcuIHdoYXQgaXMgcHJvYmFibHkgd2hhdCB5b3UgbWVhbiBieSBz dXNwZW5kL3Jlc3VtZS4KPiA+Pj5BRkFJSyAuc3VzcGVuZCBhbmQgLnJlc3VtZSBjYWxsYmFja3Mg aW4gZnJvbnRlbmQgZHJpdmVycyBhcmUKPiA+Pj5zcGVjaWZpY2FsbHkgZm9yIHhsIHNhdmUvcmVz dG9yZSBjYXNlIHJhdGhlciB0aGFuIHRoZSBub3JtYWwgInN5c3RlbSIKPiA+Pj5zdXNwZW5kLiBp LmUuIFRoZSBmb3JtZXIgaXMgQm9yaXMnIGNhc2UgYW5kIHNvbWV0aGluZyBJIGNhbGxlZCAiWGVu Cj4gPj4+c3VzcGVuZCIgaW4gdGhlIHBhdGNoIHNlcmllcywgdGhlIGxhdHRlciBzaG91bGQgYmUg eW91ciBpbnRlcmVzdCBhbmQKPiA+Pj5jYWxsZWQgIkFDUEkgcGF0aCIgaGVyZSwgYW5kIEkgcmVm ZXJyZWQgdG8gYXMgIlBNIHN1c3BlbmQiLiBUaGV5IGFyZQo+ID4+PnZlcnkgZGlmZmVyZW50IGNv ZGUgcGF0aHMsIHNlZSBkcml2ZXJzL3hlbi9tYW5hZ2UuYyBmb3IgZGV0YWlscyBvZgo+ID4+Plhl biBzdXNwZW5kLgo+ID4+WWVzLCBJIHNhdyB0aGF0IGNvZGUsIHRoYW5rIHlvdQo+ID4+Pj5HaXZl biB0aGF0LCB3ZSB0aGluayB0aGF0IHdlIGRvbid0IG5lZWQgWGVuIHN1cHBvcnQgdG8gc2F2ZSBn cmFudHMsIHBhZ2UgdGFibGVzIGFuZCBvdGhlcgo+ID4+Pj5WTSdzIGNvbnRleHQgb24gc3VzcGVu ZCBhdCBsZWFzdCBhdCB0aGUgZmlyc3Qgc3RhZ2UgYXMgd2UgYXJlIGltcGxlbWVudGluZyBub3Qg YSBmdWxseQo+ID4+Pj5ibG93biBzdXNwZW5kL3Jlc3VtZSwgYnV0IG9ubHkgUzJSQU0gcGFydCBv ZiBpdCB3aGljaCBpcyBtdWNoIG1vcmUgc2ltcGxlciB0aGFuIGEgZ2VuZXJpYwo+ID4+Pj5zdXNw ZW5kIGltcGxlbWVudGF0aW9uLiBXZSBvbmx5IG5lZWQgY2hhbmdlcyB0byBMaW51eCBrZXJuZWwg ZnJvbnRlbmQgZHJpdmVycyBmcm9tIFsxXSAtIHRoZQo+ID4+Pj5waWVjZSB0aGF0IHdlIG1pc3Mg aXMgc3VzcGVuZC9yZXN1bWUgaW1wbGVtZW50YXRpb24gaW4gdGhlIG5ldGZyb250IGRyaXZlci4g V2hhdCBpcyBtb3JlLCBhcwo+ID4+Pj53ZSBhcmUgbm90IGNoYW5naW5nIGJhY2svZnJvbnQgY29u ZmlndXJhdGlvbiwgd2UgY2FuIGV2ZW4gbGl2ZSB3aXRoIGVtcHR5IC5yZXN1bWUvLnN1c3BlbmQK PiA+Pj4+ZnJvbnRlbmQncyBjYWxsYmFja3MgYmVjYXVzZSBldmVudCBjaGFubmVscywgcmluZ3Mg ZXRjLiBhcmUgInN0YXRpY2FsbHkiIGFsbG9jYXRlZCBpbiBvdXIKPiA+Pj4+dXNlLWNhc2UgYXQg dGhlIGZpcnN0IHN5c3RlbSBzdGFydCAoY29sZCBib290KS4gQW5kIGluZGVlZCwgdGVzdHMgc2hv dyB0aGF0IHdha2luZyBkb21haW5zCj4gPj4+PmluIHRoZSByaWdodCBvcmRlciBkbyBhbGxvdyB0 aGF0Lgo+ID4+Pj5TbywgZnJhbmtseSwgZnJvbSBbM10gd2UgYXJlIGltbWVkaWF0ZWx5IGludGVy ZXN0ZWQgaW4gaW1wbGVtZW50aW5nIC5yZXN1bWUvLnN1c3BlbmQsIG5vdAo+ID4+PklmIHlvdSBq dXN0IChyZSlpbXBsZW1lbnQgLnN1c3BlbmQgYW5kIC5yZXN1bWUgc28gd2l0aG91dCB0YWtpbmcg Y2FyZQo+ID4+Pm9mIFhlbiBzdXNwZW5kLCB5b3UgY2FuIGVhc2lseSBicmVhayB0aGUgZXhpc3Rp bmcgZnVuY3Rpb25hbGl0eS4gVGhlCj4gPj4+cGF0Y2ggc2VyaWVzIGludHJvZHVjZWQgLmZyZWV6 ZSBhbmQgLnJlc3RvcmUgY2FsbGJhY2tzIGZvciBib3RoIFBNCj4gPj4+c3VzcGVuZCBhbmQgaGli ZXJuYXRpb24sIGFuZCBrZXB0IC5zdXNwZW5kIChub3QgaW1wbGVtZW50ZWQgaW4gbW9zdAo+ID4+ PmZyb250ZW5kIHRob3VnaCkgYW5kIC5yZXN1bWUgd2l0aCBubyBjaGFuZ2VzIGZvciBYZW4gc3Vz cGVuZC4KPiA+Pj4KPiA+Pj5Ob3RlIHRoYXQgeGVuYnVzIGhhcyBtYXBwZWQgZnJlZXplL3RoYXcv cmVzdG9yZSBldmVudHMgdG8gc3VzcGVuZCwKPiA+Pj5yZXN1bWUgYW5kIGNhbmNlbCBjYWxsYmFj a3MgdG8gaGFuZGxlICJjaGVja3BvaW50IiBjYXNlWzRdLiBUaGlzIHdhcyBhCj4gPj4+Yml0IHRy aWNreSBhbmQgbGVkIG1lIHRvIHRoZSBkZXNpZ24gdG8gaGF2ZSB0aGUgc2VwYXJhdGUgc2V0IG9m Cj4gPj4+Y2FsbGJhY2tzIGF0IGVhY2ggZnJvbnRlbmQgZHJpdmVyIGxldmVsWzVdLiBZb3UgbWln aHQgbmVlZCB0byBjb25zaWRlcgo+ID4+PmEgc2ltaWxhciBhcHByb2FjaCBldmVuIGlmIHlvdXIg aW1tZWRpYXRlIGludGVyZXN0IGF0IHRoZSBtb21lbnQgaXMgUE0KPiA+Pj5zdXNwZW5kLgo+ID4+ Rm9yIHRoZSBpbW1lZGlhdGUgdGFzayB3ZSBoYXZlIGF0IHRoZSBtb21lbnQgd2UgdGhpbmsgd2Ug Y2FuIHJlLXVzZQo+ID4+eW91ciB3b3JrIGFuZCBpbXBsZW1lbnQgLnN1c3BlbmQvLnJlc3VtZSBi YXNlZCBvbiBpdCAod2UgYXJlIHRhcmdldGluZwo+ID4+UzJSQU0gYXMgdGhlIGZpcnN0IHN0YWdl KS4KPiA+PkJ1dCBsb25nIHRlcm0gLSB3ZSBkbyBzdXBwb3J0IHRoZSBpZGVhIG9mIGZ1bGx5IGlt cGxlbWVudGVkCj4gPj5zdXNwZW5kIGFuZCAqaGliZXJuYXRlKiBmdW5jdGlvbmFsaXR5IGFzIHlv dSBkZXNjcmliZSBpdC4KPiA+PlNvLCB5ZXMsIHdlIGFyZSBhbHNvIHRoaW5raW5nIGFib3V0IHRo YXQuCj4gPj4+PmV2ZW4gZnJlZXplL3RoYXcvcmVzdG9yZSBjYWxsYmFja3M6IGlmIEFtYXpvbiBo YXMgd2lsbCBhbmQgY2FwYWNpdHkgdG8gY29udGludWUgd29ya2luZyBvbiBbM10KPiA+Pj4+dGhl biBvbmNlIHRoYXQgZ2V0cyBpbnRvIHRoZSB1cHN0cmVhbSBpdCBhbHNvIHNvbHZlcyBvdXIgUzJS QU0gdXNlLWNhc2UsIGJ1dCBpZiBub3QgdGhlbiB3ZQo+ID4+Pj5jYW4gcHJvYmFibHkgcmUtd29y ayBuZXRmcm9udCBwYXRjaCBhbmQgb25seSBwcm92aWRlIC5yZXN1bWUvLnN1c3BlbmQgY2FsbGJh Y2tzIHdoaWNoIHdlIG5lZWQKPiA+Pj4+Zm9yIG5vdyAocmVtZW1iZXIgb3VyIHZlcnkgc3BlY2lm aWMgdXNlLWNhc2Ugd2hpY2ggY2FuIHN1cnZpdmUgc3VzcGVuZCB3aXRob3V0IGNhbGxiYWNrcwo+ ID4+Pj5pbXBsZW1lbnRlZCkuCj4gPj4+PklNTywgcGF0Y2hlcyBhdCBbMl0gc2VlbSB0byBiZSB1 c2VmdWwgd2hpbGUgaW1wbGVtZW50aW5nIGdlbmVyaWMgc3VzcGVuZC9yZXN1bWUgYW5kIGNhbgo+ ID4+Pj5iZSBwb3N0cG9uZWQgZm9yIFMyUkFNLgo+ID4+Pj4KPiA+Pj4+SnVsaWVuL0p1ZXJnZW4v Qm9yaXMvQW1hem9uIC0gY291bGQgeW91IHBsZWFzZSBleHByZXNzIHlvdXIgdmlldyBvbiB0aGUg YWJvdmU/Cj4gPj4+PklzIGl0IGFjY2VwdGFibGUgdGhhdCBmb3Igbm93IHdlIG9ubHkgdGFrZSBy ZS13b3JrZWQgbmV0ZnJvbnQgcGF0Y2ggZnJvbSBbM10gd2l0aCBmdWxsCj4gPj4+PmltcGxlbWVu dGF0aW9uIGluIG1pbmQgZm9yIGxhdGVyICh3ZSByZXVzZSBjb2RlIGZvciAucmVzdW1lLy5zdXNw ZW5kKT8KPiA+Pj5JbiBmYWN0LCBBbmNoYWwgaGFzIHRha2VuIG92ZXIgbXkgaW5pdGlhbCB3b3Jr IGFuZCBzaGUgbWF5IHdhbnQgdG8gY2hpbWUKPiA+Pj5pbiBoZXJlLgo+ID4+R3JlYXQsIGNvdWxk IHlvdSBwbGVhc2UgbGV0IHVzIGtub3cgd2hhdCBpcyB0aGUgcHJvZ3Jlc3MgYW5kIGZ1cnRoZXIg cGxhbnMKPiA+Pm9uIHRoYXQsIHNvIHdlIGRvIG5vdCB3b3JrIG9uIHRoZSBzYW1lIGNvZGUgYW5k IGNhbiBjb29yZGluYXRlIG91cgo+ID4+ZWZmb3J0cyBzb21laG93PyBBbmNoYWwsIGNvdWxkIHlv dSBwbGVhc2Ugc2hlZCBzb21lIGxpZ2h0IG9uIHRoaXM/Cj4gPkxvb2tzIGxpa2UgbXkgcHJldmlv dXMgZW1haWwgZGlkIG5vdCBtYWtlIGl0IHRvIG1haWxpbmcgbGlzdC4gTWF5IGJlIHNvbWUgaXNz dWVzIHdpdGggbXkKPiA+ZW1haWwgc2VydmVyIHNldHRpbmdzLiBHaXZpbmcgaXQgYW5vdGhlciBz aG90Lgo+ID5ZZXMsIEkgYW0gd29ya2luZyBvbiB0aG9zZSBwYXRjaGVzIGFuZCBwbGFuIHRvIHJl LXBvc3QgdGhlbSBpbiBhbiBlZmZvcnQgdG8gdXBzdHJlYW0uCj4gVGhpcyBpcyByZWFsbHkgZ3Jl YXQsIGxvb2tpbmcgZm9yd2FyZCB0byBpdDogYW55IGRhdGUgaW4geW91ciBtaW5kCj4gd2hlbiB0 aGlzIGNhbiBoYXBwZW4/Ck5vdCBhIHNwZWNpZmljIGRhdGUgYnV0IG1heSBiZSBpbiBmZXcgd2Vl a3MuIEkgYW0gY3VycmVudGx5IHN3YW1wZWQgYXQgd29yay4KPiA+SSBhZ3JlZSB3aXRoIE11bmVo aXNhIGhlcmUgb24gY29uc2lkZXJpbmcgdGhlIHBhdGNoZXMgdGhhdCBhcmUgYWxyZWFkeSBvdXQg dGhlcmUgYXMKPiA+SSBwbGFuIHRvIGtlZXAgdGhlIHNhbWUgbW9kZWwgdG8gZGlzdGluZ3Vpc2gg UE0gU1VTUEVORCBhbmQgUE0gSElCRVJOQVRJT04gZnJvbSB4ZW4KPiA+c3VzcGVuZCBhbmQgcmVz dW1lLiBUaGVyZSBtYXkgYmUgbWlub3IgZml4ZXMgaGVyZSBhbmQgdGhlcmUgaG93ZXZlciwgdGhl IG92ZXJhbGwKPiA+aWRlYSB3aWxsIHN0aWxsIHJlbWFpbiB0aGUgc2FtZS4KPiBPaywgc28gSSds bCBwbGFuIG15IGVmZm9ydHMgYWNjb3JkaW5nbHkKPiA+ICBBcyB0aGUgcHJldmlvdXMgcGF0Y2hl cyB0aGVyZSB3aWxsIGJlIHN1cHBvcnQgZm9yCj4gPm9ubHkgeGVuLWJsa2Zyb250IGFuZCB4ZW4t bmV0ZnJvbnQgaW4gdGhlIGluaXRpYWwgcGF0Y2hzZXQuCj4gPj4+VGhhdCBzYWlkLCBJJ2QgYmUg dmVyeSBoYXBweSB0byByZXZpZXcgcGF0Y2hlcyBpZiB5b3UgY29tZSB1cCB3aXRoIHlvdXIKPiA+ Pj5vd24gb25lcywgc28gZmVlbCBmcmVlIHRvIGFkZCBtZSBpbiB0aGF0IGNhc2UuCj4gPj5TdXJl LCB0aGFuayB5b3UhCj4gPj4+Pj5DaGVlcnMsCj4gPj4+Pj4KPiA+Pj4+PlsxXSBodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTgtMDYvbXNnMDA4 MjMuaHRtbAo+ID4+Pj4+Cj4gPj4+Pj5bMl0gaHR0cDovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIv P3A9cGVvcGxlL2p1bGllbmcvbGludXgtYXJtLmdpdDthPXNob3J0bG9nO2g9cmVmcy9oZWFkcy94 ZW4tbWlncmF0aW9uL3YyCj4gPj4+Pj4KPiA+Pj4+WzNdIGh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxOC0xMS9tc2cwMTA5My5odG1sCj4gPj4+ WzRdIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZh bGRzL2xpbnV4LmdpdC9jb21taXQvP2lkPWIzZTk2YzBjNzU2MjExZTgwNWM2OTQxZDRhNmU1ZjZl MTk5NWNiNmIKPiA+Pj5bNV0gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9hcmNoaXZlcy9o dG1sL3hlbi1kZXZlbC8yMDE4LTA2L21zZzAwODI1Lmh0bWwKPiA+Pj4KPiA+Pj4+Pj4tYm9yaXMK PiA+Pj4+Pj4KPiA+Pj4+Pj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4+Pj4+Plhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+Pj4+Pj5YZW4tZGV2ZWxA bGlzdHMueGVucHJvamVjdC5vcmcKPiA+Pj4+Pj5odHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVsCj4gPj4+Pj4+Cj4gPj4+PlRoYW5rIHlvdSwKPiA+ Pj4+T2xla3NhbmRyCj4gPj4+VGhhbmtzLAo+ID4+Pk11bmVoaXNhCj4gPlRoYW5rcywKPiA+QW5j aGFsCj4gVGhhbmsgeW91LAo+IE9sZWtzYW5kcgoKVGhhbmtzLApBbmNoYWwKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=