From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id CE0198E5A for ; Fri, 20 Apr 2018 02:32:09 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2018 17:32:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,298,1520924400"; d="scan'208";a="43264773" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by FMSMGA003.fm.intel.com with ESMTP; 19 Apr 2018 17:32:08 -0700 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 19 Apr 2018 17:32:08 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx120.amr.corp.intel.com (10.18.124.208) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 19 Apr 2018 17:32:07 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.210]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.40]) with mapi id 14.03.0319.002; Fri, 20 Apr 2018 08:32:04 +0800 From: "Liu, Changpeng" To: Maxime Coquelin , "Kulasek, TomaszX" , "yliu@fridaylinux.org" CC: "Verkamp, Daniel" , "Harris, James R" , "Wodkowski, PawelX" , "dev@dpdk.org" , "Tan, Jianfeng" Thread-Topic: [dpdk-dev] [PATCH v2] vhost: add virtio configuration space messages Thread-Index: AQHTxeGtANo/CucoI0uyXSr4hdyNkaPk18KAgACNTFD//398AIAAhuIw//985gCAAIiP0P//hAsABFo3vYAAJV/foA== Date: Fri, 20 Apr 2018 00:32:04 +0000 Message-ID: References: <20180327151737.6640-1-tomaszx.kulasek@intel.com> <20180327153500.10464-1-tomaszx.kulasek@intel.com> <6c556086-bccc-1e55-d490-c21bcc8a6c4b@redhat.com> <980e5103-22ca-e526-9ac5-ee5b775b50ba@redhat.com> In-Reply-To: <980e5103-22ca-e526-9ac5-ee5b775b50ba@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWU0Y2YyMzYtOTgwNy00M2RmLWE3ZWEtNjFjYTBjZGMxMGNlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJBYU15eXVObXcxMTZxT040WnBRbUFxczdScSs0OVdhUDM3S2xMVVZ1Mll3N2gzZXFaK2JockFKNUxzcUdIbXJoIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] vhost: add virtio configuration space messages X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Apr 2018 00:32:10 -0000 SGkgTWF4aW1lLA0KDQpXZSdsbCBzdWJtaXQgYSBuZXcgdjMgdmVyc2lvbiBzb29uIGFmdGVyIHRl c3RlZCB3aXRoIFFFTVUgMi4xMiByZWxlYXNlLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IE1heGltZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRo YXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMTksIDIwMTggMTA6NDAgUE0NCj4gVG86 IExpdSwgQ2hhbmdwZW5nIDxjaGFuZ3BlbmcubGl1QGludGVsLmNvbT47IEt1bGFzZWssIFRvbWFz elgNCj4gPHRvbWFzengua3VsYXNla0BpbnRlbC5jb20+OyB5bGl1QGZyaWRheWxpbnV4Lm9yZw0K PiBDYzogVmVya2FtcCwgRGFuaWVsIDxkYW5pZWwudmVya2FtcEBpbnRlbC5jb20+OyBIYXJyaXMs IEphbWVzIFINCj4gPGphbWVzLnIuaGFycmlzQGludGVsLmNvbT47IFdvZGtvd3NraSwgUGF3ZWxY IDxwYXdlbHgud29ka293c2tpQGludGVsLmNvbT47DQo+IGRldkBkcGRrLm9yZzsgVGFuLCBKaWFu ZmVuZyA8amlhbmZlbmcudGFuQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0g W1BBVENIIHYyXSB2aG9zdDogYWRkIHZpcnRpbyBjb25maWd1cmF0aW9uIHNwYWNlIG1lc3NhZ2Vz DQo+IA0KPiBIaSBDaGFuZ3BlbmcsIFRvbWFzeiwNCj4gDQo+IEFueSBjaGFuY2UgdGhhdCB5b3Ug cmVzdWJtaXQgdGhlIHNlcmllcyBub3cgdGhhdCB0aGUgUWVtdSBjaGFuZ2VzIGFkZGluZw0KPiBh IHByb3RvY29sIGZlYXR1cmUgZmxhZyBoYXMgYmVlbiBhY2NlcHRlZD8NCj4gDQo+IENoZWVycywN Cj4gTWF4aW1lDQo+IE9uIDAzLzI4LzIwMTggMTI6NTYgUE0sIE1heGltZSBDb3F1ZWxpbiB3cm90 ZToNCj4gPg0KPiA+DQo+ID4gT24gMDMvMjgvMjAxOCAxMjoyMyBQTSwgTGl1LCBDaGFuZ3Blbmcg d3JvdGU6DQo+ID4+DQo+ID4+DQo+ID4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ Pj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5j b21dDQo+ID4+PiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDI4LCAyMDE4IDY6MTEgUE0NCj4gPj4+ IFRvOiBMaXUsIENoYW5ncGVuZyA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBLdWxhc2VrLCBU b21hc3pYDQo+ID4+PiA8dG9tYXN6eC5rdWxhc2VrQGludGVsLmNvbT47IHlsaXVAZnJpZGF5bGlu dXgub3JnDQo+ID4+PiBDYzogVmVya2FtcCwgRGFuaWVsIDxkYW5pZWwudmVya2FtcEBpbnRlbC5j b20+OyBIYXJyaXMsIEphbWVzIFINCj4gPj4+IDxqYW1lcy5yLmhhcnJpc0BpbnRlbC5jb20+OyBX b2Rrb3dza2ksIFBhd2VsWA0KPiA+Pj4gPHBhd2VseC53b2Rrb3dza2lAaW50ZWwuY29tPjsgZGV2 QGRwZGsub3JnOyBUYW4sIEppYW5mZW5nDQo+ID4+PiA8amlhbmZlbmcudGFuQGludGVsLmNvbT4N Cj4gPj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0gdmhvc3Q6IGFkZCB2aXJ0 aW8gY29uZmlndXJhdGlvbiBzcGFjZQ0KPiA+Pj4gbWVzc2FnZXMNCj4gPj4+DQo+ID4+Pg0KPiA+ Pj4NCj4gPj4+IE9uIDAzLzI4LzIwMTggMTI6MDMgUE0sIExpdSwgQ2hhbmdwZW5nIHdyb3RlOg0K PiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+ Pj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5j b21dDQo+ID4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMjgsIDIwMTggNTo1OCBQTQ0KPiA+ Pj4+PiBUbzogTGl1LCBDaGFuZ3BlbmcgPGNoYW5ncGVuZy5saXVAaW50ZWwuY29tPjsgS3VsYXNl aywgVG9tYXN6WA0KPiA+Pj4+PiA8dG9tYXN6eC5rdWxhc2VrQGludGVsLmNvbT47IHlsaXVAZnJp ZGF5bGludXgub3JnDQo+ID4+Pj4+IENjOiBWZXJrYW1wLCBEYW5pZWwgPGRhbmllbC52ZXJrYW1w QGludGVsLmNvbT47IEhhcnJpcywgSmFtZXMgUg0KPiA+Pj4+PiA8amFtZXMuci5oYXJyaXNAaW50 ZWwuY29tPjsgV29ka293c2tpLCBQYXdlbFgNCj4gPj4+Pj4gPHBhd2VseC53b2Rrb3dza2lAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBUYW4sIEppYW5mZW5nDQo+ID4+Pj4+IDxqaWFuZmVuZy50 YW5AaW50ZWwuY29tPg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJd IHZob3N0OiBhZGQgdmlydGlvIGNvbmZpZ3VyYXRpb24NCj4gPj4+Pj4gc3BhY2UNCj4gPj4+Pj4g bWVzc2FnZXMNCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gT24gMDMvMjgvMjAx OCAxMTo1MCBBTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiA+Pj4+Pj4+ IFNlbnQ6IFdlZG5lc2RheSwgTWFyY2ggMjgsIDIwMTggNToxMiBQTQ0KPiA+Pj4+Pj4+IFRvOiBL dWxhc2VrLCBUb21hc3pYIDx0b21hc3p4Lmt1bGFzZWtAaW50ZWwuY29tPjsNCj4gPj4+Pj4+PiB5 bGl1QGZyaWRheWxpbnV4Lm9yZw0KPiA+Pj4+Pj4+IENjOiBWZXJrYW1wLCBEYW5pZWwgPGRhbmll bC52ZXJrYW1wQGludGVsLmNvbT47IEhhcnJpcywgSmFtZXMgUg0KPiA+Pj4+Pj4+IDxqYW1lcy5y LmhhcnJpc0BpbnRlbC5jb20+OyBXb2Rrb3dza2ksIFBhd2VsWA0KPiA+Pj4+Pj4+IDxwYXdlbHgu d29ka293c2tpQGludGVsLmNvbT47IGRldkBkcGRrLm9yZzsgTGl1LCBDaGFuZ3BlbmcNCj4gPj4+ Pj4+PiA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBUYW4sIEppYW5mZW5nIDxqaWFuZmVuZy50 YW5AaW50ZWwuY29tPg0KPiA+Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2 Ml0gdmhvc3Q6IGFkZCB2aXJ0aW8NCj4gPj4+Pj4+PiBjb25maWd1cmF0aW9uIHNwYWNlDQo+ID4+ Pj4+Pj4gbWVzc2FnZXMNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+ PiBPbiAwMy8yNy8yMDE4IDA1OjM1IFBNLCBUb21hc3ogS3VsYXNlayB3cm90ZToNCj4gPj4+Pj4+ Pj4gVGhpcyBwYXRjaCBhZGRzIG5ldyB2aG9zdCB1c2VyIG1lc3NhZ2VzIEdFVF9DT05GSUcgYW5k IFNFVF9DT05GSUcNCj4gPj4+Pj4gdXNlZA0KPiA+Pj4+Pj4+PiBmb3IgZ2V0L3NldCB2aXJ0aW8g ZGV2aWNlJ3MgY29uZmlndXJhdGlvbiBzcGFjZS4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU2ln bmVkLW9mZi1ieTogQ2hhbmdwZW5nIExpdSA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+DQo+ID4+ Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFRvbWFzeiBLdWxhc2VrIDx0b21hc3p4Lmt1bGFzZWtAaW50 ZWwuY29tPg0KPiA+Pj4+Pj4+PiAtLS0NCj4gPj4+Pj4+Pj4gQ2hhbmdlcyBpbiB2MjoNCj4gPj4+ Pj4+Pj4gwqDCoMKgwqAgLSBjb2RlIGNsZWFudXANCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gwqDC oMKgwqAgbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaMKgIHzCoCA0ICsrKysNCj4gPj4+Pj4+ Pj4gwqDCoMKgwqAgbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMgfCAyMiArKysrKysrKysr KysrKysrKysrKysrDQo+ID4+Pj4+Pj4+IMKgwqDCoMKgIGxpYi9saWJydGVfdmhvc3Qvdmhvc3Rf dXNlci5oIHwgMTYgKysrKysrKysrKysrKysrKw0KPiA+Pj4+Pj4+PiDCoMKgwqDCoCAzIGZpbGVz IGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKykNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4+Pj4+Pj4gYi9saWIvbGli cnRlX3Zob3N0L3J0ZV92aG9zdC5oDQo+ID4+Pj4+Pj4+IGluZGV4IGQzMzIwNjkuLmZlMzA1MTgg MTAwNjQ0DQo+ID4+Pj4+Pj4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4g Pj4+Pj4+Pj4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaA0KPiA+Pj4+Pj4+PiBA QCAtODQsNiArODQsMTAgQEAgc3RydWN0IHZob3N0X2RldmljZV9vcHMgew0KPiA+Pj4+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgIGludCAoKm5ld19jb25uZWN0aW9uKShpbnQgdmlkKTsNCj4gPj4+Pj4+ Pj4gwqDCoMKgwqDCoMKgwqDCoCB2b2lkICgqZGVzdHJveV9jb25uZWN0aW9uKShpbnQgdmlkKTsN Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gK8KgwqDCoCBpbnQgKCpnZXRfY29uZmlnKShpbnQgdmlk LCB1aW50OF90ICpjb25maWcsIHVpbnQzMl90DQo+ID4+Pj4+Pj4+IGNvbmZpZ19sZW4pOw0KPiA+ Pj4+Pj4+PiArwqDCoMKgIGludCAoKnNldF9jb25maWcpKGludCB2aWQsIHVpbnQ4X3QgKmNvbmZp ZywgdWludDMyX3Qgb2Zmc2V0LA0KPiA+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1 aW50MzJfdCBsZW4sIHVpbnQzMl90IGZsYWdzKTsNCj4gPj4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgIHZvaWQgKnJlc2VydmVkWzJdOyAvKio8IFJlc2VydmVkIGZvciBmdXR1 cmUgZXh0ZW5zaW9uICovDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBZb3UgYXJlIGJyZWFraW5nIHRo ZSBBQkksIGFzIHlvdSBncm93IHRoZSBzaXplIG9mIHRoZSBvcHMgc3RydWN0Lg0KPiA+Pj4+Pj4+ DQo+ID4+Pj4+Pj4gQWxzbywgSSdtIHdvbmRlcmluZyBpZiB3ZSBzaG91bGRuJ3QgaGF2ZSBhIGRp ZmZlcmVudCBvcHMgZm9yDQo+ID4+Pj4+Pj4gZXh0ZXJuYWwNCj4gPj4+Pj4+PiBiYWNrZW5kcy4g SGVyZSB0aGVzZSBvcHMgYXJlIG1vcmUgaW50ZW5kZWQgdG8gdGhlIGFwcGxpY2F0aW9uLCB3ZQ0K PiA+Pj4+Pj4+IGNvdWxkDQo+ID4+Pj4+Pj4gaGF2ZSBhIHNwZWNpZmljIG9wcyBzdHJ1Y3QgZm9y IGV4dGVybmFsIGJhY2tlbmRzIElNSE8uDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gwqDCoMKgwqAg fTsNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfdmhvc3Qv dmhvc3RfdXNlci5jDQo+ID4+Pj4+Pj4+IGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMN Cj4gPj4+Pj4+Pj4gaW5kZXggOTBlZDIxMS4uMGVkNmE1YSAxMDA2NDQNCj4gPj4+Pj4+Pj4gLS0t IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPj4+Pj4+Pj4gKysrIGIvbGliL2xp YnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPj4+Pj4+Pj4gQEAgLTUwLDYgKzUwLDggQEAgc3Rh dGljIGNvbnN0IGNoYXINCj4gPj4+Pj4gKnZob3N0X21lc3NhZ2Vfc3RyW1ZIT1NUX1VTRVJfTUFY XQ0KPiA+Pj4+Pj4+ID0gew0KPiA+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIFtWSE9TVF9VU0VS X05FVF9TRVRfTVRVXcKgID0gIlZIT1NUX1VTRVJfTkVUX1NFVF9NVFUiLA0KPiA+Pj4+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgIFtWSE9TVF9VU0VSX1NFVF9TTEFWRV9SRVFfRkRdwqAgPQ0KPiA+Pj4+ Pj4+ICJWSE9TVF9VU0VSX1NFVF9TTEFWRV9SRVFfRkQiLA0KPiA+Pj4+Pj4+PiDCoMKgwqDCoMKg wqDCoMKgIFtWSE9TVF9VU0VSX0lPVExCX01TR13CoCA9ICJWSE9TVF9VU0VSX0lPVExCX01TRyIs DQo+ID4+Pj4+Pj4+ICvCoMKgwqAgW1ZIT1NUX1VTRVJfR0VUX0NPTkZJR10gPSAiVkhPU1RfVVNF Ul9HRVRfQ09ORklHIiwNCj4gPj4+Pj4+Pj4gK8KgwqDCoCBbVkhPU1RfVVNFUl9TRVRfQ09ORklH XSA9ICJWSE9TVF9VU0VSX1NFVF9DT05GSUciLA0KPiA+Pj4+Pj4+PiDCoMKgwqDCoCB9Ow0KPiA+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiDCoMKgwqDCoCBzdGF0aWMgdWludDY0X3QNCj4gPj4+Pj4+Pj4g QEAgLTEzNTUsNiArMTM1Nyw3IEBAIHZob3N0X3VzZXJfbXNnX2hhbmRsZXIoaW50IHZpZCwgaW50 IGZkKQ0KPiA+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgKiB3b3VsZCBjYXVzZSBhIGRlYWQg bG9jay4NCj4gPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgICovDQo+ID4+Pj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqAgc3dpdGNoIChtc2cucmVxdWVzdC5tYXN0ZXIpIHsNCj4gPj4+Pj4+Pj4gK8Kg wqDCoCBjYXNlIFZIT1NUX1VTRVJfU0VUX0NPTkZJRzoNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEl0 IHNlZW1zIFZIT1NUX1VTRVJfR0VUX0NPTkZJRyBpcyBtaXNzaW5nIGhlcmUuDQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCBjYXNlIFZIT1NUX1VTRVJfU0VUX0ZFQVRVUkVT Og0KPiA+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgVkhPU1RfVVNFUl9TRVRfUFJPVE9D T0xfRkVBVFVSRVM6DQo+ID4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBWSE9TVF9VU0VS X1NFVF9PV05FUjoNCj4gPj4+Pj4+Pj4gQEAgLTEzODAsNiArMTM4MywyNSBAQCB2aG9zdF91c2Vy X21zZ19oYW5kbGVyKGludCB2aWQsIGludCBmZCkNCj4gPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDC oCB9DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAgc3dpdGNoIChtc2cu cmVxdWVzdC5tYXN0ZXIpIHsNCj4gPj4+Pj4+Pj4gK8KgwqDCoCBjYXNlIFZIT1NUX1VTRVJfR0VU X0NPTkZJRzoNCj4gPj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmIChkZXYtPm5vdGlmeV9vcHMt PmdldF9jb25maWcoZGV2LT52aWQsDQo+ID4+Pj4+Pj4gUGxlYXNlIGNoZWNrIC0+Z2V0X2NvbmZp ZyBpcyBzZXQgYmVmb3JlIGNhbGxpbmcgaXQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtc2cucGF5bG9hZC5jb25maWcucmVnaW9uLA0KPiA+ Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1zZy5wYXlsb2FkLmNvbmZp Zy5zaXplKSAhPSAwKSB7DQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1zZy5z aXplID0gc2l6ZW9mKHVpbnQ2NF90KTsNCj4gPj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIH0NCj4g Pj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHNlbmRfdmhvc3RfcmVwbHkoZmQsICZtc2cpOw0KPiA+ Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7DQo+ID4+Pj4+Pj4+ICvCoMKgwqAgY2FzZSBW SE9TVF9VU0VSX1NFVF9DT05GSUc6DQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoKGRl di0+bm90aWZ5X29wcy0+c2V0X2NvbmZpZyhkZXYtPnZpZCwNCj4gPj4+Pj4+PiBEaXR0by4NCj4g Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1zZy5w YXlsb2FkLmNvbmZpZy5yZWdpb24sDQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgbXNnLnBheWxvYWQuY29uZmlnLm9mZnNldCwNCj4gPj4+Pj4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtc2cucGF5bG9hZC5jb25maWcuc2l6ZSwNCj4gPj4+Pj4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtc2cucGF5bG9hZC5jb25maWcuZmxh Z3MpKSAhPSAwKSB7DQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IDE7 DQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugew0KPiA+Pj4+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXQgPSAwOw0KPiA+Pj4+Pj4+PiArwqDCoMKgwqDCoMKgwqAgfQ0K PiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gcmV0ID0gZGV2LT5ub3RpZnlfb3BzLT5zZXRfY29uZmlnIGlu c3RlYWQ/DQo+ID4+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4gPj4+Pj4+Pj4gwqDC oMKgwqDCoMKgwqDCoCBjYXNlIFZIT1NUX1VTRVJfR0VUX0ZFQVRVUkVTOg0KPiA+Pj4+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXNnLnBheWxvYWQudTY0ID0gdmhvc3RfdXNlcl9nZXRf ZmVhdHVyZXMoZGV2KTsNCj4gPj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1zZy5z aXplID0gc2l6ZW9mKG1zZy5wYXlsb2FkLnU2NCk7DQo+ID4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9s aWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuaA0KPiA+Pj4+Pj4+PiBiL2xpYi9saWJydGVfdmhv c3Qvdmhvc3RfdXNlci5oDQo+ID4+Pj4+Pj4+IGluZGV4IGQ0YmQ2MDQuLjI1Y2MwMjYgMTAwNjQ0 DQo+ID4+Pj4+Pj4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oDQo+ID4+Pj4+ Pj4+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oDQo+ID4+Pj4+Pj4+IEBAIC0x NCw2ICsxNCwxMSBAQA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiDCoMKgwqDCoCAjZGVmaW5lIFZI T1NUX01FTU9SWV9NQVhfTlJFR0lPTlMgOA0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiArLyoNCj4g Pj4+Pj4+Pj4gKyAqIE1heGltdW0gc2l6ZSBvZiB2aXJ0aW8gZGV2aWNlIGNvbmZpZyBzcGFjZQ0K PiA+Pj4+Pj4+PiArICovDQo+ID4+Pj4+Pj4+ICsjZGVmaW5lIFZIT1NUX1VTRVJfTUFYX0NPTkZJ R19TSVpFIDI1Ng0KPiA+Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4+IMKgwqDCoMKgICNkZWZpbmUgVkhP U1RfVVNFUl9QUk9UT0NPTF9GX01RwqDCoMKgIDANCj4gPj4+Pj4+Pj4gwqDCoMKgwqAgI2RlZmlu ZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfTE9HX1NITUZEwqDCoMKgIDENCj4gPj4+Pj4+Pj4gwqDC oMKgwqAgI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkFSUMKgwqDCoCAyDQo+ID4+Pj4+ Pj4NCj4gPj4+Pj4+PiBTaG91bGRuJ3QgdGhlcmUgYmUgYSBwcm90b2NvbCBmZWF0dXJlIGFzc29j aWF0ZWQgdG8gdGhlc2UgbmV3DQo+ID4+Pj4+Pj4gbWVzc2FnZXM/DQo+ID4+Pj4+Pj4gRWxzZSBo b3cgUUVNVSBrbm93cyB0aGUgYmFja2VuZCBzdXBwb3J0cyBpdCBvciBub3Q/DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+PiBJIGxvb2tlZCBhdCBRRU1VIGNvZGUgYW5kIGluZGVlZCBubyBwcm90b2NvbCBm ZWF0dXJlIGFzc29jaWF0ZWQsDQo+ID4+Pj4+Pj4gdGhhdCdzDQo+ID4+Pj4+Pj4gc3RyYW5nZS4u Lg0KPiA+Pj4+Pj4gTmljZSB0byBoYXZlLCBmb3Igbm93IG5vdCBhbGwgdGhlIFFFTVUgaG9zdCBk cml2ZXIgbmVlZCB0byBnZXQgdGhpcw0KPiA+Pj4+PiBjb25maWd1cmF0aW9uIHNwYWNlIGZyb20g c2xhdmUgYmFja2VuZA0KPiA+Pj4+Pj4gd2hlbiBnZXR0aW5nIHN0YXJ0LiBUaGlzIG1lc3NhZ2Ug Y2FuIGJlIHVzZWQgZm9yIG1pZ3JhdGlvbiBvZg0KPiA+Pj4+Pj4gdmhvc3QtdXNlcg0KPiA+Pj4+ PiBkZXZpY2VzLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTbyBpZiBRRU1VIHNlbmRzIHRoaXMgbWVzc2Fn ZSBidXQgdGhlIERQREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGl0DQo+ID4+Pj4+IHlldCwg dmhvc3RfdXNlcl9tc2dfaGFuZGxlcigpIHdpbGwgcmV0dXJuIGFuIGVycm9yICgidmhvc3QgcmVh ZA0KPiA+Pj4+PiBpbmNvcnJlY3QgbWVzc2FnZSIpIGFuZCB0aGUgc29ja2V0IHdpbGwgYmUgY2xv c2VkLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBIb3cgZG8gd2Ugb3ZlcmNvbWUgdGhpcz8gSSB0aGluayB3 ZSByZWFsbHkgbmVlZCBhIHNwZWMgdXBkYXRlIEFTQVAsDQo+ID4+Pj4+IGJlZm9yZSBRRU1VIHYy LjEyIGlzIG91dCAoLXJjMSBhbHJlYWR5KS4NCj4gPj4+Pj4NCj4gPj4+Pj4gRG8geW91IGhhdmUg dGltZSB0byB0YWtlIGNhcmUgb2YgdGhpcz8NCj4gPj4+PiBGb3Igbm93IHRoZXJlIGFyZSBubyBv dGhlciB1c2VycyBleGNlcHQgdXMgY2FyZSBhYm91dCB0aGlzIG1lc3NhZ2UsDQo+ID4+Pj4gOiks IGl0J3Mgbm8NCj4gPj4+IGh1cnJ5Lg0KPiA+Pj4+IEkgY2FuIHRha2UgdGhpcyBhZnRlciBRRU1V IDIuMTIgcmVsZWFzZSBhZGRpbmcgYSBuZXcgcHJvdG9jb2wNCj4gPj4+PiBmZWF0dXJlIGJpdC4N Cj4gPj4+DQo+ID4+PiBBcmUgeW91IHN1cmU/DQo+ID4+PiBJZiBJIHVuZGVyc3RhbmQgdGhlIGNv ZGUgY29ycmVjdGx5LCBhcyB0aGUgZ3Vlc3Qgd3JpdGVzIGluIGNvbmZpZyByZWdzDQo+ID4+PiBv ZiBhIHZpcnRpby1ibGsgZGV2aWNlLCAuc2V0X2NvbmZpZyBjYWxsYmFjayB3aWxsIGJlIGNhbGxl ZC4NCj4gPj4gRXhhY3RseS4NCj4gPj4+DQo+ID4+PiBJZiB5b3UgaGF2ZSBhIHZob3N0LXVzZXIg YmFja2VuZCwgaXQgd2lsbCByZWNlaXZlIHRoZSBTRVRfQ09ORklHDQo+ID4+PiByZXF1ZXN0LCBu bz8NCj4gPj4gRm9yIG5vdyB0aGlzIG9ubHkgZW5hYmxlZCBmb3IgUUVNVSB2aG9zdC11c2VyLWJs ayBkcml2ZXIsIFFFTVUNCj4gPj4gdmlydGlvLWJsayBkcml2ZXIgZGlkbid0IGhhdmUgc3VjaCBp c3N1ZS4NCj4gPg0KPiA+IFJpZ2h0Lg0KPiA+IEJ1dCBpdCB3aWxsIGJlIHJlYWxseSBwYWluZnVs IHRvIG1hbmFnZSBmb3IgZXhhbXBsZSBmb3IgY3Jvc3MtdmVyc2lvbg0KPiA+IGxpdmUgbWlncmF0 aW9uLiBPciB3aGVuIHlvdSdsbCB3YW50IHRvIHVzZSBRRU1VIHYyLjEzKyB3aXRoIGEgRFBESw0K PiA+IHYxOC4wNSBiYWNrZW5kLCB0aGUgcHJvdG9jb2wgZmVhdHVyZSB3b24ndCBiZSBuZWdvdGlh dGVkLg0KPiA+DQo+ID4gUmVhbGx5LCB0aGlzIGlzIGltcG9ydGFudCB0byBnZXQgaXQgcmlnaHQg YXQgdGhlIGJlZ2lubmluZy4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBNYXhpbWUNCj4gPj4+DQo+ ID4+PiBDaGVlcnMsDQo+ID4+PiBNYXhpbWUNCj4gPj4+DQo+ID4+Pj4+DQo+ID4+Pj4+IFRoYW5r cywNCj4gPj4+Pj4gTWF4aW1lDQo=