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 56BB6A0A0C; Fri, 23 Jul 2021 09:34:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D5CCC40040; Fri, 23 Jul 2021 09:34:28 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 162F14003C for ; Fri, 23 Jul 2021 09:34:26 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10053"; a="211836667" X-IronPort-AV: E=Sophos;i="5.84,263,1620716400"; d="scan'208";a="211836667" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jul 2021 00:34:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,263,1620716400"; d="scan'208";a="496206461" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga004.fm.intel.com with ESMTP; 23 Jul 2021 00:34:23 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Fri, 23 Jul 2021 00:34:23 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) 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.10; Fri, 23 Jul 2021 00:34:22 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Fri, 23 Jul 2021 00:34:22 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.172) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Fri, 23 Jul 2021 00:34:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dI0x76BZc3Q86He/KcPBzcMOIEgOI+Pdylx2zpwJOazrg3WYBqYDRT7B6LdZ+ZcAjfyNMF+XNcj3Xohp/0USiQKr1OjsqtIo4ukrlwfLVXdTGX+hLr2n/v9fnMBrOpmZcUFVlujn8N8xZj+IiE/Cg8/mp6rLKNkbabr43Xzg3vrKXOWrL0qACWv9K5PjnHh/HsylzLJPx0A/hyZSzwXR8DZOR7so7DDoeqdcfzdeO8mS8mwzP5JkTNZTmvbM3xAcU7E2z549c0JY2DV6YfVPkS6Su0Uk1JmiefPfB7yuMEfOStsXYpyrPxpqKxQwF5/d/KEzsfx0gAzsGVJraEEYjw== 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=2KEcZNOJzYoNkobks3J3N0eAdXEHEUhFsETMLHuvJuY=; b=A6V81iLlqrN6ZgltE2119tFN/PffIkoWoUNmX2QEq7pzTsgJHEmYOxFp3PEn3QKTu6Bc0yCvgA6pnjyOBYU81OWsDuDQfOb4IQXgE87ihAkKHpL+GKMg1zav2BtpWluizLOCvI7gmfnFeLvX0v+wEjMboxCONs+yQMdFWNUahn0u81uGPHF1E+lVJI5jG+ndBinpH1vEAltcVJs1uOe8Eh4TQJrwLW3snfyqDrm3Y2lovAGbQjcsTxTKyGupx7/CE+3xZCTZPTemcaY+d79C1GdVGuOMpnS1zelCX88Rm5d7GQPlabuVVGDSoZdtcHmFOLUugUY/AiEcAMYbTsCJ9w== 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=2KEcZNOJzYoNkobks3J3N0eAdXEHEUhFsETMLHuvJuY=; b=df1HGHF2wlMpqz1TBqWkr8ZVQFlH4P4Gdew6mB9SoQMEcOiwBc23WlT1qWZyg0GqdC8LYxoQwdmNLZFvVgaJGrBrPondDwYmy/CpAgHf7AvJBCyMKsrJwdo0drtAmVy3jzzFkb9biJ7hUbnJGuYS+Xi6IV7FceD/iq95UIGHORM= 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.4352.25; Fri, 23 Jul 2021 07:34:11 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::d447:3a7a:aad7:4d32]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::d447:3a7a:aad7:4d32%7]) with mapi id 15.20.4331.035; Fri, 23 Jul 2021 07:34:11 +0000 From: "Xia, Chenbo" To: Thomas Monjalon , "maxime.coquelin@redhat.com" CC: "Jiang, Cheng1" , "dev@dpdk.org" , "Hu, Jiayu" , "Yang, YvonneX" , "david.marchand@redhat.com" , "Yigit, Ferruh" Thread-Topic: [dpdk-dev] [PATCH v7 0/5] vhost: handle memory hotplug for async vhost Thread-Index: AQHXfrHDR+WvPpQYdkWz8V5ttwEqzqtOcW9ggAC6BICAANPiMIAAKxuAgAABT5A= Date: Fri, 23 Jul 2021 07:34:11 +0000 Message-ID: References: <20210602042802.31943-1-cheng1.jiang@intel.com> <10705747.pk50nUbaNJ@thomas> <6867079.l8GmTB2vYg@thomas> In-Reply-To: <6867079.l8GmTB2vYg@thomas> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5aad23a3-1ab4-4a4d-bad9-08d94dac4399 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:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Rt/HpbIQ30g39W3ZTogW1e2pZ2Q15CN6Jbfs2gTT46D8NYeRrVZyEfyJY1XHPVzZNnYdc2c0M8Cswjk7I1mdAC50ajeu1vY1Lw7KPP0ml3n09L3L0Af7NWq53lbcHMqMuvDO5/hsAOpcBtS60nPdCjfjzDePJcP1kUt+x3DzU0WMtHlnQf3lUKIsD2/DCQB5DhdfRfacQwqy0NBDJC+vau3L2l5l+skVSMr/uVZQxJXffx3vAKkugp7LvJ3LBlnx1iPuAv7HHr7NIX3+e5ceXly3OW0d8bZaTXCUWiHgbZyMRGlh1uU44wqhX4lLPrBBL+NWD9ols7bX71T4E5wD7QzdFuCKrPwNDhAgs3GUlG70qu1owuyUFU6Kw5FmU2jUdB25lHRBLtU/KECXg7lZwfT/+EWUzWe7VpsGMmw8lxHgUY6KXBJ7SFGcBsrPbxhtXHrmdVI7ve77XaQ7dLbMvbhzB65l3XHBxXE/pTPaOBZ7jzlOa3qixLfoT1ftUlIwH/17pzcPD6KbrQib91vgXSN6A/+bmfcwoLD+FwnXxYHnLtvFcenjeS4vUQIIB/6fTZhSDB6T715ltZxmoX5aT+tUAzaJ/rdkU6E+CQ7+WAnEdmwuijv6g/2GRqg2kz65T9299lBzvRfNl9OPRnB+m1VencA+uDzALtZ0jHsjd28RhxFEyQqGa6o23vWjbLsq3tOhrmIceKNLrWghhibfMg== 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)(396003)(346002)(39860400002)(136003)(376002)(66556008)(64756008)(7696005)(53546011)(6506007)(33656002)(186003)(8936002)(478600001)(4326008)(9686003)(71200400001)(107886003)(66946007)(86362001)(316002)(38100700002)(66476007)(66446008)(76116006)(5660300002)(122000001)(52536014)(54906003)(83380400001)(2906002)(55016002)(8676002)(110136005)(26005)(38070700004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?S2Q2SVFPc3FMLy9nTkMrb1FVbE9yaHBSdmE5V3ZMYlI5Nmt6aVZnY3FTT2c4?= =?utf-8?B?d0xnNWRjMUxjQXFXWUJ1Mjk5bUREV1gyRDZCSnBxYVpLN0FRc29GRktJZVNn?= =?utf-8?B?dnBMbmtMSHlhL1BjbnlJNEtuTGZQZnBrSjZvYWM3VTlYZGpYdFBydVdjTmxS?= =?utf-8?B?ZnhhN0FzeFFYaVIwaEtTWmMra2xpUWkvZzY4WGhHL0dRelhKcVJTYm81S1Zt?= =?utf-8?B?TzYvWEFEOW14Wk9GYm9IYlBWNFJ4VmRkdEt2cUE3NnlyYWhVM0dpekhNZHBw?= =?utf-8?B?ekVHaVFJU0swWjJYUEMwbThXSFpWeEkvTXE0bUR3UE9JTCsrOHVDTExObFNt?= =?utf-8?B?Z0hRVTdoTXNobFRXajd2dll1RGc3a2VTaTl2MWozOFlTQ2lLTWVjRFpuc1V4?= =?utf-8?B?c0pRVWRmVm9lSmhJbzZ4RWowRW8zOE96bTNONmJxYkk3UXRSa0YyZm5IWHUy?= =?utf-8?B?REE5eWlYZERDUHkzaUg3d3d6MmhMOTVhdGplcTNoL1BWODlQQWZhdU9Td09Q?= =?utf-8?B?OFY0aG5PUU91TEF0cHNXSlhIeFVQMnNhYW82UDZHWm55NjhHcFBzbjdiT014?= =?utf-8?B?Y0wvN3N1cElkckpCejRMY3N6VXl6ZkNOMmJZRWR1QVN4bjhhS2NIb0lXc09a?= =?utf-8?B?aElHRTQ1VFdXbVpnRlJxZ01lNGNwVCsyM2dUVHJQakNZM3F2WmJiTVZKV1F2?= =?utf-8?B?Nk1VYXVvMjJ2R0lTSkRyMzUvS0tpQnI4WTd1TVU2eVZOemxCNFQ2UjM3MEo1?= =?utf-8?B?cEhBWG5FejVndVFWdE5LVUNnSHpjcFYyVFpWWVdTbWJJUkZiV2dmNldsOWta?= =?utf-8?B?bXNwL1QwL1B0UFdaNnBGUW54R3JVS0pVYlNXNlZzYWdNUzN1SHNDSWsxMXVr?= =?utf-8?B?NFd2UjNhRkgvcTk5WnFsa0JEck5IdzVNOSt1SlNFN3J1aEQxaDRwUmZkeDRX?= =?utf-8?B?RG9TMlNZVTBpUm5Ick1wbGM0Wm93c29xRlBxaktBanZMNU9WQ2RKSkhIWDdV?= =?utf-8?B?NlE4bm9iU3FQY0tWK1NQMTlNYmwvWlBmYWo0RnZoQkJ1M0dvcGtJYTAyUHpV?= =?utf-8?B?SWJQUlpwTS9IemU1V1hwcHE0Y3pKSDFvZG1VLzZqbDByUEQ5aVZRQ20zcE5x?= =?utf-8?B?RkIvNDgySjI2dS96TFJiQklyY1ZDMUd2ODAwZWxXTUppRkg4UmhHNGRacTNl?= =?utf-8?B?WmJ0RDM2WE9XU2hUSFdLM216allmMWhpc1dsRW1qRmJiV2dMN1h1VFFqNWgr?= =?utf-8?B?bHNyL0w3R2tkWlNQYUZTQzU1czZqanVvakpPeTRCTHRwTC93NXhEMjBZdW5L?= =?utf-8?B?OXRBY1FjaHF1ck13UTc0N3hUeTlKSHhXQWpuTHNyOEREWU9aTW5NMFViL1BV?= =?utf-8?B?ZTFOeG1aUldHczJuN0VlMFZnODBscythVkxGazRmR3IraU5KeTd6ckpwSGNm?= =?utf-8?B?ZFpPdDlZc2JYdEdSWTIvQ1FsNXNRSFJRS1dYV2crdE1JNHp3YUJGMGZNeVBv?= =?utf-8?B?U2RzREhNTk1laXN2UG5YMmtrbk9RODB5SlIycndVeG5oZHBleGdWZ1B2QU9x?= =?utf-8?B?SUNCRkIwTDJOck56UGFtVU1MdmFPc2cyeGJDNW1BWU1yMHMwaU9TbEpqbzV1?= =?utf-8?B?Y2t0RnFnNldkY0Vud081WHlHUmlzallzZHZlZ3FnNm9lemd2VlI4MVVLOE9Y?= =?utf-8?B?amlva3h5TmJYNmFHWnhiNklPY3NKaU1XNzNTditabURBK0NBQjZtMlg5Q0Z5?= =?utf-8?Q?dK5UVgyyY+IBuYwjZ0=3D?= 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: 5aad23a3-1ab4-4a4d-bad9-08d94dac4399 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jul 2021 07:34:11.0989 (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: SMvBDJ/iSe+sRUzr+/lBZA1/Je0Uot7Nh/rHrG6r2rQhIzu1ybwPFu9i37rRvQRbLSqVNlnyOR2bTGuDiiInSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3854 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v7 0/5] vhost: handle memory hotplug 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" SGkgVGhvbWFzLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFRob21h cyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD4NCj4gU2VudDogRnJpZGF5LCBKdWx5IDIz LCAyMDIxIDM6MjUgUE0NCj4gVG86IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBYaWEsIENo ZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+IENjOiBKaWFuZywgQ2hlbmcxIDxjaGVuZzEu amlhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBIdSwgSmlheXUNCj4gPGppYXl1Lmh1QGlu dGVsLmNvbT47IFlhbmcsIFl2b25uZVggPHl2b25uZXgueWFuZ0BpbnRlbC5jb20+Ow0KPiBkYXZp ZC5tYXJjaGFuZEByZWRoYXQuY29tOyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjcgMC81XSB2aG9zdDogaGFu ZGxlIG1lbW9yeSBob3RwbHVnIGZvciBhc3luYw0KPiB2aG9zdA0KPiANCj4gMjMvMDcvMjAyMSAw NzowNiwgWGlhLCBDaGVuYm86DQo+ID4gRnJvbTogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9u amFsb24ubmV0Pg0KPiA+ID4gMjIvMDcvMjAyMSAwNzowNywgWGlhLCBDaGVuYm86DQo+ID4gPiA+ IEZyb206IEppYW5nLCBDaGVuZzEgPGNoZW5nMS5qaWFuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4g V2hlbiB0aGUgZ3Vlc3QgbWVtb3J5IGlzIGhvdHBsdWdnZWQsIHRoZSB2aG9zdCBhcHBsaWNhdGlv biB3aGljaA0KPiA+ID4gPiA+IGVuYWJsZXMgRE1BIGFjY2VsZXJhdGlvbiBtdXN0IHN0b3AgRE1B IHRyYW5zZmVycyBiZWZvcmUgdGhlIHZob3N0DQo+ID4gPiA+ID4gcmUtbWFwcyB0aGUgZ3Vlc3Qg bWVtb3J5Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhpcyBwYXRjaCBzZXQgaXMgdG8gcHJvdmlk ZSBhbiB1bnNhZmUgQVBJIHRvIGRyYWluIGluZmxpZ2h0IHBrdHMNCj4gPiA+ID4gPiB3aGljaCBh cmUgc3VibWl0dGVkIHRvIERNQSBlbmdpbmUgaW4gdmhvc3QgYXN5bmMgZGF0YSBwYXRoLCBhbmQN Cj4gPiA+ID4gPiBub3RpZnkgdGhlIHZob3N0IGFwcGxpY2F0aW9uIG9mIHN0b3BwaW5nIERNQSB0 cmFuc2ZlcnMuIEFuZCBlbmFibGUgaXQNCj4gPiA+ID4gPiBpbiB2aG9zdCBleGFtcGxlLg0KPiA+ ID4gPg0KPiA+ID4gPiBTZXJpZXMgYXBwbGllZCB0byBuZXh0LXZpcnRpby9tYWluLiBUaGFua3MN Cj4gPiA+DQo+ID4gPiBJIGNhbm5vdCBwdWxsIHRoaXMgc2VyaWVzIGluIG1haW4gYnJhbmNoLg0K PiA+ID4NCj4gPiA+IFRoZXJlIGlzIGEgY29tcGlsYXRpb24gZXJyb3Igc2VlbiBvbiBBcm0gY3Jv c3MtY29tcGlsYXRpb246DQo+ID4gPg0KPiA+ID4gZXhhbXBsZXMvdmhvc3QvbWFpbi5jOjE0OTM6 NTE6IGVycm9yOiBhc3NpZ25tZW50IHRvICdpbnQzMl90ICgqKShpbnQsDQo+ID4gPiB1aW50MTZf dCwgIHN0cnVjdCBydGVfdmhvc3RfYXN5bmNfZGVzYyAqLCBzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5j X3N0YXR1cyAqLA0KPiA+ID4gdWludDE2X3QpJyB7YWthICdpbnQgKCopKGludCwgIHNob3J0IHVu c2lnbmVkIGludCwgIHN0cnVjdA0KPiA+ID4gcnRlX3Zob3N0X2FzeW5jX2Rlc2MgKiwgc3RydWN0 IHJ0ZV92aG9zdF9hc3luY19zdGF0dXMgKiwgc2hvcnQgdW5zaWduZWQNCj4gaW50KSd9DQo+ID4g PiBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgJ3VpbnQzMl90ICgqKShpbnQsICB1aW50 MTZfdCwgIHN0cnVjdA0KPiA+ID4gcnRlX3Zob3N0X2FzeW5jX2Rlc2MgKiwgc3RydWN0IHJ0ZV92 aG9zdF9hc3luY19zdGF0dXMgKiwgdWludDE2X3QpJyB7YWthDQo+ID4gPiAndW5zaWduZWQgaW50 ICgqKShpbnQsICBzaG9ydCB1bnNpZ25lZCBpbnQsICBzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2Rl c2MgKiwNCj4gPiA+IHN0cnVjdCBydGVfdmhvc3RfYXN5bmNfc3RhdHVzICosIHNob3J0IHVuc2ln bmVkIGludCknfSBbLQ0KPiBXZXJyb3I9aW5jb21wYXRpYmxlLQ0KPiA+ID4gcG9pbnRlci10eXBl c10NCj4gPiA+ICAxNDkzIHwgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9vcHMudHJh bnNmZXJfZGF0YSA9DQo+ID4gPiBpb2F0X3RyYW5zZmVyX2RhdGFfY2I7DQo+ID4gPiAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXg0KPiA+ DQo+ID4gSSBzZWUuIEBDaGVuZywgcGxlYXNlIGZpeCBpdCBpbiBuZXcgdmVyc2lvbi4NCj4gPg0K PiA+ID4NCj4gPiA+IE90aGVyIGNvbW1lbnRzIGFib3V0IHRoZSBsYXN0IHBhdGNoOg0KPiA+ID4g LSBpdCBpcyB1cGRhdGluZyBkb2Mgb3V0IG9mIHRoZSBvcmlnaW5hbCBwYXRjaCBkb2luZyB0aGUg Y29kZSBjaGFuZ2VzDQo+ID4gPiAtIHRoZXJlIGlzIG5vdCBldmVuIGEgcmVmZXJlbmNlIHRvIHRo ZSBjb2RlIHBhdGNoIChGaXhlczogbGluZSkNCj4gPg0KPiA+IEkgdGhpbmsgdGhlIGRvYyBwYXRj aCBjb3VsZCBiZSBjb21iaW5lZCB3aXRoIHRoZSBjb2RlIHBhdGNoIGluIHRoZSBzYW1lDQo+IHNl cmllcy4NCj4gPiBCdXQgcGVyc29uYWxseSwgc29tZXRpbWVzIEkgYW0gbm90IHZlcnkgY2xlYXIg d2hlbiBkb2MgcGF0Y2ggc2hvdWxkIGJlIHNwbGl0Lg0KPiA+IEZvciBleGFtcGxlLCBpbiB0aGlz IGNhc2Ugd2UgY2FuIGNvbWJpbmUgYXMgdGhlIHVwZGF0ZSBpbiByZWxlYXNlIG5vdGUgaXMNCj4g cmVsYXRlZA0KPiA+IG9ubHkgdG8gdGhlIGNvZGUgcGF0Y2guIFdoYXQgaWYgaXQncyByZWxhdGVk IHRvIG11bHRpcGxlIHBhdGNoPyBTaG91bGQgd2UNCj4gc3BsaXQgb3INCj4gPiBhZGQgZG9jIGNo YW5nZXMgdG8gZXZlcnkgcmVsYXRlZCBwYXRjaGVzPyBKdXN0IGEgYml0IGNvbmZ1c2VkLiBNYXli ZSB5b3UgY2FuDQo+IGdpdmUNCj4gPiBtZSBzb21lIGdlbmVyYWwgZ3VpZGFuY2Ugc28gdGhhdCB3 ZSB3aWxsIGJlIG9uIHRoZSBzYW1lIHBhZ2UuDQo+IA0KPiBUaGUgZG9jIG11c3QgYmUgdXBkYXRl ZCBpbiBlYWNoIHBhdGNoLg0KPiBTb21ldGltZXMsIHRoZSBzYW1lIGxpbmUgaXMgdXBkYXRlZCB0 byBhZGQgYSB3b3JkIHJlbGF0ZWQgdG8gdGhlIHBhdGNoLg0KDQpUaGFua3MgZm9yIHRoZSBndWlk YW5jZSENCg0KPiANCj4gPiA+IC0gdGhlIGFkZGl0aW9uIGluIHRoZSByZWxlYXNlIG5vdGVzIGlz IG5vdCBzb3J0ZWQNCj4gPg0KPiA+IE5vdCB2ZXJ5IGNsZWFyIG9uIHRoaXMuIFRoZSBjaGFuZ2Ug aXMgcHV0IGluIHRoZSBib3R0b20uIElzIHRoZXJlIGFueQ0KPiBzb3J0aW5nDQo+ID4gcnVsZXM/ DQo+IA0KPiBSZWFkIHRoZSBjb21tZW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlY3Rpb24s IGl0IGV4cGxhaW5zDQo+IGhvdyB0aGluZ3MgbXVzdCBiZSBzb3J0ZWQ6DQo+IA0KPiAgICAgIFN1 Z2dlc3RlZCBvcmRlciBpbiByZWxlYXNlIG5vdGVzIGl0ZW1zOg0KPiAgICAgICogQ29yZSBsaWJz IChFQUwsIG1lbXBvb2wsIHJpbmcsIG1idWYsIGJ1c2VzKQ0KPiAgICAgICogRGV2aWNlIGFic3Ry YWN0aW9uIGxpYnMgYW5kIFBNRHMgKG9yZGVyZWQgYWxwaGFiZXRpY2FsbHkgYnkgdmVuZG9yIG5h bWUpDQo+ICAgICAgICAtIGV0aGRldiAobGliLCBQTURzKQ0KPiAgICAgICAgLSBjcnlwdG9kZXYg KGxpYiwgUE1EcykNCj4gICAgICAgIC0gZXZlbnRkZXYgKGxpYiwgUE1EcykNCj4gICAgICAgIC0g ZXRjDQo+ICAgICAgKiBPdGhlciBsaWJzDQo+ICAgICAgKiBBcHBzLCBFeGFtcGxlcywgVG9vbHMg KGlmIHNpZ25pZmljYW50KQ0KPiANCj4gdmhvc3QgaXMgdXN1YWxseSBhdCB0aGUgZW5kIG9mIGV0 aGRldiBQTURzLg0KDQpPb3BzLi4gSSBzaG91bGQgbm90aWNlIGl0Li4NCg0KPiANCj4gPiA+IExh c3QgcXVlc3Rpb24gd2hpbGUgYXQgaXQsIHdoeSBoYXZpbmcgdGhlIEFQSSBkb2N1bWVudGF0aW9u DQo+ID4gPiBpbiB0aGUgdmhvc3QgZ3VpZGUgKHJzdCBmaWxlKT8NCj4gPiA+IERveHlnZW4gaXMg bm90IGVub3VnaCB0byBkZXNjcmliZSB0aGUgZnVuY3Rpb25zPw0KPiA+DQo+ID4gR29vZCBwb2lu dC4gVG8gYmUgaG9uZXN0LCBJIGhhdmUgbm90IHRob3VnaHQgYWJvdXQgaXQgOlANCj4gPg0KPiA+ IEkgdGhpbmsgaXQgY291bGQgYmUgbW92ZWQgdG8gdGhlIGRveHlnZW4gbGF0ZXIgKG1heWJlIGlu IGFub3RoZXIgcGF0Y2gpLiBUaGUNCj4gb25seQ0KPiA+IGNvbmNlcm4gb2YgbWluZSBpcyBzb21l IEFQSSBkZXNjcmlwdGlvbiBpbiB0aGUgdmhvc3QgZ3VpZGUgaXMgYSBiaXQgbG9uZy4NCj4gDQo+ IFNvIHlvdSBjYW4gaW1wcm92ZSBkb3h5Z2VuIGFuZCByZW1vdmUgdGhpcyBwYXJ0IG9mIHRoZSBn dWlkZS4NCj4gVGhlIGd1aWRlIHNob3VsZCBiZSBhbiBvdmVydmlldywgYSB0dXRvcmlhbCBhbmQg YW4gaW50ZXJuYWwgZGVzaWduIHJlZmVyZW5jZS4NCg0KTWFrZSBzZW5zZSB0byBtZS4gRm9yIHRo aXMgcGF0Y2gsIEkgc3VnZ2VzdCB0byBrZWVwIHRoZSBhcGkgZG9jIGluIHZob3N0IGd1aWRlLg0K VGhlbiBJIHdpbGwgc2VuZCBhIHBhdGNoIHRvIG1vdmUgdGhlbSBhbGwgaWYgd2UgYWxsIGFncmVl IG9uIHRoaXMuDQoNClRoYW5rcywNCkNoZW5ibw0KDQo+IA0KPiA+IEBNYXhpbWUgV2hhdCBkbyB5 b3UgdGhpbms/DQo+IA0KPiANCg0K