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 4DD7C42FB8; Wed, 2 Aug 2023 18:06:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C80CE40DDB; Wed, 2 Aug 2023 18:06:13 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2086.outbound.protection.outlook.com [40.107.95.86]) by mails.dpdk.org (Postfix) with ESMTP id 7CDC04021D; Wed, 2 Aug 2023 18:06:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P/gFgOOgXNQODQ5xQFAgYWHmJ1//BhnK+oRijxv9atkOuGSqYqO6XPzULQIpGoRruB3b6XfUcP/rB1YKIVnk/2vz0lj4/tIqbhEA2C4bMjwuqYXQZ1Qb+nWZHx8/NTiWoYmZaLM1VhoTUyMoH9gGXyq5KmU/APYtVGkyTO8ww3RnKMov85V1dmuEK3b6Ebfe80M1cK9tQmwRfHM+srCh+jMHEY54byRC2uzwjV1gAegYyM3wEgoZTah1NmVS1R6t0i4HSj77avKpz9KvOt8N1Ddr8KYkf6nnKydsOd7Ga+wdclrTcl6kBMmyI56qG3Hvl8OnrN1/rN+CiXhKaOFugA== 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=X3n47e8EcQAc/nQ88aZ3XBm6uPvgWzAEQBEIZaYPqCE=; b=ZGyriXRKCgeSwiCo0vzcferKCOfxvHTFclnBg6rnJM974DuB+5GBnjafhSCyXoOcp837eUrcAvAe+HZC8XVm3RW9wP4vqknul/KtV3wyeh9l23VKMjRT54CssGpa/87nAluWcvfOBbwlA/PgGXoNdriveZfuYAMegGj3VEizb1Dbr7LWtFGPSWjIZy3kor7KRptgKzlxLtSB5hjBkSF+MF7RoyFTt57LtNH1Nji1QzTPwsM/SiTBEkPbrZSyMt815yz51PeiBYCZ5UNez7lThjMW3JAwYAvGppaoKb5zZMqbPGSrr4F5TLE2+5otqfCtFuLYluFrs1cISkTbUz0oiQ== 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=X3n47e8EcQAc/nQ88aZ3XBm6uPvgWzAEQBEIZaYPqCE=; b=bOaYfLkM6KI8f09SRziFYv4e58Ttu5qVrJScu4Jq2aKw5J30kQo3UncvfsBqJVRf57xyXFSJIsv0ghsLhmUdl+F2UFoG4Gv4pQgm7ntusZdgWRi3t7RIo3RKYjbYjs2PdcMUNIZ288EwhDnfzDoQPXXhagOB07SWGNCNuhfYq8+J1noxAGLce52iKe1ZSrIhZAwlxiy9f5Gw/fRVJsfqGEN0Cl8HQ/9tjpUkoQepjyssnKz+CGXH2W0jmYkhUzLCTKy4EnLoGBFk8X2iZluBAwGz5+KPT1CFRo7BzKYW7jeaKA8KVzzGIesqHWO/RdPcR4qciLrTYGdXoL6jdK7pkg== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by DM4PR12MB8560.namprd12.prod.outlook.com (2603:10b6:8:189::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.45; Wed, 2 Aug 2023 16:06:10 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::af44:7e45:3e53:1e27]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::af44:7e45:3e53:1e27%6]) with mapi id 15.20.6631.045; Wed, 2 Aug 2023 16:06:10 +0000 From: Ori Kam To: Ori Kam , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Dumitrescu, Cristian" , Jerin Jacob CC: "Zhang, Qi Z" , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "Richardson, Bruce" , "jerinj@marvell.com" , "ferruh.yigit@amd.com" , "techboard@dpdk.org" , "Mcnamara, John" , "Zhang, Helin" , "dev@dpdk.org" Subject: RE: [PATCH] ethdev: introduce generic flow item and action Thread-Topic: [PATCH] ethdev: introduce generic flow item and action Thread-Index: AQHZxSHZ5QMjYxvKiU+XcO3FePNW26/WzPOAgAAKDYCAAAW8gIAALg6AgAAV2wCAAASCwIAAAxHw Date: Wed, 2 Aug 2023 16:06:10 +0000 Message-ID: References: <20230802173451.3151646-1-qi.z.zhang@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D87AB8@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AB9@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87ABF@smartserver.smartshare.dk> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW2PR12MB4666:EE_|DM4PR12MB8560:EE_ x-ms-office365-filtering-correlation-id: b873bca0-a343-472e-7772-08db93726313 x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Iy2Ms46njQOdSNqOQbb8dO8fnO0HZ1K0nMQFEpHTZBtHDE5HBvb2T+xFpbM9IZ2iFfX7byG0WLw71F0FaBuj1AQZr8MZY3uv4loK1jP76kuNOP011aIaoM5n59A92q0pqAU/L26QGsWgXMSUrkOK4h5KlBsELKiVhozQ01+KM7NOV2xd/W1z9MD5B2XAV/rMuubPllAmfFPcGPzcePeXWI4ldJXqCCq5xd4FGI57h8ed5lqzaiLc3jkSV9Ami+a4sTjDP+WNSS2VqW6Kx5GZ1t2dNCB+N3ikokixmG9DZi4FlCoCci/wLIEnezvcOOD/qSXTbhqPHC4s0+kLQBS83lL3WY3kIATj6i4VhxKtDrx+5Vp5Ic6Sv1EAfDApIor7kDfN/6j5bH3jsIploQgZf/Wuo49mypTw6Q4Jv1OWDa/vFcPBhd7rUBpsq5X4L27U0UTNH3dWt7n102OvgFlPBhmkePyOapVWc0PiisZd/jmSNskHCt6UcBFmJlegBCpFoH47lNkfMKxnJeo5P3aHfi16Cmp+c1RixnacEpE7sf2HhT8DdVUfB9Bm2BrqefPvRbp+xm6iFosr/PUY6Q3BeY+oTxx0zIp7i6eUj5/iTAAkO3r/AXekZWMG96rG0o8sqynvgVLRgKNl2D6O43CxIiYqAb29FnGPVJBOZJjOGyH85TotJwlP1mZCxLTrwFisyR6q0Ic+5FhPjgrMzHTlN3GtPq8L5lk2s9fEYgLPqNI= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW2PR12MB4666.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(376002)(366004)(396003)(39860400002)(346002)(451199021)(86362001)(66946007)(64756008)(66446008)(66476007)(66556008)(7696005)(71200400001)(52536014)(966005)(76116006)(9686003)(2906002)(4326008)(110136005)(54906003)(55016003)(33656002)(45080400002)(478600001)(83380400001)(66574015)(38100700002)(41300700001)(122000001)(7416002)(5660300002)(8676002)(8936002)(2940100002)(53546011)(26005)(38070700005)(6506007)(186003)(316002)(41533002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OEt6czhyc05MdjNmdW1CbFBaV3VFTHhjSWdid2dsLzFOWFlYWTBSSGM4Rkt5?= =?utf-8?B?YjdmeDNTQVIzVnhEcCtFRnBUNEFsSTVwMG1TRUtrSi9vVXpXcVkzUURUVzc0?= =?utf-8?B?dGFMV01SdXUzVmpYclQybHd6YVgyNWIxTEtRTXJ0RTlyMzZQWTdmWXJpcVcz?= =?utf-8?B?RnRneHlSQ0phWHBLUjU0dVp6c3FrUHNBNUxKblNoWlRteDBnaTc4YkZ1anlW?= =?utf-8?B?VUtuUHNiUHZjdGVIU3Zaa2VnTmpXUVpjWnF1eGcyVTd0M2hGdXZxU21lazJT?= =?utf-8?B?eFE3bVV6OUpqZ1gxTjkvclRJaVN1N1lFZlp6akszbVpDKzRUSDJzR1VkRDZR?= =?utf-8?B?TUVNS3dDRU9paUlIUlQvS1FiNDFhdjJWZWZHeXdacjBMeXF3NUJFbndiL3hB?= =?utf-8?B?SUg5elR2Slh4UHRkcSsvb3ZXSm5wZThld01jQytXRHB6OFN4VldlL05Ec2t2?= =?utf-8?B?bHZ3UWhVVUFFZzI4VmFtK2JWTnRXYXdxZHBrOCsvQXdmMDdSdVRiaGFqdVk5?= =?utf-8?B?ZnZLUU5QU2NsZDlxUDNtWUt2eXNSUitTUDVuanllSzk0RlE2UlBVSmh1MXV4?= =?utf-8?B?UUxIY2k4RUNxWEJUTlVrajQzN1lxTGlKbkVXTk1zQ3Iwa3JqTVMrd0ZvWGRW?= =?utf-8?B?N2RJb1lYOUlYN3E2SVd2K1hxRUt2YTNDYUF2bHNVWUZsbndrSi9sd0lCVE13?= =?utf-8?B?Y2w3dFlVbElGVzJ0a25vTUExS2piUS94K0l2SElmOHdjQXZ6ZGl3QmpVSWN4?= =?utf-8?B?aUtNK3ppUHFNajlaM3ZrN2R5cFpYeitEL0tzTmdvRkxoQSthdmgweDZTNHh6?= =?utf-8?B?LzVrNCtKQkdHd2hyakEwcjNCVml2QjQrWGZiV1pQWnVuaHRoUWpabzZkWkFp?= =?utf-8?B?WWtrU3gzV201U0RnWUpkNlA4WW1RQ251VUZjNVZxaVBjMWJFbkVrRE9RRVZo?= =?utf-8?B?bFczQWtvTFNURnlxT2dFc3B2QnlLUzlYQWxPRGVYSVM1MWhOckN2NkFZL2lM?= =?utf-8?B?MTJ5T1ppOWRJQmtQdlVFTW5mMnhsQjV1SmF1d0c5VWU0anJRRkI4Q0FxRjBC?= =?utf-8?B?RmpxcTJob2RwL0ZUVFFLcFBwMk93T3c1cDM2YzBqN2tCZjJBU0JScjFlS2RO?= =?utf-8?B?dFVpT2lYS3lrblhaY1VSWHJ3Y0ZSY3RwZ2lmbzRLRGdHcGRKZnZxckxaNngv?= =?utf-8?B?YmVhQmM0aFlZeXR1ekhNMkZ4WmFyYy9tcnlCZ2NNbk5oRHczS0hPYWdPbk12?= =?utf-8?B?a2NpZE91cEtEQlFJdm9iSHV1aVNBNVBacXRpTVkwSnRDcEtwNERwbEFsN1ls?= =?utf-8?B?SzYrNGErRFJ0OEFzZDhFMDBKTldjdExiR0FmZnh2eGxnNnRKd2NnbHdTNGwr?= =?utf-8?B?dDdGN3dPcFdINExFTDJxZzRFR2RnWGttSjZmVlpueG92aWwzNk5NaXlsKzEx?= =?utf-8?B?Q2pET0t4KzRuV2VZVW9OY3g2Y0pHRmdVeEk4WC9OUWdpaW9SM3FOWFF3OGkw?= =?utf-8?B?K0IveDRvZ2p1cHZpK0FqdVdKWmRKOENOOFRQc0JsRXdaSlpuVnNWd1VuUTgv?= =?utf-8?B?NnVBbzlPakhGWW1XQ0laZWtHc09wbXFxVjJnWDRTRWpEYzA1eU03WUNyK3NO?= =?utf-8?B?NGZ5MGZXNG1hVFpsYTg4Q3B2TXNIdnFzZEpQN3VmU0hZRUwvaXBaOWJJbTRF?= =?utf-8?B?K0Z4NzcyOVFZSDlGTjdCQjd3Wk5HUGxYbG5QZ1lud2xOalRLbFBpWlRDRXhy?= =?utf-8?B?UGFkT0h4YzdjOE1Dem9CU0Q0WVMwR0QrajBmOXZ5Y1k3QjI0MHBDSzg5N2Ur?= =?utf-8?B?OUlUTmhMazNNQXhUL0wyRng1bnJESENFTzJIbnM4SDJWc0FNbEtobHVxbHJP?= =?utf-8?B?RXRydUU1WUF0b0w0bVpSWGJwYUMrQm5FeDlyOGFOcUV2QXcyZllwTzZPWlJq?= =?utf-8?B?S2VyZzdjNEsyUHQvQ2RuaWNXdVYwRmYwa0U5VTdWYzBrUkk0Kzlxejhjb2p3?= =?utf-8?B?V2UrOUNHN3Y1TTBsMjBXRzNxcG0rNUF0SHVyc3piSk40cHVDb2VNbWdtT05w?= =?utf-8?B?V0Z6YmZLeStGZ2t2eUp3NjdhZjRtSG4xT0Z3Wi9uVk1nSnZzYnJYaVp5eUIv?= =?utf-8?Q?wnFc=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW2PR12MB4666.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b873bca0-a343-472e-7772-08db93726313 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2023 16:06:10.0445 (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: 8xQKPudXKyfr5xQlpiXLFzSc5Mc2PNS4hx1TL2WqR1dQPfvTaJTY9Nh6fy0OBWIsLhMxJflJmk5Q7Wv7ikVkOw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB8560 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 SGkgUWksDQoNCkluIGFkZGl0aW9uIHRvIG15IHByZXZpb3VzIGVtYWlsLA0KSSBmdWxseSBzdXBw b3J0IHlvdeKAmXJlIHlvdXIgaWRlYSB0byB1cGRhdGUgdGhlIHJ0ZV9mbG93IEFQSQ0Kc28gaXQg d2lsbCBiZSBlYXNpZXIgZm9yIFA0IGludGVncmF0aW9uLCBJIGp1c3QgdGhpbmsgdGhlIHN1Z2dl c3RlZCBhcHByb2FjaCBpcyBub3QgDQp0aGUgY29ycmVjdCBvbmUgYXQgbGVhc3Qgbm90IGFzIGFw cGVhcnMgaW4gdGhlIFJGQy4NCg0KSSB0aGluayBpdCB3aWxsIGJlIGdvb2QgaWYgd2UgY2FuIGRp c2N1c3Mgc29tZSB1c2VzIGNhc2VzIHlvdSBhcmUgaGF2aW5nIA0Kd2l0aCB0aGUgQVBJL2ltcGxl bWVudGF0aW9uIGFuZCBzZWUgd2hhdCBpcyB0aGUgYmVzdCB3YXkgdG8gc29sdmUgdGhlbS4NClRo ZSBtYWluIGlkZWEgaXMgbm90IHRvIHJlLWludmVudCB0aGUgd2hlZWwsIGJ1dCB0byBzb2x2ZSBp c3N1ZXMuDQoNClRvIHN1bW1hcml6ZSwgYXMgSSBzZWUgaXQgdGhlcmUgYXJlIHNldmVyYWwgaXNz dWVzOg0KMS4gbm8gcHJvdG9jb2wgaXMgZGVmaW5lZCBzbyBkaWZmZXJlbnQgUE1EIGNhbid0IHRy YW5zbGF0ZSBpdC4gDQoyLiBldmVuIHRoZSBzYW1lIFBNRCBkb2Vzbid0IGtub3cgd2hhdCBpcyB0 aGUgYWN0aW9uLCB1bmxlc3MgeW91IHBsYW4gdGhhdCB0aGlzIHdpbGwgbW92ZQ0KZGlyZWN0bHkg dG8gdGhlIEhXLCBpbiB0aGlzIGNhc2UsIHRoZSBhY3Rpb24gd2lsbCBiZSBIVyBkZXBlbmRlbnQu DQozLiB3aGVuIGFwcGxpY2F0aW9uIHNob3VsZCB1c2UgdGhpcyBuZXcgYWN0aW9uIG9yIHRoZSBv bGQgb25lcy4gDQoNCg0KVGhhbmtzLA0KT3JpDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5 LCBBdWd1c3QgMiwgMjAyMyA2OjQ3IFBNDQo+IA0KPiBIaSBRaQ0KPiANCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJl c3lzdGVtcy5jb20+DQo+ID4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMiwgMjAyMyA2OjI1IFBN DQo+ID4NCj4gPiA+IEZyb206IER1bWl0cmVzY3UsIENyaXN0aWFuIFttYWlsdG86Y3Jpc3RpYW4u ZHVtaXRyZXNjdUBpbnRlbC5jb21dDQo+ID4gPiBTZW50OiBXZWRuZXNkYXksIDIgQXVndXN0IDIw MjMgMTYuMDYNCj4gPiA+DQo+ID4gPiA+IEZyb206IEplcmluIEphY29iIDxqZXJpbmphY29ia0Bn bWFpbC5jb20+DQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIsIDIwMjMgMTI6MjIg UE0NCj4gPiA+ID4NCj4gPiA+ID4gT24gV2VkLCBBdWcgMiwgMjAyMyBhdCA0OjMx4oCvUE0gTW9y dGVuIEJyw7hydXANCj4gPiA+ID4gPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZyb206IE1vcnRlbiBCcsO4cnVwIFttYWlsdG86bWJAc21h cnRzaGFyZXN5c3RlbXMuY29tXQ0KPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCAyIEF1Z3Vz dCAyMDIzIDEyLjI1DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBGcm9tOiBRaSBaaGFuZyBb bWFpbHRvOnFpLnouemhhbmdAaW50ZWwuY29tXQ0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNk YXksIDIgQXVndXN0IDIwMjMgMTkuMzUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRnJv bTogQ3Jpc3RpYW4gRHVtaXRyZXNjdSA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEZvciBuZXR3b3JrIGRldmljZXMgdGhhdCBhcmUg cHJvZ3JhbW1hYmxlIHRocm91Z2ggbGFuZ3VhZ2VzIHN1Y2gNCj4gYXMNCj4gPiA+ID4gPiA+ID4g dGhlIFA0IGxhbmd1YWdlLCB0aGVyZSBhcmUgbm8gcHJlLWRlZmluZWQgZmxvdyBpdGVtcyBhbmQg YWN0aW9ucy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhlIGZvcm1hdCBvZiB0aGUg cHJvdG9jb2wgaGVhZGVyIGFuZCBtZXRhZGF0YSBmaWVsZHMgdGhhdCBhcmUgdXNlZA0KPiB0bw0K PiA+ID4gPiA+ID4gPiBzcGVjaWZ5IHRoZSBmbG93IGl0ZW1zIHRoYXQgbWFrZSB1cCB0aGUgZmxv dyBwYXR0ZXJuLCBhcyB3ZWxsIGFzIHRoZQ0KPiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMsIGFy ZSBhbGwgZGVmaW5lZCBieSB0aGUgcHJvZ3JhbSwgd2l0aCBhbiBpbmZpbml0eSBvZg0KPiA+ID4g PiA+ID4gPiBwb3NzaWJsZSBjb21iaW5hdGlvbnMsIGFzIG9wcG9zZWQgdG8gYmVpbmcgc2VsZWN0 ZWQgZnJvbSBhIGZpbml0ZQ0KPiA+ID4gPiA+ID4gPiBwcmUtZGVmaW5lZCBsaXN0Lg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBJdCBpcyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBwcmUt ZGVmaW5lIGFsbCB0aGUgZmxvdyBpdGVtcyBhbmQgdGhlDQo+ID4gPiA+ID4gPiA+IGZsb3cgYWN0 aW9ucyB0aGF0IHByb2dyYW1zIG1pZ2h0IGV2ZXIgdXNlLCBhcyB0aGVzZSBhcmUgb25seSBsaW1p dGVkDQo+ID4gPiA+ID4gPiA+IGJ5IHRoZSBzZXQgb2YgSFcgcmVzb3VyY2VzIGFuZCB0aGUgcHJv Z3JhbSBkZXZlbG9wZXIncw0KPiBpbWFnaW5hdGlvbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gVG8gc3VwcG9ydCB0aGUgcHJvZ3JhbW1hYmxlIG5ldHdvcmsgZGV2aWNlcywgd2UgYXJl IGludHJvZHVjaW5nOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAqIEEgZ2VuZXJpYyBm bG93IGl0ZW06IFRoZSBmbG93IGl0ZW0gaXMgZXhwcmVzc2VkIGFzIGFuIGFycmF5IG9mIGJ5dGVz DQo+ID4gPiA+ID4gPiA+IG9mIGEgZ2l2ZW4gbGVuZ3RoLCB3aG9zZSBtZWFuaW5nIGlzIGRlZmlu ZWQgYnkgdGhlIHByb2dyYW0gbG9hZGVkDQo+IGJ5DQo+ID4gPiA+ID4gPiA+IHRoZSBuZXR3b3Jr IGRldmljZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGUgZmxvdyBpdGVtIGlzIG5vdCAi Z2VuZXJpYyIsIGl0IGlzICJvcGFxdWUiOiBPbmx5IHRoZSBhcHBsaWNhdGlvbg0KPiA+ID4ga25v d3MNCj4gPiA+ID4gPiA+IHdoYXQgdGhpcyBmbG93IGl0ZW0gZG9lcy4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBJIGhhdGUgdGhlIGNvbmNlcHQgZm9yIHR3byByZWFzb25zOg0KPiA+ID4gPiA+ ID4gMS4gVGhlIGluYWJpbGl0eSBmb3IgYXBwbGljYXRpb25zIHRvIGRldGVjdCB3aGljaCBmbG93 IGl0ZW1zIHRoZQ0KPiA+ID4gdW5kZXJseWluZw0KPiA+ID4gPiA+ID4gaGFyZHdhcmUgc3VwcG9y dHMuDQo+ID4gPiA+ID4gPiAyLiBUaGUgcmlzayB0aGF0IHZlbmRvcnMgd2lsbCB1c2UgdGhpcyBp bnN0ZWFkIG9mIGludHJvZHVjaW5nIG5ldyBmbG93DQo+ID4gPiBpdGVtDQo+ID4gPiA+ID4gPiB0 eXBlcywgYXZhaWxhYmxlIGZvciBhbnlvbmUgdG8gaW1wbGVtZW50Lg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gQWZ0ZXIgZnVydGhlciBjb25zaWRlcmF0aW9uLCB0aGVyZSBtaWdodCBiZSBhIG1pZGRs ZSBncm91bmQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDb25zaWRlciBWZW5kb3ItU3BlY2lmaWMg YXR0cmlidXRlcyBmb3IgREhDUCBhbmQgUkFESVVTLCBvciBTTk1QDQo+ID4gTUlCcy4uLg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gQW55IHZlbmRvciBpcyBmcmVlIHRvIGFkZCBoaXMgb3duLCBwcm9w cmlldGFyeSBzcGVjaWFsLXB1cnBvc2UNCj4gYXR0cmlidXRlcywNCj4gPiA+ID4gd2l0aG91dCBn b2luZyB0aHJvdWdoIHRoZSBzdGFuZGFyZGl6YXRpb24gcHJvY2Vzcy4gKFRoaXMgaXMgdGhlIGtl eQ0KPiA+ID4gY2hhbGxlbmdlDQo+ID4gPiA+IHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgYWltaW5n IGF0LikNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoZSB2ZW5kb3IgbWlnaHQgcHVibGlzaCB0aGVz ZSBhdHRyaWJ1dGVzLCBhbmQgb3RoZXIgdmVuZG9ycyBtYXkNCj4gPiA+ID4gaW1wbGVtZW50IHRo ZW0gdG9vLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQW5kIGluIG9yZGVyIHRvIHByZXZlbnQgY29s bGlzaW9ucywgdGhlIFZlbmRvci1TcGVjaWZpYyBhdHRyaWJ1dGVzIGNvbnRhaW4NCj4gPiA+IGEN Cj4gPiA+ID4gZ2xvYmFsbHkgdW5pcXVlIHZlbmRvciBJRCwgc3VjaCBhcyB0aGUgUHJpdmF0ZSBF bnRlcnByaXNlIE51bWJlciBbMV0NCj4gPiA+ID4gbWFuYWdlZCBieSBJQU5BLg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gSWYgc2ltaWxhciBwcmluY2lwbGVzIGNhbiBiZSB3b3JrZWQgaW50byB0aGUg cGF0Y2gsIEkgY2FuIHN1cHBvcnQgaXQuDQo+ID4gPiA+DQo+ID4gPiA+ICsxDQo+ID4gPiA+DQo+ ICsxIEkgdW5kZXJzdGFuZCB0aGF0IHRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgZ2VuZXJpYywgYnV0 IGhvdyBjYW4gaXQ/DQo+IGhvdyBkbyB5b3Uga25vdyBpZiBQTUQgc3VwcG9ydHMgdGhpcz8NCj4g d2hhdCBpZiBlYWNoIFBNRCBuZWVkcyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnM/DQo+IA0KPiBJ biBhZGRpdGlvbiBob3cgY2FuIHlvdSBoYW5kbGUgbnVtYmVyIG9mIHRob3NlIGFjdGlvbiBhbmQg aXRlbXM/DQo+IEZvciBleGFtcGxlIGlmIEkgaGF2ZSBtYXRjaCBvbiBwcm90b2NvbCBYIGFuZCBZ IGFuZCBkbyBhY3Rpb25zIFogYW5kIFcNCj4gZWFjaCBvbmUgb2YgdGhvc2UgY2FuIGJlIGdlbmVy aWMgaXRlbS4NCj4gaWYgeW91IGhhdmUgYSB3YXkgdG8gZGVmaW5lIGEgc3RhbmRhcmQgd2h5IHRv IHJlYWQgc3VjaCBhY3Rpb25zIHRoZW4gd2UgaGF2ZQ0KPiBzb21ldGhpbmcgdG8gdGFsayBhYm91 dC4NCj4gDQo+IA0KPiA+ID4NCj4gPiA+IE1vcnRlbiwgSmVyaW4sDQo+ID4gPg0KPiA+ID4gSSB0 aGluayB0aGVyZSBpcyBhIGZ1bmRhbWVudGFsIG1pc3VuZGVyc3RhbmRpbmcgaGVyZTogd2UgYXJl IG5vdCB0cnlpbmcgdG8NCj4gPiA+IHByb3ZpZGUgc3VwcG9ydCBmb3Igc29tZSBub24tc3RhbmRh cmQgdmVuZG9yLXNwZWNpZmljIGZlYXR1cmVzIGhlcmUuIFdoYXQNCj4gPiA+IHdlIGFyZSB0cnlp bmcgdG8gZG8gaXMgYWRkIGdlbmVyaWMgbXVsdGktdmVuZG9yIHN1cHBvcnQgaW4gUlRFX0ZMT1cg Zm9yDQo+ID4gPiBQNCBwcm9ncmFtbWFibGUgbmV0d29yayBkZXZpY2VzLCB3aGljaCByZXF1aXJl cyBzdXBwb3J0aW5nIGZsb3cgaXRlbXMNCj4gPiA+IGFuZCBhY3Rpb25zIHRoYXQgYXJlIGRlZmlu ZWQgZGlyZWN0bHkgYnkgdGhlIHVzZXIgdGhyb3VnaCB0aGVpciBQNCBwcm9ncmFtcw0KPiA+ID4g YXMgb3Bwb3NlZCB0byBiZWluZyBzZWxlY3RlZCBmcm9tIGEgcHJlLWRlZmluZWQgbGlzdC4NCj4g PiA+DQo+ID4gPiBUaGVyZSBhcmUgYW4gaW5maW5pdHkgb2YgZmxvdyBpdGVtcyBhbmQgYWN0aW9u cyB0aGF0IHRoZSB1c2VycyBjYW4gZGVmaW5lDQo+ID4gPiB0aHJvdWdoDQo+ID4gPiB0aGVpciBQ NCBwcm9ncmFtcywgYW5kIHRoZXkgY2Fubm90IGJlIHN1cHBvcnRlZCB3aXRoIGEgZmluaXRlIGxp c3Qgb2YNCj4gPiBSVEVfRkxPVw0KPiA+ID4gaXRlbXMgYW5kIGFjdGlvbnM6DQo+ID4gPg0KPiA+ ID4gMS8gU29tZSBmbG93IGl0ZW1zIG1hcCBkaXJlY3RseSB0byB0aGUgSUVURiBkZWZpbmVkIHBy b3RvY29scywgd2hpbGUgc29tZQ0KPiA+ID4gb3RoZXJzIGRvIG5vdCwgYW5kIG9ubHkgdGhlIHVz ZXIgd3JpdGluZyB0aGUgcHJvZ3JhbSBrbm93cyB0aGUgZXhhY3QNCj4gYW5zd2VyOw0KPiA+ID4N Cj4gPiA+IDIvIFNvbWUgZmxvdyBpdGVtcyBhcmUgc2ltcGx5IGFwcGxpY2F0aW9uLXNwZWNpZmlj IChub3QgdmVuZG9yIHNwZWNpZmljKQ0KPiA+ID4gbWV0YS1kYXRhIHRoYXQgKEkgaG9wZSB3ZSBh bGwgYWNjZXB0KSBpcyBvdXRzaWRlIG9mIHRoZSBzdGFuZGFyZGl6YXRpb24NCj4gPiA+IHByb2Nl c3MuDQo+ID4NCj4gPiBTdWNoIGl0ZW1zIGNhbiB1c2UgYSBzcGVjaWFsICJyZXNlcnZlZCIgdmVu ZG9yLWlkLg0KPiA+DQo+IA0KPiBDYW4geW91IHNob3cgbWUgd2hhdCBpdGVtcy9hY3Rpb25zIGFy ZSBtaXNzaW5nIGluIHJ0ZV9mbG93Pw0KPiANCj4gPiA+DQo+ID4gPiAzLyBTb21lIGZsb3cgYWN0 aW9ucyBtYXAgZGlyZWN0bHkgdG8gdGhlIGV4aXN0aW5nIFJURV9GTE9XIGFjdGlvbnMNCj4gPiAo ZXNwZWNpYWxseQ0KPiA+ID4gdGhlIG1vcmUgc3RyYWlnaHRmb3J3YXJkIGFjdGlvbnMgc3VjaCBh czogcGFja2V0IGRyb3AsIHBhY2tldCByZWRpcmVjdGlvbiB0bw0KPiA+ID4gYW4NCj4gPiA+IG91 dHB1dCBxdWV1ZSwgc29tZSBzcGVjaWZpYyBwYWNrZXQgbW9kaWZpY2F0aW9ucywgZXRjKSwgd2hp bGUgdGhlIHZhc3QNCj4gPiA+IG1ham9yaXR5DQo+ID4gPiBvZiBwb3NzaWJsZSBhY3Rpb25zIGRv IG5vdC4NCj4gPiA+DQo+ID4gPiBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBQNCBwcm9ncmFtbWFi bGUgbmV0d29yayBkZXZpY2VzIHNob3VsZCBOT1QgYmUNCj4gPiA+IHN1cHBvcnRlZCBieSBEUERL IGFuZCBSVEVfRkxPVz8NCj4gPg0KPiA+IE5vLCBJIGdldCB0aGUgbmVlZCBmb3IgdGhpcy4gQW5k IEkgdW5kZXJzdGFuZCB0aGF0IHNpbmNlIFA0IGlzIGNvbXBpbGVkIHRvDQo+ID4gaGFyZHdhcmUt c3BlY2lmaWMgYmluYXJ5IGJsb2JzLCB0aGVyZSBpcyBhIG5lZWQgdG8gcHV0IHN1Y2ggYmxvYnMg aW50byBEUERLIGFzDQo+ID4gZmxvdyBpdGVtcyBhbmQgYWN0aW9ucywgaW5zdGVhZCBvZiB0aGUg InVuY29tcGlsZWQiIFA0IHByb2dyYW0uDQo+ID4NCj4gPiBJIGFtIHN1Z2dlc3RpbmcgdGhhdCBp bnN0ZWFkIG9mIGFkZGluZyBhIGNvbXBsZXRlbHkgb3BhcXVlIGRhdGEgdHlwZToNCj4gPg0KPiA+ IFN0cnVjdCBpdGVtIHsNCj4gPiBJbnQgbGVuOyAgICAgIC8vIExlbmd0aCBvZiB2YWx1ZSBpbiBi eXRlcy4NCj4gPiBDaGFyIHZhbHVlW107IC8vIEFwcGxpY2F0aW9uIHNwZWNpZmljIG1lYW5pbmcu DQo+ID4gfTsNCj4gPg0KPiANCj4gQnV0IHNpbmNlIHlvdSBkaWRuJ3QgZGVmaW5lIGEga25vd24g cHJvdG9jb2wgZm9yIFBNRCB0byByZWFkIHRoZSBkYXRhIGhvdw0KPiAyIHBtZHMgY2FuIHVzZSB0 aGUgc2FtZSBhY3Rpb24/DQo+IA0KPiA+IC4uLmFkZCBhIHNlbWktb3BhcXVlIGRhdGEgdHlwZToN Cj4gPg0KPiA+IFN0cnVjdCB0bHYgew0KPiA+IEludCB0eXBlOyAgICAgLy8gVmVuZG9yIHNwZWNp ZmljIHR5cGUuDQo+ID4gSW50IGxlbjsgICAgICAvLyBMZW5ndGggb2YgdmFsdWUgaW4gYnl0ZXMu DQo+ID4gQ2hhciB2YWx1ZVtdOyAvLyAoVmVuZG9yLCBUeXBlKSBzcGVjaWZpYyBtZWFuaW5nLg0K PiA+IH07DQo+ID4NCj4gPiBTdHJ1Y3QgaXRlbSB7DQo+ID4gSW50IHZlbmRvcjsgICAgICAgICAg Ly8gVmVuZG9yIElELg0KPiA+IEludCBsZW47ICAgICAgICAgICAgIC8vIExlbmd0aCBvZiB2YWx1 ZXMgaW4gYnl0ZXMuDQo+ID4gU3RydWN0IHRsdiB2YWx1ZXNbXTsgLy8gQXJyYXkgb2YgVExWcy4N Cj4gPiB9Ow0KPiA+DQo+ID4gTGlrZSBSQURJVVMgVmVuZG9yLVNwZWNpZmljIGF0dHJpYnV0ZXM6 DQo+ID4gaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMyMTM4I3NlY3Rp b24tNS4yNg0KPiA+DQo+ID4gVGhlbiBzb21lIChWZW5kb3IsIFR5cGUpIGZpZWxkcyBjYW4gYmUg ZG9jdW1lbnRlZCAoYW5kIHRodXMgZ2VuZXJhbGx5DQo+ID4gdW5kZXJzdG9vZCBieSBEUERLKSwg YW5kIHNvbWUgdW5kb2N1bWVudGVkLg0KPiA+DQo+ID4gRS5nLiBsaWtlIE1pY3Jvc29mdCBkb2N1 bWVudGVkIHNvbWUgb2YgdGhlaXJzIGluIFJGQyAyNTQ4Og0KPiA+IGh0dHBzOi8vZGF0YXRyYWNr ZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjU0OA0KPiA+DQo+ID4NCj4gPiBBbm90aGVyIGJlbmVm aXQgaXMgdGhhdCB0aGVzZSBuZXcgIlZFTkRPUi1TUEVDSUZJQyIgZmxvdyB0eXBlcyBjYW4gYmUN Cj4gcmV1c2VkDQo+ID4gZm9yIG90aGVyIHB1cnBvc2VzIHRoYW4gY29tcGlsZWQgUDQgcHJvZ3Jh bXMuDQo+ID4NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBQcmVmZXJhYmx5 LCB0aGVyZSBzaG91bGQgYWxzbyBiZSBhIG1lYW5zIGZvciBhcHBsaWNhdGlvbnMgdG8gcXVlcnkg aWYNCj4gPiA+IHNwZWNpZmljDQo+ID4gPiA+IFZlbmRvci1TcGVjaWZpYyBmbG93IGl0ZW1zIGFu ZCBhY3Rpb25zIGFyZSBzdXBwb3J0ZWQgb3Igbm90Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiBbMV06IGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2VudGVycHJpc2Ut bnVtYmVycy8NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+IFJlZ2FyZHMsDQo+ID4gPiBDcmlzdGlh bg0K