From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 433C1A0519; Mon, 22 Jun 2020 15:43:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0AE611D6EA; Mon, 22 Jun 2020 15:43:42 +0200 (CEST) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150085.outbound.protection.outlook.com [40.107.15.85]) by dpdk.org (Postfix) with ESMTP id AE93F1D6E9 for ; Mon, 22 Jun 2020 15:43:40 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UnVAZxBqS7sRo6dkrMihEkt6V/vkNvbbP1bYJ9eiz6CwcIhHjdYnjvrykyCwHYbdEYKDKbh4elhVXckmrXTiNp/7vlWTInF5f4Dn9+PUy5iizDZJFMollu1ys0Grcu1aeMoS1I4YYGuszOzfciGZGdyuUheii7v4WiTxe9UXRJ3dRorRzII5G5bVHKArP2tjOWqotkeZyJ2BHnkwmS446a+BGYduNqEsazanTcAdVOwCPnsMhw6uij5BGR9gVw1jQtCY1z/cAbF53219wBxXhC13WFFIMHJJNTJXKGjldXG9aSn2lNFXZ19iB9JB2RKl04Px1CJWIdkuk6jqLFCYLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IQYikd4deCuD45Dp3UtdJT2QdP8zdUvgVyGuDoSrVzY=; b=iwpaphyOmM88iBcb/e4FYDOB/gzCkf0EJIU3SoldOmhW/r82okBS2fTP4TjQLB2w9r1ZxgW7GYGVrjH1NpcL6JknstlC4DmP6USltuLe41FSM7HPKaMSxJIAEnFG/cMq0GE7Chz9zEmYm4mqMkzIpBYS0oJRyXK/Klk6qXhwWSF1kC7jjxuLpCxPF0Mfju+ZWQmqUMXBcbD9K7c0JeywaUwA9XhnlfXudr2UWOCQtUXBUv3peC2/NujCVcpb/hQbPDKaIAknYl7PYvPXWEwvapFuryEJIVcsyJ+PgtiFgcnTbhlCUrmk1vAzM9Xtly7STdKJlWEhjplltlqpzD1ekg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IQYikd4deCuD45Dp3UtdJT2QdP8zdUvgVyGuDoSrVzY=; b=QvnW63gcw02A9WhghxD00x3WW2qbPqWfivHqimNDcQVAC6DaFZibtbcTKOqRc2KSlLgxnV1lnTx9uIbYV1jcLzeNSJcIES1JXgFsGAFT6O2vWdbYpTdTPOHYPsylQRL0y+4KPMrQIxOsx9GsO8SuLUaxKseR48gOPPjhfgSJFtk= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (2603:10a6:208:f::11) by AM0PR0502MB3940.eurprd05.prod.outlook.com (2603:10a6:208:11::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.23; Mon, 22 Jun 2020 13:43:37 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998%7]) with mapi id 15.20.3109.027; Mon, 22 Jun 2020 13:43:37 +0000 From: Matan Azrad To: Maxime Coquelin , Xiao Wang CC: "dev@dpdk.org" Thread-Topic: [PATCH v1 3/4] vhost: improve device ready definition Thread-Index: AQHWRY1+WLgdYR0e1E+Ph0x8zoCWqqjfjwYAgAA4hqCAAC+iAIACniawgAG2/YCAAAcQgIAAB3QAgAAM1OCAAC/AgIAACy5A Date: Mon, 22 Jun 2020 13:43:37 +0000 Message-ID: References: <1592497686-433697-1-git-send-email-matan@mellanox.com> <1592497686-433697-4-git-send-email-matan@mellanox.com> <631a3cf3-f21a-b292-b475-93552d8f73e8@redhat.com> <96191de9-63bd-0937-5bdd-d81e9db14e9f@redhat.com> <74f35cd8-3543-ba1c-0dc7-1502599e6cf7@redhat.com> <197079f4-7436-4f9e-7b8e-b8cb42042ffb@redhat.com> <62311463-2bc1-7f8b-1ec0-da31418e1d75@redhat.com> In-Reply-To: <62311463-2bc1-7f8b-1ec0-da31418e1d75@redhat.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [77.124.38.174] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 5ca8b76e-3c59-471c-975b-08d816b24452 x-ms-traffictypediagnostic: AM0PR0502MB3940: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0442E569BC x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UxcnDKQlKZAQ/oiU/oWniZF3lscuJ21q79Sk5aqJzCoXFhd8cD92am2HFPW4qSZGv6xanw8k+GYTLeEp90ejz6f1zZj8/ttFK+ndxk97oHWyVzADG34kev3Nx2oxXmQGonRFI7JjW9iAHXl7f6dZ6oR7N27PY0e7ziFtU2Qxhr+KmUcwHMhjQIXTsHcHmc34S/IdRC72G/0YOKpSRHuvzc05r4Iru2Gsc2vBlaQ1TH+D9rhpXrxBjJDttadofn8iefBQ26uAflcWWDvr2+V9ouV3/W20HqrfhShHI7Udjfz3gSdvUof3RcWfdU6OIYENtxgY++lHIV1pL4bt9mg2oQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(396003)(346002)(366004)(39860400002)(376002)(52536014)(5660300002)(71200400001)(55016002)(316002)(8936002)(9686003)(8676002)(66446008)(64756008)(66556008)(66476007)(66946007)(7696005)(110136005)(186003)(53546011)(6506007)(26005)(2906002)(33656002)(86362001)(76116006)(478600001)(4326008)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: uXhrsu7oenefyvEMp+iY90ZAlJ+as6TJ3ctDrqaU8GpVb9/8srABBhjpYbBzc6VEm/0NwhjGdCknKeboi3n/5X0Mbqqah3jexXmWxwIYdXL5cc4fkcOzzP62KeE2Hh2JvM3RkbvjHB42RJUlofCfn2+kH6YBmNKsOLtLd9IGQUL5VqBt8qluHzFh4OeKIzg9sm5ehjV3XOqu+NeSmW+LFTGoFVmqvpbkoCKK8oGeEKsFR9GtZW1oCZwnadloIWZU2dkYpK11O1/KkXgE4aSdszkPAyGmxfa8dweZ7qMWXUsTMckHZTsto+k3+niKHY5JoH9aEKDBkdp7mcKzIIwkS6WCsySaLgHGkVkjbtVvWGjnAN8NEqGbED3EhVKOAlINkWn4pElGnJVv+FbjnTW4vhO4vHlQL4rJIOUocIZbRU7e1KKk2/TITi7CMjgEg6AkMOAbKSW1rc1F3jdbscqQhFkjlPgTL4gE1WrWmSjHvpw= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ca8b76e-3c59-471c-975b-08d816b24452 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jun 2020 13:43:37.7789 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UmBcacvgLRo0aa56f3VdBCzJqYaom5O4+qqtBVGmD1b8cqxRdJaZ+wEytq8UQuZOtdWabxCo18AptANkpcq0eQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3940 Subject: Re: [dpdk-dev] [PATCH v1 3/4] vhost: improve device ready definition 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCkZyb206IE1heGltZSBDb3F1ZWxpbjoNCj4gU2VudDogTW9uZGF5LCBKdW5lIDIyLCAyMDIw IDM6MzMgUE0NCj4gVG86IE1hdGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5veC5jb20+OyBYaWFvIFdh bmcNCj4gPHhpYW8udy53YW5nQGludGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZw0KPiBTdWJq ZWN0OiBSZTogW1BBVENIIHYxIDMvNF0gdmhvc3Q6IGltcHJvdmUgZGV2aWNlIHJlYWR5IGRlZmlu aXRpb24NCj4gDQo+IA0KPiANCj4gT24gNi8yMi8yMCAxMjowNiBQTSwgTWF0YW4gQXpyYWQgd3Jv dGU6DQo+ID4NCj4gPiBIaSBNYXhpbWUNCj4gPg0KPiA+IEZyb206IE1heGltZSBDb3F1ZWxpbiA8 bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4+IFNlbnQ6IE1vbmRheSwgSnVuZSAyMiwg MjAyMCAxMTo1NiBBTQ0KPiA+PiBUbzogTWF0YW4gQXpyYWQgPG1hdGFuQG1lbGxhbm94LmNvbT47 IFhpYW8gV2FuZw0KPiA+PiA8eGlhby53LndhbmdAaW50ZWwuY29tPg0KPiA+PiBDYzogZGV2QGRw ZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMy80XSB2aG9zdDogaW1wcm92ZSBk ZXZpY2UgcmVhZHkgZGVmaW5pdGlvbg0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBPbiA2LzIyLzIw IDEwOjQxIEFNLCBNYXRhbiBBenJhZCB3cm90ZToNCj4gPj4+PiBUaGUgaXNzdWUgaXMgaWYgeW91 IG9ubHkgY2hlY2sgcmVhZHkgc3RhdGUgb25seSBiZWZvcmUgYW5kIGFmdGVyDQo+ID4+Pj4gdGhl IG1lc3NhZ2UgYWZmZWN0aW5nIHRoZSByaW5nIGlzIGhhbmRsZWQsIGl0IGNhbiBiZSByZWFkeSBh dCBib3RoDQo+ID4+Pj4gc3RhZ2VzLCB3aGlsZSB0aGUgcmluZ3MgaGF2ZSBjaGFuZ2VkIGFuZCBz dGF0ZSBjaGFuZ2UgY2FsbGJhY2sNCj4gPj4+PiBzaG91bGQNCj4gPj4gaGF2ZSBiZWVuIGNhbGxl ZC4NCj4gPj4+IEJ1dCBpbiB0aGlzIHZlcnNpb24gSSBjaGVja2VkIHR3aWNlLCBiZWZvcmUgbWVz c2FnZSBoYW5kbGVyIGFuZA0KPiA+Pj4gYWZ0ZXINCj4gPj4gbWVzc2FnZSBoYW5kbGVyLCBzbyBp dCBzaG91bGQgY2F0Y2ggYW55IHVwZGF0ZS4NCj4gPj4NCj4gPj4gTm8sIHRoaXMgaXMgbm90IGVu b3VnaCwgd2UgaGF2ZSB0byBjaGVjayBhbHNvIGR1cmluZyBzb21lIGhhbmRsZXJzLA0KPiA+PiBz byB0aGF0IHRoZSByZWFkeSBzdGF0ZSBpcyBpbnZhbGlkYXRlZCBiZWNhdXNlIHNvbWV0aW1lcyBp dCB3aWxsIGJlDQo+ID4+IHJlYWR5IGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG1lc3NhZ2UgaGFuZGxl ciBidXQgd2l0aCBkaWZmZXJlbnQgdmFsdWVzLg0KPiA+Pg0KPiA+PiBUaGF0J3Mgd2hhdCBJIGRp ZCBpbiBteSBleGFtcGxlIHBhdGNoOg0KPiA+PiBAQCAtMTg0NywxNSArMTg5MiwxNiBAQCB2aG9z dF91c2VyX3NldF92cmluZ19raWNrKHN0cnVjdCB2aXJ0aW9fbmV0DQo+ID4+ICoqcGRldiwgc3Ry dWN0IFZob3N0VXNlck1zZyAqbXNnLA0KPiA+Pg0KPiA+PiAuLi4NCj4gPj4NCj4gPj4gICAgICAg ICBpZiAodnEtPmtpY2tmZCA+PSAwKQ0KPiA+PiAgICAgICAgICAgICAgICAgY2xvc2UodnEtPmtp Y2tmZCk7DQo+ID4+ICsNCj4gPj4gKyAgICAgICB2cS0+a2lja2ZkID0gVklSVElPX1VOSU5JVElB TElaRURfRVZFTlRGRDsNCj4gPj4gKw0KPiA+PiArICAgICAgIHZob3N0X3VzZXJfdXBkYXRlX3Zy aW5nX3N0YXRlKGRldiwgZmlsZS5pbmRleCk7DQo+ID4+ICsNCj4gPj4gICAgICAgICB2cS0+a2lj a2ZkID0gZmlsZS5mZDsNCj4gPj4NCj4gPj4NCj4gPj4gV2l0aG91dCB0aGF0LCB0aGUgcmVhZHkg Y2hlY2sgd2lsbCByZXR1cm4gcmVhZHkgYmVmb3JlIGFuZCBhZnRlciB0aGUNCj4gPj4ga2lja2Zk IGNoYW5nZWQgYW5kIHRoZSBkcml2ZXIgd29uJ3QgYmUgbm90aWZpZWQuDQo+ID4NCj4gPiBUaGUg ZHJpdmVyIHdpbGwgYmUgbm90aWZpZWQgaW4gdGhlIG5leHQgVkhPU1RfVVNFUl9TRVRfVlJJTkdf RU5BQkxFDQo+IG1lc3NhZ2UgYWNjb3JkaW5nIHRvIHYxLg0KPiA+DQo+ID4gT25lIG9mIG91ciBh c3N1bXB0aW9uIHdlIGFncmVlZCBvbiBpbiB0aGUgZGVzaWduIG1haWwgaXMgdGhhdCBpdCBkb2Vz bid0DQo+IG1ha2Ugc2Vuc2UgdGhhdCBRRU1VIHdpbGwgY2hhbmdlIHF1ZXVlIGNvbmZpZ3VyYXRp b24gd2l0aG91dCBlbmFibGluZw0KPiB0aGUgcXVldWUgYWdhaW4uDQo+ID4gQmVjYXVzZSBvZiB0 aGF0IHdlIGRlY2lkZWQgdG8gZm9yY2UgY2FsbGluZyBzdGF0ZSBjYWxsYmFjayBhZ2FpbiB3aGVu DQo+IFFFTVUgc2VuZCBWSE9TVF9VU0VSX1NFVF9WUklOR19FTkFCTEUoMSkgbWVzc2FnZSBldmVu IGlmIHRoZQ0KPiBxdWV1ZSBpcyBhbHJlYWR5IHJlYWR5Lg0KPiA+IFNvIHdoZW4gZHJpdmVyL2Fw cCBzZWUgc3RhdGUgZW5hYmxlLT5lbmFibGUsIGl0IHNob3VsZCB0YWtlIGludG8gYWNjb3VudA0K PiB0aGF0IHRoZSBxdWV1ZSBjb25maWd1cmF0aW9uIHdhcyBwcm9iYWJseSBjaGFuZ2VkLg0KPiA+ DQo+ID4gSSB0aGluayB0aGF0IHRoaXMgYXNzdW1wdGlvbiBpcyBjb3JyZWN0IGFjY29yZGluZyB0 byB0aGUgUUVNVSBjb2RlLg0KPiANCj4gWWVzLCB0aGlzIHdhcyBvdXIgaW5pdGlhbCBhc3N1bXB0 aW9uLg0KPiBCdXQgbm93IGxvb2tpbmcgaW50byB0aGUgZGV0YWlscyBvZiB0aGUgaW1wbGVtZW50 YXRpb24sIEkgZmluZCBpdCBpcyBldmVuDQo+IGNsZWFuZXIgJiBjbGVhcmVyIG5vdCB0byBkbyB0 aGlzIGFzc3VtcHRpb24uDQo+IA0KPiA+IFRoYXQncyB3aHkgSSBwcmVmZXIgdG8gY29sbGVjdCBh bGwgdGhlIHJlYWR5IGNoZWNrcyBjYWxsYmFja3MgKHF1ZXVlIHN0YXRlIGFuZA0KPiBkZXZpY2Ug bmV3XGNvbmYpIHRvIG9uZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBt ZXNzYWdlDQo+IGhhbmRsZXI6DQo+ID4gUHNldWRvOg0KPiA+ICB2aG9zdF91c2VyX3VwZGF0ZV9y ZWFkeV9zdGF0dXNlcygpIHsNCj4gPiAJc3dpdGNoIChtc2cpOg0KPiA+IAkJY2FzZSBlbmFibGU6 DQo+ID4gCQkJaWYoZW5hYmxlIGlzIDEpDQo+ID4gCQkJCWZvcmNlIHF1ZXVlIHN0YXRlID0xLg0K PiA+IAkJY2FzZSBjYWxsZmQNCj4gPiAJCWNhc2Uga2lja2ZkDQo+ID4gCQkJCS4uLi4uDQo+ID4g CQlDaGVjayBxdWV1ZSBhbmQgZGV2aWNlIHJlYWR5ICsgY2FsbCBjYWxsYmFja3MgaWYgbmVlZGVk Li4NCj4gPiAJCURlZmF1bHQNCj4gPiAJCQlSZXR1cm47DQo+ID4gfQ0KPiANCj4gSSBmaW5kIGl0 IG1vcmUgbmF0dXJhbCB0byAiaW52YWxpZGF0ZSIgcmVhZHkgc3RhdGUgd2hlcmUgaXQgaXMgaGFu ZGxlZCAoYWZ0ZXINCj4gdnJpbmdfaW52YWxpZGF0ZSgpLCBiZWZvcmUgc2V0dGluZyBuZXcgRkQg Zm9yIGNhbGwgJiBraWNrLCAuLi4pDQoNCkkgdGhpbmsgdGhhdCBpZiB5b3UgZ28gd2l0aCB0aGlz IGRpcmVjdGlvbiwgaWYgdGhlIGZpcnN0IHF1ZXVlIHBhaXIgaXMgaW52YWxpZGF0ZWQsIHlvdSBu ZWVkIHRvIG5vdGlmeSBhcHBcZHJpdmVyIGFsc28gYWJvdXQgZGV2aWNlIHJlYWR5IGNoYW5nZS4N CkFsc28gaXQgd2lsbCBjYXVzZSAyIG5vdGlmaWNhdGlvbnMgdG8gdGhlIGRyaXZlciBpbnN0ZWFk IG9mIG9uZSBpbiBjYXNlIG9mIEZEIGNoYW5nZS4NCg0KV2h5IG5vdCB0byB0YWtlIHRoaXMgY29y cmVjdCBhc3N1bXB0aW9uIGFuZCB1cGRhdGUgcmVhZHkgc3RhdGUgb25seSBpbiBvbmUgcG9pbnQg aW4gdGhlIGNvZGUgaW5zdGVhZCBvZiBkb2luZyBpdCBpbiBhbGwgdGhlIGNvbmZpZ3VyYXRpb24g aGFuZGxlcnMgYXJvdW5kPw0KSU1PLCBJdCBpcyBjb3JyZWN0LCBsZXNzIGludHJ1c2l2ZSwgc2lt cGxlciwgY2xlYXJlciBhbmQgY2xlYW5lci4NCkluIGFkZGl0aW9uIGl0IHNhdmVzIHRoZSBzdHls ZSB0aGF0IGFscmVhZHkgdXNlZCBpbiB0aGlzIGZ1bmN0aW9uIGluOg0KLSB2aG9zdF91c2VyX2No ZWNrX2FuZF9hbGxvY19xdWV1ZV9wYWlyDQotIAlzd2l0Y2ggKHJlcXVlc3QpIHsNCgljYXNlIFZI T1NUX1VTRVJfU0VUX0ZFQVRVUkVTOg0KCWNhc2UgVkhPU1RfVVNFUl9TRVRfUFJPVE9DT0xfRkVB VFVSRVM6DQoJY2FzZSBWSE9TVF9VU0VSX1NFVF9PV05FUjoNCgljYXNlIFZIT1NUX1VTRVJfU0VU X01FTV9UQUJMRToNCgljYXNlIFZIT1NUX1VTRVJfU0VUX0xPR19CQVNFOg0KCWNhc2UgVkhPU1Rf VVNFUl9TRVRfTE9HX0ZEOg0KCWNhc2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfTlVNOg0KCWNhc2Ug VkhPU1RfVVNFUl9TRVRfVlJJTkdfQUREUjoNCgljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0JB U0U6DQoJY2FzZSBWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLOg0KCWNhc2UgVkhPU1RfVVNFUl9T RVRfVlJJTkdfQ0FMTDoNCgljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VSUjoNCgljYXNlIFZI T1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRToNCgljYXNlIFZIT1NUX1VTRVJfU0VORF9SQVJQOg0K CWNhc2UgVkhPU1RfVVNFUl9ORVRfU0VUX01UVToNCgljYXNlIFZIT1NUX1VTRVJfU0VUX1NMQVZF X1JFUV9GRDoNCgkJCXZob3N0X3VzZXJfbG9ja19hbGxfcXVldWVfcGFpcnMoZGV2KTsNCg0KTWF0 YW4NCg0KDQoNCg0K