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 D6916A0C45; Mon, 22 Nov 2021 09:45:41 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4BB9F40395; Mon, 22 Nov 2021 09:45:41 +0100 (CET) Received: from AZHDRRW-EX02.NVIDIA.COM (azhdrrw-ex02.nvidia.com [20.64.145.131]) by mails.dpdk.org (Postfix) with ESMTP id 10B4440143; Sun, 21 Nov 2021 16:11:25 +0100 (CET) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) by mxs.oss.nvidia.com (10.13.234.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.858.15; Sun, 21 Nov 2021 07:11:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hXdC3PlvbuybnlotitZk/pL947sfnxWJSaglOnddoFsyne7we2oLLs7gM9H0u0F2eMgOLIX4lJHak0PgcOSdIhHTs08sQmNbvt48KAmiMcxjiIpjIQUbdxqMaYl03U2DkiVZaenImbgoJy/2T6J9XqpkCI5ioEabmUf7admCrtc0z4+umzw2u4yhz+FTwgJOPl9n4CjU7Axiy8TsCMxhkDgt0JL3ezY4kiOOih3hYBimu9DlCBAiYZFqasD9t+nElPYzfT+nPLK6WsXCeKQDiynTM+q6+LXm2DYXkh5bVOzL7BvoJSQ2uQRtE8dkcAkCROtFsjIFxPFkrI9j2Y53Dg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p8LMWbdl3P0BJPPwETeT8zibBfRO/9EgwG99Kivs8zs=; b=WlX1tOrK494QtWlB0JKDd/aEq5Akr7R4VvYLf/YSiiLU6wozTtaD8e73eS7BUf9rkg6VSlJhB1HBLKBFh2NhGNzaaIS+G/TBApkFxogIR3uidRJP1aP7LbrNSQGoHwXLme9utnWc3M1OzKV3D8eZONvnmKSK/hf1NFnmgu5BF47zPM0yT+Ib9YfFZWIVdWcnT6Sl6WIC+YSFFPA7Kfii2HmkipOzKMxEeADbY6s96V8QtrtkG9d7MUjlU5yr1y/wI4R9+lSKesxe7bk+TOZMxiFjecR27P00ChmQM7psDAv3Ijbr15QdkAGuNHn+4/QCgJlqFqpSDc1grmCn2/PkAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p8LMWbdl3P0BJPPwETeT8zibBfRO/9EgwG99Kivs8zs=; b=mPUVLDwHy4+bGMr5RjiySJk+TTgzbZtGz7nM8/f5d+TOziwQNZS/ETlq6EgjmpQo0oI1orBYRYFPS6Sgx0sRFs7k3dhAKXwUCH3z0urRnjI/D2Gb8O9i94RAKdqogcSKBSIfuPjqqthwhMqG8N4PCPYwOWrV9jp8emGAXCONZashRvPCnwxzX+0ctr0I+Ar2vRwxLdRwmYZ5XRUvSYAOdhi9PQUaid1zu4/lSADq5hWAaxEvM9Ky+CKUUE3ML1eoZ3kAKS3yr4GP1RSvK9BU1NTkUavxXLVk+cTvz7fCeD1hi4mGHK7DSTiqA4tW8lR9PIb7/1+tFWP4gVH03ngfxA== Received: from DM8PR12MB5494.namprd12.prod.outlook.com (2603:10b6:8:24::9) by DM8PR12MB5478.namprd12.prod.outlook.com (2603:10b6:8:29::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Sun, 21 Nov 2021 15:11:22 +0000 Received: from DM8PR12MB5494.namprd12.prod.outlook.com ([fe80::bda3:2290:abb3:1032]) by DM8PR12MB5494.namprd12.prod.outlook.com ([fe80::bda3:2290:abb3:1032%9]) with mapi id 15.20.4690.026; Sun, 21 Nov 2021 15:11:22 +0000 From: Asaf Penso To: Asaf Penso , Ferruh Yigit , "Ajit Khaparde" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" CC: "users@dpdk.org" , dpdk-dev , David Marchand , Bruce Richardson , Jerin Jacob Kollanukkaran , Akhil Goyal , Maxime Coquelin , "Honnappa Nagarahalli" , "Tu, Lijuan" , Gregory Etelson Subject: RE: [dpdk-users] [DISCUSSION] code snippet documentation Thread-Topic: [dpdk-users] [DISCUSSION] code snippet documentation Thread-Index: Add5RxapGnpY5D0tS4m/cC+5PYBHHAF8T7UAAAdw0YAAGS3xgABVUEIgF3Zv03A= Date: Sun, 21 Nov 2021 15:11:22 +0000 Message-ID: References: <2236865.drsZmlonQt@thomas> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2ba471d6-117a-4414-9b06-08d9ad012da7 x-ms-traffictypediagnostic: DM8PR12MB5478: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fjGtTER6nGLjT66vv8AWUJNHtIJQgm5Y7mhBvgM7rhmNvzelnq83HKSWVLHDhtYhWkc7nDhu37EGmcGBCshokGuqcCU7RdMsvX73S3k+BSb1IY0xUgXv+665XI98scScn6dXnfzOUGwYDFgFKj+UBr6jSz6NvdN8rxZk9FBo6WDbWiZbMLDwVOEsDppZM1z9n9u5rQuNZwMWFmfaaAtkhWBiyi5yrmwTvwVZzOOQ5J2CMtWFTXu24+TnS0dK2bMpgoq2d6LqAkV4UZRHruQIDu5UuCnRgzemEx7rX4MOAoGfisttH1tbREQmXg9Xz4/I47xtJwHJzQjIE9MQyKtDE3rae0qVP3GHwgCtm8ppWkht/l5t8vOH468EijZBeBpKjcb/B8owE0zZdqJdhbsPrt+9yVmjaiaTib4OI9qew46UZ/AGltrSw2UzRF3K2pO4MjGGdSkij1zL+s1k9IdrDzzJr3ED0I2YV7evTL3F+YVbWgOzoGSYA0tLFr1ttS2bhpqebgIC3CnIsPOD3Hj3Mx1Koz69vtOcKHViXdu2nlE1xdnf+73QJ6TcX57MU7MICgwAbpqlHm/DelitgrYfptA+D4oIx3pLEPsfXwMWp72Zlq9fIC+TqfGNLL2QzIHykj1CE17uX1GtPh1pHaVc4kdkBg8VEcIiGt6XyUgwP0mzXR/GU1L3+TY4uDYnJh6btEXVWwS7UuDP1BzN0Nxseg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5494.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(52536014)(6506007)(508600001)(86362001)(55016002)(66946007)(8936002)(107886003)(83380400001)(9686003)(66556008)(8676002)(64756008)(38070700005)(122000001)(54906003)(38100700002)(76116006)(186003)(316002)(66476007)(2906002)(110136005)(33656002)(71200400001)(66446008)(4326008)(5660300002)(450100002)(7696005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Yjkyck5kUW4za1RpSGFkQ0FrbkkxN0c0UFB1bWRFNmxGNjZIclFMTzFnS2RB?= =?utf-8?B?YlY0Uk5ibTNCTUxPdXBqelJPYk5hN1IxcGpRMFl5S2ZHd1NLOUFGTGR3NVUv?= =?utf-8?B?RWI4ZlZQOFMvUnNuM0pXOUVyMFB0WXRWSHV4TWFpRGJ4blRPY09uL3A4ZFlr?= =?utf-8?B?YW0zOE1QTmlwMGlOSjdSQzJwVmlxT1VBeXNCeGI0K2xmeGp0ak92S1FqRHVD?= =?utf-8?B?ZFRSMXhIeU9UMzRaWmllV3JpOW5TWTNGdUxzelU2MnVwR2x4YzltTkgvTUlv?= =?utf-8?B?R0laVzRQSXFISW1odVJMQk5NWXZBUEovcnpjREgzUWJUcEdrK1drUzBmdzlR?= =?utf-8?B?WWN4UmtDaythSE9iNmJHTVg0NUc1citkV2k4eXVwQ0crNlFtWGhZd0pVak5Y?= =?utf-8?B?cklkZm9UKzFmV3FBelBQQ3VEaUxBQzhKem84cEw0cUEyZFlzSHZpK1VVY1Rj?= =?utf-8?B?aU5OQzZDMG1TbnZ6bGlTQUxLWkNrT0Z4M25ZbWUrR0dPOWh2aEhiRkVsdlFs?= =?utf-8?B?QTY3eHljcndTQnpWa0h5bCt0TS9MV1JVbVVvT0hMYUxIWnQ1V2NJRXhGN2V4?= =?utf-8?B?Z3hPOHRsN1NraEdtak5pUDh2V2hBcFVIWXRLd1VrSTBQQnZGQnJjYWxGbjN2?= =?utf-8?B?UTVLdXJkeVN1bityZFpicGhoQmF0dVM3VGZxOElYLzlFZlBuc0VNMkRrcFUr?= =?utf-8?B?VVZZcDVTR281dC9EVGNBTjNnbGtVOFZYQXNUR1pzT0pYSk5kTTBKaFU0SG1N?= =?utf-8?B?TlpxbnJYaFR4V256Zy81YXhYWDh0ZGYxbXJDVWdHcC9FTE1wVFY1ZXEvZU1C?= =?utf-8?B?NGtFU2JZeWlHYm9ad1ZjUkc2ck5iWGsrRVlpaVJkL0Z5Um9FWGNLV2E4MUJy?= =?utf-8?B?WjcwdWt6LzN4RzRmREdITm9NcDZBcEgyZ1JyWnU4TXREYmY0Rm9FeHNUTit3?= =?utf-8?B?MVVSYkJ2UG5CNE1IQWRuUEZJSmhZblJTTkdKaWUwRjNCd2poOW1SdHN2MkR0?= =?utf-8?B?WFMzaEtta0l4ajExYVlvVTMxNmx2TE95cnU3OEZ6MEtKVWhCTGl3bjBvcGs2?= =?utf-8?B?dzB2YlNsc2E0d0lncGxBdXFLNUo1S1Y2MVhvQjFBKzFvSGszTVdiSDhQUG0z?= =?utf-8?B?OHBVY1N4SHVtNVAxZzNhVFUrREtlRXpJQ3JtalA0TGVFeXRNTE9sbUNqWUJz?= =?utf-8?B?SjJKYUtnU25KdHBnNndXVFpZdkRaeWUybnJYMnZwdUl4SVpXQ0xVSEJ0ZEI1?= =?utf-8?B?RGNiR2V1Q3pIZU9mWm9WTHlxUFBXNVZ0eWZYR2NzaldmQi9nWGM4UzZ5Y2hr?= =?utf-8?B?VnM5aVdYZmtFblNxd3JlbnFHMU1xSWlST1EyZmxXOU1xY2k2bVRCZEdFQnR1?= =?utf-8?B?SkFjV096QjJSQzBNWFhoVTdjUm03dFdaNEVzYzB4b1lhQmt2QzBMM3FyazY0?= =?utf-8?B?dkQ1bGNhbVo0eE9xbkUyaVVOdjVBTnUzMy92dW5jK3JLZ3lwUHkzOUhNNkk1?= =?utf-8?B?ZmQzMk1nOUVqR2VXTmNMT2VUUDgwM1pIUnpoYTZEZXBGZHNmOWdWS2pObGth?= =?utf-8?B?cE53aXhZVmVSSmlYWVdtbjZEVnRlY01vQnl4MDYxV0JJSENYUU1DaFpCK1Fz?= =?utf-8?B?YzY0LzNxRnJ2NzFpQVo2d21vS2NnbnVualN4Zi9WeGVkT2tpamYwYkVVYTJD?= =?utf-8?B?THIvclZLYWNGQlk1L2kzVVpCVE8vMVpsQXY3TkoxdG1HNjhrbURLVDBHYmha?= =?utf-8?B?bkh4VlhMT0VxR3RaUFgzUGg0V3grak9kbThwd2kvUlY3ajNIMDFVL2tvQXhQ?= =?utf-8?B?RllvYk1IYXNLaGVhTWpCQ0I1YW5mSkF2b0RCejdNd3RISDBqQXEweUExcTZR?= =?utf-8?B?bUliMzlmTC9vK0ZXRkhwbGNzWjFTbGltNFZOWkFoeFNlanFGd3ZLcXV4WEFw?= =?utf-8?B?V2k4SVFrQXMybTdxeGNWaFNsUytSZUhobjVXQmRzeThma3VhTDBZdW8zalVE?= =?utf-8?B?YlFMNmZKYlVwTERkaHIxQWREQ0x1Sjk5ejRBdjFWUEpHbURPMEthTHBCRnRL?= =?utf-8?B?RWN2NjdHeXk4ckw5U2Z4WXRUdG9FN0FnYXdyZ2VWVkErYXY2bWErQXFxd29h?= =?utf-8?B?UDRUWFJVSEd5L2x2SmhmaWNTSS9jSnc4cFlDOFVmVWI1Q0xid3hVZkpHOXhC?= =?utf-8?B?N1ZCNWJCcitFVHFiSmNlbFIzZzFjT2hodnozbCtDMzgyT0NyeHBiTTI3TE8x?= =?utf-8?Q?7PJv08JgvETaI0vOhiBVuPoPL774mMJ8K2tto3xAEw=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: DM8PR12MB5494.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ba471d6-117a-4414-9b06-08d9ad012da7 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2021 15:11:22.0584 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zHXe/Q3sYpQav8BH2aYykLvJxzvubSsfQn1nk49/8A1EyQZRW/8IcnuhY7pHpabXYKj4nQvMolKW5JvclgSwKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5478 X-Mailman-Approved-At: Mon, 22 Nov 2021 09:45:40 +0100 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 Pi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogZGV2IDxkZXYtYm91bmNlc0BkcGRr Lm9yZz4gT24gQmVoYWxmIE9mIEFzYWYgUGVuc28NCj5TZW50OiBTdW5kYXksIEp1bHkgMjUsIDIw MjEgNzo1NCBBTQ0KPlRvOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBB aml0IEtoYXBhcmRlDQo+PGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPjsgTkJVLUNvbnRhY3Qt VGhvbWFzIE1vbmphbG9uDQo+PHRob21hc0Btb25qYWxvbi5uZXQ+DQo+Q2M6IHVzZXJzQGRwZGsu b3JnOyBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPjsgRGF2aWQgTWFyY2hhbmQNCj48ZGF2aWQubWFy Y2hhbmRAcmVkaGF0LmNvbT47IEJydWNlIFJpY2hhcmRzb24NCj48YnJ1Y2UucmljaGFyZHNvbkBp bnRlbC5jb20+OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuDQo+PGplcmluakBtYXJ2ZWxsLmNv bT47IEFraGlsIEdveWFsIDxnYWtoaWxAbWFydmVsbC5jb20+OyBNYXhpbWUgQ29xdWVsaW4NCj48 bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPjxIb25u YXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgVHUsIExpanVhbiA8bGlqdWFuLnR1QGludGVsLmNv bT4NCj5TdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbZHBkay11c2Vyc10gW0RJU0NVU1NJT05dIGNv ZGUgc25pcHBldA0KPmRvY3VtZW50YXRpb24NCj4NCj5SZWdhcmRzLA0KPkFzYWYgUGVuc28NCj4N Cj4+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+RnJvbTogRmVycnVoIFlpZ2l0IDxmZXJy dWgueWlnaXRAaW50ZWwuY29tPg0KPj5TZW50OiBGcmlkYXksIEp1bHkgMjMsIDIwMjEgMzowNCBQ TQ0KPj5UbzogQWppdCBLaGFwYXJkZSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBOQlUt Q29udGFjdC1UaG9tYXMNCj4+TW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+PkNjOiBB c2FmIFBlbnNvIDxhc2FmcEBudmlkaWEuY29tPjsgdXNlcnNAZHBkay5vcmc7IGRwZGstZGV2DQo+ PjxkZXZAZHBkay5vcmc+OyBEYXZpZCBNYXJjaGFuZCA8ZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNv bT47IEJydWNlDQo+PlJpY2hhcmRzb24gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgSmVy aW4gSmFjb2IgS29sbGFudWtrYXJhbg0KPj48amVyaW5qQG1hcnZlbGwuY29tPjsgQWtoaWwgR295 YWwgPGdha2hpbEBtYXJ2ZWxsLmNvbT47IE1heGltZSBDb3F1ZWxpbg0KPj48bWF4aW1lLmNvcXVl bGluQHJlZGhhdC5jb20+OyBIb25uYXBwYSBOYWdhcmFoYWxsaQ0KPj48SG9ubmFwcGEuTmFnYXJh aGFsbGlAYXJtLmNvbT47IFR1LCBMaWp1YW4gPGxpanVhbi50dUBpbnRlbC5jb20+DQo+PlN1Ympl Y3Q6IFJlOiBbZHBkay11c2Vyc10gW0RJU0NVU1NJT05dIGNvZGUgc25pcHBldCBkb2N1bWVudGF0 aW9uDQo+Pg0KPj5PbiA3LzIzLzIwMjEgMTowMiBBTSwgQWppdCBLaGFwYXJkZSB3cm90ZToNCj4+ PiBPbiBUaHUsIEp1bCAyMiwgMjAyMSBhdCAxOjI5IFBNIFRob21hcyBNb25qYWxvbg0KPjx0aG9t YXNAbW9uamFsb24ubmV0Pg0KPj53cm90ZToNCj4+Pj4NCj4+Pj4gMTUvMDcvMjAyMSAwOTowMSwg QXNhZiBQZW5zbzoNCj4+Pj4+IEhlbGxvIERQREsgY29tbXVuaXR5LA0KPj4+Pj4NCj4+Pj4+IEkg d291bGQgbGlrZSB0byBicmluZyB1cCBhIGRpc2N1c3Npb24gYWJvdXQgYSB3YXkgdG8gaGF2ZSBj b2RlDQo+Pj4+PiBzbmlwcGV0cyBhcyBhbg0KPj5leGFtcGxlIGZvciBwcm9wZXIgdXNhZ2UuDQo+ Pj4+PiBUaGUgRFBESyB0cmVlIGlzIGZpbGxlZCB3aXRoIGdyZWF0IHBpZWNlcyBvZiBjb2RlIHRo YXQgYXJlIHdlbGwNCj4+Pj4+IGRvY3VtZW50ZWQNCj4+YW5kIG1haW50YWluZWQgaW4gaGlnaCBx dWFsaXR5Lg0KPj4+Pj4gSSBmZWVsIHdlIGFyZSBhIGJpdCBiZWhpbmQgd2hlbiB3ZSB0YWxrIGFi b3V0IHVzYWdlIGV4YW1wbGVzLg0KPj4+Pj4NCj4+Pj4+IE9uZSB3YXksIHdoZW5ldmVyIHdlIGlt cGxlbWVudCBhIG5ldyBmZWF0dXJlLCBpcyB0byBleHRlbmQgb25lIG9mDQo+Pj4+PiB0aGUNCj4+ dGVzdC0qIHVuZGVyIHRoZSAiYXBwIiBmb2xkZXIuDQo+Pj4+PiBUaGlzLCBob3dldmVyLCBwcm92 aWRlcyBtZWFucyB0byB0ZXN0IGJ1dCBkb2Vzbid0IHByb3ZpZGUgYSBnb29kDQo+Pj4+PiB1c2Fn ZQ0KPj5leGFtcGxlLg0KPj4+Pj4NCj4+Pj4+IEFub3RoZXIgd2F5IGlzIHRvIGNoZWNrIHRoZSBj b250ZW50IG9mIHRoZSAiZXhhbXBsZSIgZm9sZGVyIGFuZA0KPj4+Pj4gd2hlbmV2ZXINCj4+d2Ug aGF2ZSBhIEJJRyBuZXcgZmVhdHVyZSBpdCBzZWVtcyBsaWtlIGEgZ29vZCBwbGFjZS4NCj4+Pj4+ IFRoaXMsIGhvd2V2ZXIsIGRvZXNuJ3QgcHJvdmlkZSBhIGdvb2Qgb3B0aW9uIHdoZW4gd2UgdGFs ayBhYm91dA0KPj4+Pj4gc21hbGwNCj4+ZmVhdHVyZXMuDQo+Pj4+PiBJZiwgZm9yIGV4YW1wbGUs IHdlIGV4dGVuZCBydGVfZmxvdyB3aXRoIGFuIGV4dHJhIGFjdGlvbiB0aGVuDQo+Pj4+PiBwcm92 aWRpbmcgYSBmdWxsLQ0KPj5ibG93biBleGFtcGxlIGFwcGxpY2F0aW9uIGlzIHNvbWV3aGF0IGFu IGVudHJ5IGJhcnJpZXIuDQo+Pj4+Pg0KPj4+Pj4gQSB0aGlyZCBvcHRpb24gY291bGQgYmUgdG8g ZG9jdW1lbnQgaXQgaW4gb25lIG9mIHRoZSAucnN0IGZpbGVzIHdlIGhhdmUuDQo+Pj4+PiBPYnZp b3VzbHksIHRoaXMgcmVxdWlyZXMgaGlnaCBtYWludGVuYW5jZSBhbmQgbm8gb3B0aW9uIHRvIGFz c3VyZQ0KPj4+Pj4gaXQgc3RpbGwNCj4+Y29tcGlsZXMuDQo+Pj4+Pg0KPj4+Pj4gSSdkIGxpa2Ug dG8gcHJvcG9zZSBhbm90aGVyIGFwcHJvYWNoIHRoYXQgd2lsbCBhZGRyZXNzIHRoZSBtYWluIHR3 bw0KPmlzc3VlczoNCj4+cmVtb3ZlIHRoZSBlbnRyeSBiYXJyaWVyIGFuZCBhc3N1cmUgY29tcGls YXRpb24uDQo+Pj4+PiBJbiB0aGlzIGFwcHJvYWNoLCBpbnNpZGUgdGhlICJleGFtcGxlcyIgZm9s ZGVyIHdlJ2xsIGNyZWF0ZSBhbm90aGVyDQo+Pj4+PiBmb2xkZXIgZm9yDQo+PiJzbmlwcGV0cyIu DQo+Pj4+PiBJbnNpZGUgInNuaXBwZXRzIiB3ZSdsbCBoYXZlIHNldmVyYWwgZmlsZXMgcGVyIGNh dGVnb3J5LCBmb3INCj4+Pj4+IGV4YW1wbGUsIHJ0ZV9mbG93X3NuaXBwZXRzLmMgRWFjaCAuYyBm aWxlIHdpbGwgaW5jbHVkZSBhIG1haW4NCj4+Pj4+IGZ1bmN0aW9uIHRoYXQNCj4+Y2FsbHMgdGhl IGRpZmZlcmVudCB1c2UgY2FzZXMgd2Ugd2FudCB0byBnaXZlIGFzIGFuIGV4YW1wbGUuDQo+Pj4+ PiBUaGUgcHVycG9zZSBpcyBub3QgdG8gZ2VuZXJhdGUgdHJhZmZpYyBub3IgcmVhZCByeC90eCBw YWNrZXRzIGZyb20NCj4+Pj4+IHRoZSBEUERLDQo+PnBvcnRzLg0KPj4+Pj4gVGhlIHB1cnBvc2Ug aXMgdG8gaGF2ZSBhIGdvb2QgZXhhbXBsZSB0aGF0IGNvbXBpbGVzIHByb3Blcmx5Lg0KPj4+Pj4N Cj4+Pj4+IFRha2luZyB0aGUgcnRlX2Zsb3dfc25pcHBldHMuYyBhcyBhbiBleGFtcGxlIGl0cyBt YWluIGZ1bmN0aW9uDQo+Pj4+PiB3b3VsZCBsb29rDQo+Pmxpa2UgdGhpczoNCj4+Pj4+DQo+Pj4+ PiBpbnQNCj4+Pj4+IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPj4+Pj4gew0KPj4+Pj4g ICAgICAgcnRlX2Zsb3dfc25pcHBldF9tYXRjaF81dHVwbGVfYW5kX2Ryb3AoKTsNCj4+Pj4+ICAg ICAgIHJ0ZV9mbG93X3NuaXBwZXRfbWF0Y2hfZ2VuZXZlX29wZV9hbmRfcnNzKCk7DQo+Pj4+PiAg ICAgICAuLi4NCj4+Pj4+ICAgICAgIFJldHVybiAwOw0KPj4+Pj4gfQ0KPj4+Pg0KPj4+PiBJIHRo aW5rIHdlIG5lZWQgdG8gaGF2ZSBhIHBvbGljeSBvciBqdXN0aWZpY2F0aW9uIGFib3V0IHdoaWNo DQo+Pj4+IHNuaXBwZXQgaXMgd29ydGggdG8gaGF2ZS4NCj4+Pj4gTXkgdGhvdWdodCBpcyB0byBh dm9pZCBjcmVhdGluZyBzbmlwcGV0cyB3aGljaCBoYXZlIG5vIG90aGVyIHZhbHVlDQo+Pj4+IHRo YW4gc2hvd2luZyBhIGZ1bmN0aW9uIGNhbGwuDQo+Pj4+IEkgdGhpbmsgdGhlcmUgaXMgYSB2YWx1 ZSBpZiB0aGUgY29udGV4dCBpcyBub3Qgc2ltcGxlLg0KPj4+DQo+Pj4gSSBhZ3JlZS4gT3RoZXJ3 aXNlIGl0IHdpbGwgYmUgY2x1dHRlcmVkIHdpdGggc25pcHBldHMuDQo+Pj4NCj4+DQo+Pkkgc29t ZXRpbWVzIHVzZSBEVFMgY29kZSBhcyBzYW1wbGUgZm9yIGFuIEFQSSwgdGhhdCBoYXMgbGltaXRl ZCBjb250ZXh0DQo+Pih3aGljaCBJIGJlbGlldmUgc29tZXRpbWVzIG5lZWRlZCB0byB1bmRlcnN0 YW5kIEFQSSBwcm9wZXJseSkgYW5kIG9mDQo+PmNvdXJzZSBjb21waWxlcyBmaW5lLg0KPj4NCj4+ V2hhdCBhYm91dCBtYWtpbmcgbWFuZGF0b3J5IHRvIGFkZCBhIHRlc3QgdG8gRFRTIGZvciBlYWNo IEFQSS9mZWF0dXJlLA0KPj50aGF0IGVuc3VyZXMgYSByZWFzb25hYmxlIHNhbXBsZSBmb3IgdGhl IEFQSSBjYWxsLg0KPj4NCj4+QW5kIGlmIHRoZSBpbnRlbnQgaXMganVzdCB0byBwcm92aWRlIHNh bXBsZSBmb3IgQVBJIGNhbGwgd2l0aG91dA0KPj5jb250ZXh0LCBJIGJlbGlldmUNCj4+dGVzdC0q IGNhbiBoZWxwIG9uIHRoYXQsIGl0IGNsYXJpZmllcyBnb29kICYgYmFkIGlucHV0IGZvciBhbiBB UEkuDQo+Pg0KPg0KPlRoYW5rIHlvdSBGZXJydWgsIEFqaXQsIGFuZCBUaG9tYXMgZm9yIHlvdXIg cmVwbGllcy4NCj5JIHRoaW5rIHRoZSBtb3JlIHNuaXBwZXRzIHRoZSBtZXJyaWVyIGFuZCB3ZSBj YW4gY2F0ZWdvcml6ZSB0aGVtIGZvciBiZXR0ZXINCj52aXNpYmlsaXR5IGluc2lkZSB0aGUgZmls ZSBhbmQgYW1vbmcgZGlmZmVyZW50IGZpbGVzLg0KPkxpbWl0aW5nIHdvdWxkIG1pc3MgdGhlIHBv aW50IG9mIGhhdmluZyB2YWxpZCBjb2RlIGV4YW1wbGVzIGZvciBhIHZhcmlldHkgb2YNCj5jYXNl cy4NCj5Gb3IgY29tcGxleCBjb2RlIHNuaXBwZXRzIEkgZnVsbHkgdGhpbmsgdGhhdCBhIGRlZGlj YXRlZCB0ZXN0L2V4YW1wbGUgYXBwDQo+c2hvdWxkIGJlIHdyaXR0ZW4gYnV0IG15IGludGVudGlv biBvZiB0aGUgc25pcHBldHMgaXMgc29tZXRoaW5nIHNpbXBsZXIuDQo+UmVhZGluZyBvbmx5IGRv Y3VtZW50YXRpb24gaXMgbm90IHByYWN0aWNhbCBlbm91Z2ggYW5kIHJldmlld2luZyBhbg0KPmV4 YW1wbGUgYXBwIHJlcXVpcmVzIHRvbyBtdWNoIGVmZm9ydC4gU25pcHBldCBpcyBhIGdyZWF0IHRv b2wgaW4gYmV0d2Vlbi4NCj5Xcml0dGVuIERUUyB0ZXN0IGNhbiBiZSBhbiBvcHRpb24gYnV0IEkg dGhpbmsgaXQgaXMgdG9vIG11Y2ggb3ZlcmhlYWQgaWYgb25lDQo+anVzdCB3YW50cyB0byBzaG93 IGhvdyB0byB1c2UgYSBmdW5jdGlvbiBvciBhbiBvYmplY3QsIHdpdGhvdXQgcHV0dGluZyBlZmZv cnQNCj5mb3IgdGhlICJhZG1pbmlzdHJhdGl2ZSIgdG9waWNzIGFyb3VuZCB0aGUgc25pcHBldC4N Cj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gUGxlYXNlIGNvdWxkIHlvdSBwcm92aWRlIGEgbW9yZSBjb21w bGV4IGV4YW1wbGU/DQo+Pj4+DQo+Pj4+DQpBIGdvb2QgZXhhbXBsZSBmb3IgYSBzbmlwcGV0IHdv dWxkIGJlIHRoZSB1c2FnZSBvZiB0aGUgRmxleCBJdGVtLg0KT24gdGhlIG9uZSBoYW5kLCBpdCdz IGNvbXBsZXggZW5vdWdoLCBidXQgb24gdGhlIG90aGVyIGhhbmQsIEkgZG9uJ3Qgc2VlIGFuIGFk ZGVkIHZhbHVlIG9mIHdyaXRpbmcgYWxsIHRoZSBjb2RlIGZvciBwYWNrZXQgYWNxdWlzaXRpb24s IHBhY2tldCBoYW5kbGUsIHZlcmlmaWNhdGlvbiBldGMuDQpXRFlUPw0K