From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E7DB1A0C43; Fri, 24 Sep 2021 03:53:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6590A40687; Fri, 24 Sep 2021 03:53:19 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 835D040142 for ; Fri, 24 Sep 2021 03:53:17 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10116"; a="211058333" X-IronPort-AV: E=Sophos;i="5.85,318,1624345200"; d="scan'208";a="211058333" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 18:53:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,318,1624345200"; d="scan'208";a="551379552" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 23 Sep 2021 18:53:16 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 23 Sep 2021 18:53:15 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Thu, 23 Sep 2021 18:53:15 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Thu, 23 Sep 2021 18:53:15 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.47) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Thu, 23 Sep 2021 18:53:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mkeJEx30CXvC/Ok242acFiI0hV/QsjQpYiLWn58qAt2ziaboxXKdqHYPX0RKdVcY0jR6YSpqmrrVd8+Tq4mT4e2IZfiv6SFZ3vQiiUiE+1mYRhxWa1QAUOZAvc+xh4Bi1i0nO0wnjoXWzhO6ef36653IIKWln32Ow2p+5TWnKp6QRWd+zjvxg3BOXQX52cBBkoeJUgRJVFVvK2r2GrnI5dD89qLTUrVlgIlTCsr7B5jXQPxHqZkz0+8gYa4Q271F/HWRNrjVXlvXkV+ANSavrNMeIXKiVQ1NQa2KJjYVDC3aEV2wMTyTqo0eyYPlwKdY7gyxOK6/yWqMQu0eIUQixQ== 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; bh=ndtAVTtwAlGes+MARhpppig41Y2mWWG7HTYo/PXnnN0=; b=mZluawDyMyG9Oo1XHSROci7TeCg8svhCiDzsvUKnLkg6k8sfv9G9QzoCD5fnJ9/m+CYEeNbsP9TR/kSljA4zKaf/bjz/seE0Qhm/xJ5//EDb6i/zTuWNiYvrJ1SDi2sTebNxZW22Ca2lcuHlp6iDBT40YRIFAo1ORi87UFAWZ8fZ2nrJq7UBGzdKV0z0r9qVAb1SRMPqN2A5wnfjtgqmgWsL7kL7b3qCpGfumXm9znjXaWEJ6Utrx3d8o5NbFvK1Otndru/w1WdFLzSBO84OKolBzYBRN6nZJ01l4C9tFHsWasAxf2xHDuhZlcy7GPDtQPgZmfJ4BhubiLTe8AiRHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ndtAVTtwAlGes+MARhpppig41Y2mWWG7HTYo/PXnnN0=; b=qZ6RijFOHtiFdSw8iU8cgA7oIDC3TOmdLBPFRi8l7iDTnM+sisQU/XaufCOrc6RYrUUYwRkBpEpvgaNXMJtLQK2WJGRlkjJMjYO+x/p63oBiSgo4IK7cA0cRR3j1f9ju8TO5y1XLCoUS/kYo4BTY3T5+MmfdmCxmQnj9GBWOvRQ= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3854.namprd11.prod.outlook.com (2603:10b6:208:f0::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13; Fri, 24 Sep 2021 01:53:12 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801%3]) with mapi id 15.20.4544.014; Fri, 24 Sep 2021 01:53:12 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "Hu, Jiayu" , "Ding, Xuan" , "dev@dpdk.org" , "Burakov, Anatoly" CC: "Jiang, Cheng1" , "Richardson, Bruce" , "Pai G, Sunil" , "Wang, Yinan" , "Yang, YvonneX" Thread-Topic: [PATCH v2 2/2] vhost: enable IOMMU for async vhost Thread-Index: AQHXq4WKCyP0fwu0WUSens/+nl3mqquxunaAgAAE3YCAALWNgA== Date: Fri, 24 Sep 2021 01:53:12 +0000 Message-ID: References: <20210901053044.109901-1-xuan.ding@intel.com> <20210917052546.23883-1-xuan.ding@intel.com> <20210917052546.23883-3-xuan.ding@intel.com> <917d6068d3cc484b95e9e884cc9a4f3b@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN 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=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a725a813-9138-454a-bbec-08d97efe1125 x-ms-traffictypediagnostic: MN2PR11MB3854: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3EfJ2H3ZozP+soELcDZ0A42XEw2OiTzsnQnV3OpBqdYFy/Wjnl+y5V03B7DXKfoV01Wxg02Nql07q/cuILlA6fyep3SBKR4kKXNdCxKabc547yT38+2eMPtP0N9RnvdUhTgJ33LO9+Xixg+roRtfBZGXgH/7SdDkx10BBll1Pnafg56+rm9QgWyllRGB3vYdUcypyRseo5+3RUngtQrknTR8i1Msd5zwvw4QMxTxacTit08Qorc0ieSerCOxTxh31kIpKm380reJB+Tp/xfpgOuZgVJu/BmUoYezrNwgFxY231mbvO1y2AvZZcCR1+oURvDi3ysMeqhrL6XRdlSv6ZoBgEGMgTPV65pdxGppCsbX44jXJ6+jmhielll46KRLSgIa72HjYRFRG1snM2U7XqogDUG8YVEucF1n44lewZ0hYMvBprHZzJdkztSZL7Eq9fUAgjcOCK6HjAL9eD1bxX0s3LAtTldnQeu2JTWPf4B44/Gl44HUzh+DtU575ri9ynr7vluK1NswdEoeMYb+ISUuAEaM11OB2FecN0f1j8z10X8MyZXwgnqVBzhPOhl2Z9h5PE6ZqREdCyew1sAuoe0Z/HoHlrGHw7W1SsRQ0sD+TFe52CWSjgxJ7ONahtgiaOUTPtcopRDQ6U/28a33HVZEIv5d31idHmhYAQKDPMAn9Gvf0bQei0URRtLLCJLgLSXeridBi614pMH1JKV2bg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(5660300002)(122000001)(38100700002)(2906002)(8676002)(9686003)(7696005)(52536014)(6636002)(26005)(86362001)(71200400001)(316002)(55016002)(33656002)(4326008)(54906003)(53546011)(107886003)(186003)(66556008)(508600001)(66446008)(38070700005)(64756008)(66946007)(76116006)(6506007)(83380400001)(8936002)(110136005)(66476007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bllPUm4vVXVNdUNnVllUQ2RXa2FudTJ4VlVQSmlzUVFoZkpHUzVFY1ZLL2xX?= =?utf-8?B?NEF5dWJHODJuc0FyT3RQVU1wS1N6ZkVFVk5ralRiNEtSa1hEQ0ltbkpWSUFX?= =?utf-8?B?SmJ0SWVRdXUwMVJZei9yRXdWNUJqSlRNekdlaDFzM3dvejZSWVRWWEs0ZGdI?= =?utf-8?B?djVQVjRyRnVLU3RlZGdJOG9sN0dSaWVIa0ovM3kzNUc3R0FJZ1BlTUtacWl2?= =?utf-8?B?YVBEaUNVaE5lVWxsTVh0OFRhckphYUxlSkdHTDFKKzZ0NmtqWE1VMnhLdURm?= =?utf-8?B?cllJQ21oNG1RUDYzQkkyZHBDeTMxSzhTWnNhT0tYMFQvbzE4cWtybTZ4NlRr?= =?utf-8?B?RUsya0tCZmZQeG1vMHByN1ZiY05LZUxnV1JGOHBNdE5uRmY0YWJRUHVmeGJs?= =?utf-8?B?TmtwaXRMT1MyeHk3REFIMXlSdTBCYmRoMnpiVUN3MHc2NzNhWDhKZDg1TCt3?= =?utf-8?B?Q1VSRkdWSGhjWVhlUGlmVWFueC9PYkQxOEZVSnRnOWErdDZrSnFRdlkvV2lV?= =?utf-8?B?aGVOYVZkMFFYZ08wVVlYbHFUaG1lZ24rVE1JNzJSeVVRYS9MRkNVZ3BiVE1S?= =?utf-8?B?VTk3YUY4RzI4ZGdjcytna1BOYnQwbjYxaUJGSVcycnNnaEh5UVZ0T0RGTEhM?= =?utf-8?B?R25XRGlvVmlIRDJKYXhKaTBpbUt3ajBabnNwTml3TFE0UDFHYkd4a1FOdnEv?= =?utf-8?B?TzFpWHFGL2x6K2M4cEovbmExL2MzTkF6em4yRVdobDcvc2t0NzY1L05HN3FB?= =?utf-8?B?dFh2QWVmWmZpYmhYMlNtVzhUOWFwbXB2R1RvUmk4L3lTVUdUUW1XYVdsWmZP?= =?utf-8?B?ai91cHVyTVlUaUdMcEVzb0JqcTJlTjd5YnQxOWFpV2YwQzNQZSsrczJKeDNG?= =?utf-8?B?RTFFbGRqR2ZidXdjM0ROWmlwK2dONzE1RWE5dlA5Vi9YZ2diVm91TVN5U2hZ?= =?utf-8?B?a2ZHdlNTYUZMemFGblRjVVVvcjRyN2hwNWJRbUIvNS9yd0M4Tm1JZEs4NEF6?= =?utf-8?B?YnBuL2JnWXFJQVZWYUtkSUxqSU9qTXdHVTBHSy9xRlJTc1BrNGxvTUtiMXFI?= =?utf-8?B?TUtncXR2NlgvblRUbTRJemt3STJiOTdpOHd0OU4zN3JmeW5Pam82TFRlYXhB?= =?utf-8?B?UFpqTXV1WU05WkRNK0xLWXZFZ09mVmNRWlEyQjhXdHNPdG1tdG9jb0xQWEtl?= =?utf-8?B?MTMxNG5EaDJhamo2U1F1MVEwaHRIU1k5U0VEQ0NLN1NBMUxhbDNEbUVtU3NN?= =?utf-8?B?WEdIbUtvVnZ3cWdob2pXMmNYdnRySWZOM1MxL0lvZUw2aGFaS0dpeGcrMkx6?= =?utf-8?B?K3VuMnhlMk1zNWRZclFNTS9KNGpLaStUTXRSaWR0RFpwSjNiaTZ1a29WQkFT?= =?utf-8?B?VG1XKyswbHQweVhVTXdkSzVpMFpqTHZKUDBhWnkyRTFrTlduUWdDazJ1aGlU?= =?utf-8?B?aE9yWXhaRzN3UVQzMjl5Z3h6YzV4a3F0K2xlaXdUam96eC9HWXIwU3hUOG1T?= =?utf-8?B?bHE5OHYwTFQzaHRGUkFQTm1FYkswYUdmczB6d2FTaU8zSFJVNDRTRi95Q3Ev?= =?utf-8?B?dkRBTWtlUTVJbzc5UXJDdHZoK01JL3BNNmdTOHk5eHZXMHhCc1BSVTh2QWxV?= =?utf-8?B?aEVZVm1sWkc4SHdhTkJXYVg3MjI1S0VydWFqSFhZSmdZbk1pOFpsWkhUbFov?= =?utf-8?B?L0hNVDlpTFh4WnZxaTV5UzcyM3FsVzN2dFlneTdEb1llT3pzbE5OT2NsSnBD?= =?utf-8?Q?edXNCdN2LcFjkfgRW8qrXQhV+d34thXHbVy/F9C?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a725a813-9138-454a-bbec-08d97efe1125 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Sep 2021 01:53:12.2935 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0BZaFw0ghcZ/Hqa9ikgnsj2APMJOf1uP6ayIRHw0UDExeeWtUnJw5ZXLlG9BAKVrxxLc5eQr1wIMhZ0lDKOmzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3854 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 2/2] vhost: enable IOMMU for async vhost X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIz LCAyMDIxIDEwOjU2IFBNDQo+IFRvOiBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT47IERp bmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+Ow0KPiBkZXZAZHBkay5vcmc7IEJ1cmFrb3Ys IEFuYXRvbHkgPGFuYXRvbHkuYnVyYWtvdkBpbnRlbC5jb20+OyBYaWEsIENoZW5ibw0KPiA8Y2hl bmJvLnhpYUBpbnRlbC5jb20+DQo+IENjOiBKaWFuZywgQ2hlbmcxIDxjaGVuZzEuamlhbmdAaW50 ZWwuY29tPjsgUmljaGFyZHNvbiwgQnJ1Y2UNCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29t PjsgUGFpIEcsIFN1bmlsIDxzdW5pbC5wYWkuZ0BpbnRlbC5jb20+OyBXYW5nLA0KPiBZaW5hbiA8 eWluYW4ud2FuZ0BpbnRlbC5jb20+OyBZYW5nLCBZdm9ubmVYIDx5dm9ubmV4LnlhbmdAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDIvMl0gdmhvc3Q6IGVuYWJsZSBJT01NVSBm b3IgYXN5bmMgdmhvc3QNCj4gDQo+IA0KPiANCj4gT24gOS8yMy8yMSAxNjozOSwgSHUsIEppYXl1 IHdyb3RlOg0KPiA+IEhpIFh1YW4sDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4gRnJvbTogRGluZywgWHVhbiA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4gPj4gU2Vu dDogRnJpZGF5LCBTZXB0ZW1iZXIgMTcsIDIwMjEgMToyNiBQTQ0KPiA+PiBUbzogZGV2QGRwZGsu b3JnOyBCdXJha292LCBBbmF0b2x5IDxhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tPjsNCj4gPj4g bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb207IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVs LmNvbT4NCj4gPj4gQ2M6IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29tPjsgSmlhbmcsIENo ZW5nMSA8Y2hlbmcxLmppYW5nQGludGVsLmNvbT47DQo+ID4+IFJpY2hhcmRzb24sIEJydWNlIDxi cnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IFBhaSBHLCBTdW5pbA0KPiA+PiA8c3VuaWwucGFp LmdAaW50ZWwuY29tPjsgV2FuZywgWWluYW4gPHlpbmFuLndhbmdAaW50ZWwuY29tPjsgWWFuZywN Cj4gPj4gWXZvbm5lWCA8eXZvbm5leC55YW5nQGludGVsLmNvbT47IERpbmcsIFh1YW4gPHh1YW4u ZGluZ0BpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFtQQVRDSCB2MiAyLzJdIHZob3N0OiBlbmFi bGUgSU9NTVUgZm9yIGFzeW5jIHZob3N0DQo+ID4+DQo+ID4+IFRoZSB1c2Ugb2YgSU9NTVUgaGFz IG1hbnkgYWR2YW50YWdlcywgc3VjaCBhcyBpc29sYXRpb24gYW5kIGFkZHJlc3MNCj4gPj4gdHJh bnNsYXRpb24uIFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgY2FwYmlsaXR5IG9mIERNQSBlbmdpbmUg dG8gdXNlIElPTU1VIGlmDQo+ID4+IHRoZSBETUEgZW5naW5lIGlzIGJvdW5kIHRvIHZmaW8uDQo+ ID4+DQo+ID4+IFdoZW4gc2V0IG1lbW9yeSB0YWJsZSwgdGhlIGd1ZXN0IG1lbW9yeSB3aWxsIGJl IG1hcHBlZCBpbnRvIHRoZSBkZWZhdWx0DQo+ID4+IGNvbnRhaW5lciBvZiBEUERLLg0KPiA+Pg0K PiA+PiBTaWduZWQtb2ZmLWJ5OiBYdWFuIERpbmcgPHh1YW4uZGluZ0BpbnRlbC5jb20+DQo+ID4+ IC0tLQ0KPiA+PiAgIGxpYi92aG9zdC9ydGVfdmhvc3QuaCAgfCAgMSArDQo+ID4+ICAgbGliL3Zo b3N0L3Zob3N0X3VzZXIuYyB8IDU3DQo+ID4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQ0KPiA+PiAgIDIgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL3Zob3N0L3J0ZV92aG9z dC5oIGIvbGliL3Zob3N0L3J0ZV92aG9zdC5oIGluZGV4DQo+ID4+IDhkODc1ZTkzMjIuLmUwNTM3 MjQ5ZjMgMTAwNjQ0DQo+ID4+IC0tLSBhL2xpYi92aG9zdC9ydGVfdmhvc3QuaA0KPiA+PiArKysg Yi9saWIvdmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4gQEAgLTEyNyw2ICsxMjcsNyBAQCBzdHJ1Y3Qg cnRlX3Zob3N0X21lbV9yZWdpb24gew0KPiA+PiAgIAl2b2lkCSAqbW1hcF9hZGRyOw0KPiA+PiAg IAl1aW50NjRfdCBtbWFwX3NpemU7DQo+ID4+ICAgCWludCBmZDsNCj4gPj4gKwl1aW50NjRfdCBk bWFfbWFwX3N1Y2Nlc3M7DQo+ID4NCj4gPiBIb3cgYWJvdXQgdXNpbmcgYm9vbCBmb3IgZG1hX21h cF9zdWNjZXNzPw0KPiANCj4gVGhlIGJpZ2dlciBwcm9ibGVtIGhlcmUgaXMgdGhhdCB5b3UgYXJl IGJyZWFraW5nIHRoZSBBQkkuDQoNCk1heWJlIHRoaXMga2luZCBvZiBkcml2ZXItZmFjaW5nIHN0 cnVjdHMvZnVuY3Rpb25zIHNob3VsZCBiZSByZW1vdmVkDQpmcm9tIEFCSSwgc2luY2Ugd2UgYXJl IHJlZmFjdG9yaW5nIERQREsgQUJJIHJlY2VudGx5Lg0KDQovQ2hlbmJvDQoNCj4gDQo+ID4+ICAg fTsNCj4gPj4NCj4gPj4gICAvKioNCg0K