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 BF1E8A0C43; Thu, 23 Sep 2021 10:54:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C74E41225; Thu, 23 Sep 2021 10:54:11 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 2053F410DD for ; Thu, 23 Sep 2021 10:54:09 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10115"; a="210874588" X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="210874588" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Sep 2021 01:54:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,316,1624345200"; d="scan'208";a="436530887" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga003.jf.intel.com with ESMTP; 23 Sep 2021 01:54:08 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX604.amr.corp.intel.com (10.22.229.17) 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 01:54:08 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX610.amr.corp.intel.com (10.22.229.23) 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 01:54:08 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) 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 01:54:08 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (134.134.137.102) 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 01:54:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VJC2ZDJV0WD7fWJ6sjxKzVTmrWZ/sF/rdqhxBOKRH0RUelclgWb84xFC/z3/Rkmq8BcFWaU4uBUU9E0MbzsSryDB9DdfRP26rkGLxd1kCVwKR0VsSVQ44CCviPxjy5jThzO+ouzlR5qSN0V5AAYxf2keP6bmWwai7prekXlOqYyF4dGU0mLgVFJ0BcW1dLaLSu6H85t6zcAl/NxtNR7xlWQQQEs46CXsgqBj7VOV/3ej1VbG/q1SEddBm8t/MtlymSNsrNJLFq26Bis87KgkMo0YueWEU3LBqPgAXdGFWNL10h7ZhifoUSua4urybjaplS8eBosJdMpufj510ZwLQQ== 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=CS+5m5b7dI4R/tS9yIrTaYHpaoBPCjwAhMtszjLfVgQ=; b=ZXnSxey9zrFuqfuCkTy852HhBExeYVm4i1hzQL8Bg8nHLjrgba+n5PlRAviPprsz+tHWRchbkXD0kLjJlIGos3j+VSqFeP3v6FgctvEePN9iI0RHV84J09fU0v7yGrp55Q3DJBH+U76CrWaI6QUvyeIMdJW898bL5KIiTmcLd+gLx03WqPH9pU+z2C0zPEgO6Hd6kKY5eto1WLCrFp0Kq8u11lPg+p1f50Ziv4PPHA9YKXeTVRtQDBSOwqOgAcQuvyDPitZE23pQA9IY2OtoxuDoEE1tvODtBiimYK9YTbaHsa98OBr/VtbsnSm4ibEuLB4JmEYsD06Z5C9De5lyuA== 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=CS+5m5b7dI4R/tS9yIrTaYHpaoBPCjwAhMtszjLfVgQ=; b=R3RBPFkUIupRFJ6A3nDKx67pjpW/4cQPqkbF7uqn1bD3Omw9WXgnDmfa3YsEOi/RKfpCoxWgRA6rjhZYpCT/onJmqmJR3p8CnJBV7xVobPZW9sEGIG01Z6YDvmlK1ab2wZ3kRHLjE14PhxFyauYJLAmBHVfr1LhNywRnvgacAsA= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB4015.namprd11.prod.outlook.com (2603:10b6:208:154::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.14; Thu, 23 Sep 2021 08:54:06 +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; Thu, 23 Sep 2021 08:54:06 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , =?utf-8?B?RXVnZW5pbyBQw6lyZXo=?= CC: "dev@dpdk.org" , Pei Zhang , Jason Wang Thread-Topic: [PATCH] vhost: Clean iotlb cache on vring stop Thread-Index: AQHXm15oomlvFF+bA0e0R+7xpMFXs6uxdMYAgAAD0TCAAACqAIAAANpw Date: Thu, 23 Sep 2021 08:54:06 +0000 Message-ID: References: <20210827161231.579968-1-eperezma@redhat.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: 216b2c15-d5af-46c0-01ec-08d97e6fb389 x-ms-traffictypediagnostic: MN2PR11MB4015: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fpPwFD+K/BonxnslySYW9kPCR+PpIZeMycD33+W4sMCXU9XID4pTyEC2yhq2Gvh7ZB3RJprb9EgHHmS29CdfZWq16IjOwop4s/vI1hYV3wF5lxORqyv+FYF1v96uZWdT96GoSf5E9F8S+kvGLu7Sv7/HW8hRfYqkkwdwSY8nVoIGh7jqgv5ds3mDncQS3tb9mheaFqPmklaVa3thkv/CgLJltnl5MJefxFWYzSQxBhwjvGRX3Ui8jHr72dCjWo+XSsvhH8q0+YH0fu4TOMBW0m5IKSg1k0STXW1uQBbVvsPZu86kGkXulzhYqZP8c1lZ6bPSwP1O2UGvHy7IQj/8sHIEvM0zmJiGmLB8js8pNkGrU0Z4/cyb0U0Chfm+kz0kBbYFseAOEwNEEM1eYu4SH8AHopKPVPghxHg4Zlby0Lh4z0s6L4/m7QSwHncN4F/gj5t51fbZs/4ZYVSSg3CO58A0ARvvYaPTFV0t6Ud2mbWHZKMuM0vhNHc85YFaQvV+ZiFa4w8eqYI8wXsTcL0E0Q6QAtIsUScT6zKN16tB3OtNmWok+hBrUrxmv+97sBy4YDTweRAH/f5DqobH40w1zgScm0SR4V2vWNhfo/6+YKhZfAhe0bRPP+xCL/GArhD63kB773qJcrn/p+M5rBFBg3JOl/DWHjao/pranN1LZiNMt5P54qle9k/c3cQBEXr7ZLlLiYLzt1pohKk33l3qzA== 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)(83380400001)(54906003)(55016002)(38100700002)(26005)(122000001)(316002)(110136005)(86362001)(8936002)(508600001)(76116006)(9686003)(71200400001)(4326008)(33656002)(66574015)(38070700005)(53546011)(6506007)(5660300002)(52536014)(7696005)(66946007)(66476007)(64756008)(66446008)(186003)(8676002)(2906002)(66556008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MVFZSERRNWxoSW9wNXpyaytOd1lhNkxEZGVyL1VPdHJZNTlBeHptYUs4NUN6?= =?utf-8?B?cHhlZCttdDVTUGExRk5DaEFHWUd5eWtKNnpsSHIzTldacUhOa2dOYkhDNjZj?= =?utf-8?B?L29ERGhkWkkza3ZzQVl3b3poMEUrbzc3Q0MyZm9LTTJyR0lpNUkrNXBDRGVp?= =?utf-8?B?aHNwWm1DVi80L0NzSHlQdS9CRndNcmhmUUFEUFkwSk9QdWdEa0dFYUFzazJv?= =?utf-8?B?S3F5OGJEUDlGT2VoU2hXclZQc3l2NFhzc3pBbFRtdUFla2lkN0tGdjlsalZs?= =?utf-8?B?RjAvbkRsU2ZpYjdzUFRNdFBoRTduTXhjbjZnSkRQTkZCTUJhbWh2WURZbER5?= =?utf-8?B?d3ZTVHlKNmVsRXEybTl5bWNMclhic2FTUnpSMVhJa1JEWm5nbHlKeFBJVVBI?= =?utf-8?B?SytMN0R5V2R3SUl3Y0hzdFd6eWpxODI3ZUpmQjNhbHJYcHRNaUllUXM4c3dh?= =?utf-8?B?UXRMTjl0U2cydnpHcWFXREVGSE10MlJUMGZRQmxuNFdvSG8xb3R4eEc2aktK?= =?utf-8?B?Mm5iVTJ1dHhCTXhaTVd0RHhhS0k5TExIaEdnMTFQeXhjRmIxYS83c1VCVHh1?= =?utf-8?B?YTZ4MHJWSmQ0ejFRRCtxWXRtQW5SekM3Rm8rNlJVZ0ZJeTBZNVF5QkdXZE12?= =?utf-8?B?ZkFzcjdUZzhQckV5THhzRTloN3JyemdDNS9ZaWNpYXhOaUE1VWp4THlEOHZR?= =?utf-8?B?UGdHdGhRTnNNRG1kc054SUhzb3kzbEJWUUJMNHZ0UGRzV3ZIY2J5TWdXcTZv?= =?utf-8?B?Q01FZzY4b0paRXR4bG1tNWdtL3pCTnFkN29IQy9ndE5oVXQrbVRXKy9SYXFU?= =?utf-8?B?Nnc3MzUxbEsvakNQT2gxc0U1cHZmZm5oaDNZSTJFUTE3djlkak5PVVl0UDBK?= =?utf-8?B?eEt2V2xwYXRwb0EwNWZxK3JLOGxaaVhLVVRUNlZ2UndQWU9PUmlqYWZOKzRM?= =?utf-8?B?UXBhYmhoWHlJNWdOeHl6cmllU0szR3d3VGNiSGVRZlBHSkJCRjBGWWM4NnJo?= =?utf-8?B?UFZ6REZSM21iRmZIR3NNTUtpVXJoU01GZjN6RlZ2SE8xYjlUMDRLOEhzVGM4?= =?utf-8?B?ajNoSzdqeXkxQkhYTlVuUStlZlZORlZMK2xOT3RoekVkZHNzdFQzRm1xNTFz?= =?utf-8?B?KzVuRTB6ZlVXOTUvOGVaTXNVMFoxN05yenQ0bk9RNjZRNGpiUHNDZWJhbHAv?= =?utf-8?B?eFRsTEJqSVBuZjRmZTdQRk1FS09pYWtGdjFiVzBtenNObDFiUU45SURtM3Vr?= =?utf-8?B?ZFcwYzBDNWFNSE9zTFl5OHBTa0dIbHIwQ0dNeXZQRmpSdW5ML3lvS040WE11?= =?utf-8?B?ck1STFNTcUQ2bUtLc1NETVl5djFNQ3dqMTY3N2trL2QvbENoSTBvdFRQTStX?= =?utf-8?B?TXUrbDByUlZ2eDlvUGZvcWFqUktyZGllb3VUN0RIUzg0WGdVUE1sWFdCUGhk?= =?utf-8?B?VlIvbWxDZzhUT3BsN0RMN2xBSGFEeDZoRFAvR1lWOUExRWw0N2FWOEFPYWNL?= =?utf-8?B?dWg2RXNpaWtIQ3BoMFNUL0JxaWxteFpBcHlYOWZsc293YlFScm9QRnJlM29t?= =?utf-8?B?NzZBd3JodTdXa056K1BRQ0FJQWFMUnR2djJCUWxROGU3dHpNdDBTdmFlOFVH?= =?utf-8?B?M0I4MXMyZWxFaVpPWmV3ZEVNclhoMm9uaUErRDgyNXhudy9RcG0zTFRrdUpF?= =?utf-8?B?LzJ0ZWpvcHl2K3hLNkVWMEM0T2hqbHpJTDlITXBvekpCYW03VDF2U1RhZEkz?= =?utf-8?Q?D2rF/ZSAm3ft2DwXtG4zr0kYtCEdUAN2a9RunPR?= x-ms-exchange-transport-forked: True 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: 216b2c15-d5af-46c0-01ec-08d97e6fb389 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2021 08:54:06.7376 (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: 5WtvnXIBUe7O2efA/A7ozLXdplUf5yEjv7ROpXdLJOPMgZMYH4vWeRxqvrkukZ/hxjJ+w+E1hJfsg8g8zQMyIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4015 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH] vhost: Clean iotlb cache on vring stop 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 LCAyMDIxIDQ6NTAgUE0NCj4gVG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47 IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KPiBDYzogZGV2QGRwZGsub3Jn OyBQZWkgWmhhbmcgPHBlemhhbmdAcmVkaGF0LmNvbT47IEphc29uIFdhbmcNCj4gPGphc293YW5n QHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZob3N0OiBDbGVhbiBpb3RsYiBj YWNoZSBvbiB2cmluZyBzdG9wDQo+IA0KPiANCj4gDQo+IE9uIDkvMjMvMjEgMTA6NDgsIFhpYSwg Q2hlbmJvIHdyb3RlOg0KPiA+IEhpIE1heGltZSwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkBy ZWRoYXQuY29tPg0KPiA+PiBTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDIzLCAyMDIxIDQ6MzQg UE0NCj4gPj4gVG86IEV1Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPjsgWGlhLCBD aGVuYm8gPGNoZW5iby54aWFAaW50ZWwuY29tPg0KPiA+PiBDYzogZGV2QGRwZGsub3JnOyBQZWkg WmhhbmcgPHBlemhhbmdAcmVkaGF0LmNvbT47IEphc29uIFdhbmcNCj4gPj4gPGphc293YW5nQHJl ZGhhdC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHZob3N0OiBDbGVhbiBpb3RsYiBj YWNoZSBvbiB2cmluZyBzdG9wDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDgvMjcvMjEgMTg6 MTIsIEV1Z2VuaW8gUMOpcmV6IHdyb3RlOg0KPiA+Pj4gT2xkIElPVkEgY2FjaGUgZW50cmllcyBh cmUgbGVmdCB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlIG9uIHZpcnRpbyBkcml2ZXINCj4gPj4+IGlu IFZNLiBJbiBjYXNlIHRoYXQgYWxsIHRoZXNlIG9sZCBlbnRyaWVzIGhhdmUgaW92YSBhZGRyZXNz ZXMgbGVzc2VyDQo+ID4+PiB0aGFuIG5ldyBpb3ZhIGVudHJpZXMsIHZob3N0IGNvZGUgd2lsbCBu ZWVkIHRvIGl0ZXJhdGUgYWxsIHRoZSBjYWNoZSB0bw0KPiA+Pj4gZmluZCB0aGUgbmV3IG9uZXMu IEluIGNhc2Ugb2YganVzdCBhIG5ldyBpb3ZhIGVudHJ5IG5lZWRlZCBmb3IgdGhlIG5ldw0KPiA+ Pj4gdHJhbnNsYXRpb25zLCB0aGlzIGNvbmRpdGlvbiB3aWxsIGxhc3QgZm9yZXZlci4NCj4gPj4+ DQo+ID4+PiBUaGlzIGhhcyBiZWVuIG9ic2VydmVkIGluIHZpcnRpby1uZXQgdG8gdGVzdHBtZCdz IHZmaW8tcGNpIGRyaXZlcg0KPiA+Pj4gdHJhbnNpdGlvbiwgcmVkdWNpbmcgdGhlIHBlcmZvcm1h bmNlIGZyb20gbW9yZSB0aGFuIDEwTXBwcyB0byBsZXNzIHRoYW4NCj4gPj4+IDAuMDdNcHBzIGlm IHRoZSBodWdlcGFnZSBhZGRyZXNzIHdhcyBoaWdoZXIgdGhhbiB0aGUgbmV0d29ya2luZw0KPiA+ Pj4gYnVmZmVycy4gU2luY2UgYWxsIG5ldyBidWZmZXJzIGFyZSBjb250YWluZWQgaW4gdGhpcyBu ZXcgZ2lnYW50aWMgcGFnZSwNCj4gPj4+IHZob3N0IG5lZWRzIHRvIHNjYW4gSU9UTEJfQ0FDSEVf U0laRSAtIDEgZm9yIGVhY2ggdHJhbnNsYXRpb24gYXQgd29yc3QuDQo+ID4+Pg0KPiA+Pj4gU2ln bmVkLW9mZi1ieTogRXVnZW5pbyBQw6lyZXogPGVwZXJlem1hQHJlZGhhdC5jb20+DQo+ID4+PiBS ZXBvcnRlZC1ieTogUGVpIFpoYW5nIDxwZXpoYW5nQHJlZGhhdC5jb20+DQo+ID4+PiAtLS0NCj4g Pj4+ICAgIGxpYi92aG9zdC92aG9zdF91c2VyLmMgfCAyICsrDQo+ID4+PiAgICAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2xpYi92aG9z dC92aG9zdF91c2VyLmMgYi9saWIvdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+PiBpbmRleCAyOWE0 YzlhZjYwLi43ZGU0OGY1MzMzIDEwMDY0NA0KPiA+Pj4gLS0tIGEvbGliL3Zob3N0L3Zob3N0X3Vz ZXIuYw0KPiA+Pj4gKysrIGIvbGliL3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4gQEAgLTIxMTMs NiArMjExMyw4IEBAIHZob3N0X3VzZXJfZ2V0X3ZyaW5nX2Jhc2Uoc3RydWN0IHZpcnRpb19uZXQg KipwZGV2LA0KPiA+Pj4gICAgCW1zZy0+c2l6ZSA9IHNpemVvZihtc2ctPnBheWxvYWQuc3RhdGUp Ow0KPiA+Pj4gICAgCW1zZy0+ZmRfbnVtID0gMDsNCj4gPj4+DQo+ID4+PiArCXZob3N0X3VzZXJf aW90bGJfZmx1c2hfYWxsKHZxKTsNCj4gPj4+ICsNCj4gPj4+ICAgIAl2cmluZ19pbnZhbGlkYXRl KGRldiwgdnEpOw0KPiA+Pj4NCj4gPj4+ICAgIAlyZXR1cm4gUlRFX1ZIT1NUX01TR19SRVNVTFRf UkVQTFk7DQo+ID4+Pg0KPiA+Pg0KPiA+PiBSZXZpZXdlZC1ieTogTWF4aW1lIENvcXVlbGluIDxt YXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gPg0KPiA+IFNvIHlvdSB3aWxsIGZpeCB0aXRs ZSBhbmQgYWRkIGZpeCB0YWcgd2hlbiBhcHBseWluZywgcmlnaHQ/DQo+IA0KPiBZZXMsIEkgd2ls bC4gVGhhbmtzIGZvciB0aGUgaGVhZHMtdXAhDQoNCkNvb2whIFdpdGggYm90aCBmaXhlZDoNCg0K UmV2aWV3ZWQtYnk6IENoZW5ibyBYaWEgPGNoZW5iby54aWFAaW50ZWwuY29tPg0KDQo+IA0KPiBN YXhpbWUNCj4gDQo+ID4gL0NoZW5ibw0KPiA+DQo+ID4+DQo+ID4+IFRoYW5rcywNCj4gPj4gTWF4 aW1lDQo+ID4NCg0K