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 8C47342FBB; Thu, 3 Aug 2023 03:05:23 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4D69043245; Thu, 3 Aug 2023 03:05:23 +0200 (CEST) Received: from mgamail.intel.com (unknown [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 1F519406B8; Thu, 3 Aug 2023 03:05:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1691024720; x=1722560720; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QcYd82Sqo5DavAjOtVnaO5wgM41xYB4NYQRe/1PKOxQ=; b=AG706DVjEf6BYB+tXRDK+XbWzpxOT1tmlh+7eBYlHCmCFQZ+GLBpf3Cb 6gUsJyrTdZhJKoMXlGyty02mlnXlLW+HJggjhi4FSZQqvSQAIDVz5v6Ox 4JxrJpqyMcPQT6p6y4R8bSGntwuLBI1Nv0ydTBD1PHyvfbW6U3hNTwSCZ tAuA9zOotsxYdq5LKDD74lm2ybNgy1hq/GMr8VVy2Ss5iPA4LMcIOh1fC 6Ay6ATL59fIRQZJKC7kB6TUoB+D/oVeMqxl4veitMAHjoWcmBpyYfbpWU D37h+4kyrdZ1HouoY2dnxsLNhWecCK+ZM0rUCPfhWgwyJ36zxAsjGMuim Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10790"; a="433579582" X-IronPort-AV: E=Sophos;i="6.01,250,1684825200"; d="scan'208";a="433579582" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Aug 2023 18:05:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10790"; a="975882142" X-IronPort-AV: E=Sophos;i="6.01,250,1684825200"; d="scan'208";a="975882142" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga006.fm.intel.com with ESMTP; 02 Aug 2023 18:05:17 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Wed, 2 Aug 2023 18:05:17 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.2507.27 via Frontend Transport; Wed, 2 Aug 2023 18:05:17 -0700 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Wed, 2 Aug 2023 18:05:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KO/BZljqXkIoCVsIvezhiqYf6Hc06anOQ7hcuBYmVaJWu0aTqT1BEVcYugQFrKleY1srifwGwiNHYODbDFAZK2tMqjV6Wmw87zv7iPDS3xhzUIyAaikKNusBYThiuunyr4JywaoMlpvTWucP/9tmnJmbongESBtq4snM4j7+3WX6xQn+K4GTmi4bBIRG+3oTzye4s2dF0+gzG9ZfZwmqPr4CsTSwjISI6290pRw25obs+VnpI4vM6or4PusqzfozS7hxpq7yZetVt8iSI/N/lDsumZPC3s+bCa/hRdXBJYM4Bh1u4geBQ/KHeOY/r9C4/ykAHFLAWmAnSJRT4m3DVw== 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=QcYd82Sqo5DavAjOtVnaO5wgM41xYB4NYQRe/1PKOxQ=; b=SPN7jB9xjIeNbK7b+c+yVS8Nmxr3V7y56ZLmrzp8+uACGag1Ej4RbMkNb5fU65ViqnCpZ+Wt22TOrPeqs0/3BVn48czm4+yq4Epey/uyW2txCHGsPcb0S1I1c2mROiFk0dk2wJoLSMyLGpQRYYHPifYQj3JKxinCT9IbrvasHMJJwTjWcO/XgyZzZKGhwam1aBHwuB999kBXNTxB53UgG0qdQjM3ev3s4iL6Nl6m0sG0hpd//NmyRaA5aS3HUmSJYaadyoy6NO2UYYE4egLV1yIPP6wPlq5OCBi0GXuURCNSY0Mqhve8ggjZ4fYVPvOLpjy3rsmjUUO3fOCof6/M7A== 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 Received: from DM4PR11MB5994.namprd11.prod.outlook.com (2603:10b6:8:5d::20) by DM3PR11MB8672.namprd11.prod.outlook.com (2603:10b6:0:44::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.33; Thu, 3 Aug 2023 01:05:14 +0000 Received: from DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::8a49:15a2:ab69:91c3]) by DM4PR11MB5994.namprd11.prod.outlook.com ([fe80::8a49:15a2:ab69:91c3%4]) with mapi id 15.20.6631.046; Thu, 3 Aug 2023 01:05:14 +0000 From: "Zhang, Qi Z" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Dumitrescu, Cristian" , Ori Kam , "Jerin Jacob" CC: "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: AQHZxSHa5TP862ajckKHF87k4bqFPK/WzPOAgAAKDYCAAAW8gIAALg6AgAAV2wCAAAZeAIAABToAgAAVYACAAAlTgIAAX3rA Date: Thu, 3 Aug 2023 01:05:13 +0000 Message-ID: References: <20230802173451.3151646-1-qi.z.zhang@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D87AB8@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AB9@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87ABF@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AC2@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D87AC2@smartserver.smartshare.dk> 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5994:EE_|DM3PR11MB8672:EE_ x-ms-office365-filtering-correlation-id: 75e66047-28ae-4730-5e1b-08db93bdb179 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: O41FCNrgCwxAg7bu7tqlMgWDNYo9AcfA7CDQ/j3ilwIIqCPxoTgBf5UO0W+KB7d4cJQs+gupp2LNuUDpcaeyhTwI0jtjjQwuVRbbYTvV87RdnG91/Uv6eS5zSvXCL1l6/jE8QlF7Z2sPoV7a++hGZRIUUWZV/qZtdIxF1T09f/hgPxvynt8ejmz1IzvZdwixuAaxM8WDh36e2qSgTI4cwQOv58TKodibvFkGlxFXjKn4GY/YPjBTzLzrqOQH37EJBraQ0Jk97hT+eGRfts2Edjqyr0TMLxOrwZYe99SSRC8EChObsKx1chiT8idee3ZmvbfI0ers9x5GtyImJEeWRHo/m6PzpuEbwq4eOOwhldrxbyHee7BU6ZiBUEzRsSsvg6Jv+IOYC693Uc5FMb07d/nsXG8q1lihuOcZ7OfeBIyZ3Xb3yib5RfvIB+2a2t8GOiug4TXzdndDZMZaKL/bAS4oAyG/euyLWc4pL4mwitBmjOjQ/8pIC1ivSCJl7DXmS9LFs4dYK4UWW3KrnwKZ6/QjbC3BmOv03V4s8QUJ8Mqp1Yjd0I99a+WLadeDEhVqzQehQA2pD0W24wabGB5Lco67TCSw9izv846P9tmv3U25QYOtsgPLh8ba52CsgzsJv7RjU0bToFVbMJAZ3ErITTzG19TLR/JoHM0D6bM9i/0= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5994.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(396003)(376002)(346002)(39860400002)(366004)(451199021)(38100700002)(66476007)(86362001)(316002)(8936002)(64756008)(8676002)(5660300002)(66446008)(4326008)(54906003)(110136005)(122000001)(41300700001)(33656002)(76116006)(52536014)(66946007)(66556008)(82960400001)(38070700005)(478600001)(45080400002)(30864003)(2906002)(71200400001)(9686003)(966005)(7696005)(6506007)(26005)(83380400001)(66574015)(186003)(53546011)(55016003)(41533002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VXN0VmgweVJLUU44L2E0SDRJY3NRbEZQWVlxcXRxMFIxZ3VKeU5FTUJqcWNF?= =?utf-8?B?amMyOWx1N0tKOHpUaUhqVHZJYU03UDd1emFUYUxqQXJVSUdTeklyZ1RLQkc5?= =?utf-8?B?amNDbzlpWXFCcnZERlJTL1VGaHhjZTRtaWxwUWVLd280dUViYitpMXllVjRR?= =?utf-8?B?MWh2KzJXb1hoRlhJNmtOZ1ZSdXlKREZWcklpeEU0MlNJR0l3MUdnZHUvRUpY?= =?utf-8?B?eFF4MmhtRWIxRWs5K2F3blp0UWdxTW1HbkVDM0l6SEpQTHFaL3RaYU5xUlRG?= =?utf-8?B?cS82N1NiRlJMMHVYaVJza0ZSWEhPY3BqNTJORU44TVhya2w5NDVwRUNsQ0RS?= =?utf-8?B?THlQbW5GVlYrTTV3Mm9DMGhpMzdRUlpKQk11M29sZkNuQ3hZV3pUYThnUEt2?= =?utf-8?B?ellnY2w1YktQTFcwUzJIUUpCRG9kQm1hcUdLaUlFMERJUDVTck94YW5Zamp0?= =?utf-8?B?K0syZUNyK0puUDhKdEl6VHpvYkJINGp5QnRTalI5bnYwWXNibzdQcit1em84?= =?utf-8?B?TW5oa1JHZnJQQ1hYZlRsZ3d1UHFObHdNVzBoQlNkcGZ5VDA0SFJxTmZnV3NE?= =?utf-8?B?cWVrVXNFT01kQ2RwQWUwY0pkeHQzeWczbzhKNVRyV280S3VEQXNhWldpQ2xK?= =?utf-8?B?dnM2cGlRbmFnRVBKYk9kR2Vlc2dLMksyeE9pUkIxMytNdlh2VStZeHlnQmov?= =?utf-8?B?elV2aUlKVWJUUHFqOWM0ZlNEZmhBc25wUGZkZW8rV3gwT3U5dldmNU1yZ2VK?= =?utf-8?B?cHAzcUFuVFU1dWpwTW1XWnpNSjByZXpERGU5MWtoMTNPdktPWUpXRVJDTFBC?= =?utf-8?B?K08zVjBzVXVWb3BFeXQzQWRkYXpoUGxhZEZZMXdpQU9jVW1RbHJiSExYVngz?= =?utf-8?B?Um85MTd1STNHYW1Ebms4UEpPVjgrTVFBWEdWd25RVDRtMmo3andNQStvTWRB?= =?utf-8?B?RnNSRGxCcjNkNGVsem1tWFh3b1RxOG05c0ZpY1R4b2tocFBBeDA3bDl2NWpm?= =?utf-8?B?bGFrQSsxRENRdUR6SmJCOU1aYndCZCtRNTY0QllZOXNXQmhwVEMxMVpFUlhV?= =?utf-8?B?c01tZ0UyK25iK2FXcTExUzM2eS8zU1lxODl1Z2pTeE1LV0xnRVBUdU5DREhW?= =?utf-8?B?R0VLQkMxWnVNSml1enoyUmg1aktoSDc2VU1SNkk0TkJWdG4xZUpzem5tSG1U?= =?utf-8?B?K0hrVDJpN1lmVXZxRDgrRFB2S2RURFFQMlNLanRVVXdGMUR5NWl1SlBNY0Jz?= =?utf-8?B?TkZISnd4cXR0Nm5GdVY5bk1UMGtvclgyWEpxdGlUK3JhMThDcjRPd1VodXph?= =?utf-8?B?elkzOGtINnVQc1NFR21zYm1LQW5EUDFZTXpqRHZjd0NZQ3I3eEJGTnU1SUZ1?= =?utf-8?B?Tk0zV1pJWUxzOEE0a3ZJM25Dd3UzNFUvN0oxV1pkR2xNeHl1dDNPUm12cjd5?= =?utf-8?B?bzlxWk1qUGsyczNValZEaUhSeitlbDViSW15Vll6RkdFTmJySERmaXVHUERh?= =?utf-8?B?ay9lOHNsbXJMVmJIempDb3JTbWJxeXNSYXovUGhTdk1xcXJ6azl6Y2xIK216?= =?utf-8?B?TElpTFRTU2k2RnI4TjJXOTFLOEU0Z0kzVFZTTkpWSGNXWVdib1JCcUt0OGJj?= =?utf-8?B?Ump6QU5PKzZkY0NUcnFoSGt2WmdNdnM0aUI4WnJDek9WWWl2M2ZxTTh5WXlr?= =?utf-8?B?cERvTmVFTnJJY0EyRExod2RVZXYzMDJZL2JNbjJOc0t3TGFSbTBLU09IalVM?= =?utf-8?B?ZzN3TkRoMUI3WjdNbk9yNUFaRms5cGMzZ010RHlscHhOZHJEOXRBcWlaenkx?= =?utf-8?B?V2FTVFovY2FPWVlLeWpVd3g5Umh0SUZNRFJsRFVLdFhzV3kzemsvK1EyTnBG?= =?utf-8?B?QU9paC9ncFN1NHJtQTB3a1FwK2h4WHVaSWlBcm44UjIvM0J4MGpiOFhmZHpl?= =?utf-8?B?UFdwaWpvdWo0ZGk3cjFjSHg1VHNDQXQ4dG5DbC9OSzFzVUk5aUpBZGVJa1Bs?= =?utf-8?B?Y3BINEN5aTAwVUt1djRjdExNWVRKVXo5SHI5bmRlSGxzRldVUnZ4cGdNVWdZ?= =?utf-8?B?dHRzOXVGbEh5Tys5bXpFZUNCSXF5b1JIQTF4MVBxT3VVcXJDN2hCdFltaCtL?= =?utf-8?Q?oQ1BqXkaTuDOYLFC91bnAt1VH?= 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: DM4PR11MB5994.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75e66047-28ae-4730-5e1b-08db93bdb179 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Aug 2023 01:05:13.8602 (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: w6Mmf/muposVSAXdb+3ZFx23VNDHZEDJd46MIsIYdrWWPXqVjndU/9KfNVOWuIIgkOBWgDkEpVzYCUPMHsdiYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR11MB8672 X-OriginatorOrg: intel.com 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTW9ydGVuIEJyw7hydXAg PG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAzLCAy MDIzIDE6NTYgQU0NCj4gVG86IER1bWl0cmVzY3UsIENyaXN0aWFuIDxjcmlzdGlhbi5kdW1pdHJl c2N1QGludGVsLmNvbT47IE9yaSBLYW0NCj4gPG9yaWthQG52aWRpYS5jb20+OyBKZXJpbiBKYWNv YiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiBDYzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdA aW50ZWwuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmphbG9uDQo+IChFWFRFUk5BTCkgPHRo b21hc0Btb25qYWxvbi5uZXQ+OyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tOw0KPiBSaWNoYXJk c29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBqZXJpbmpAbWFydmVsbC5j b207DQo+IGZlcnJ1aC55aWdpdEBhbWQuY29tOyB0ZWNoYm9hcmRAZHBkay5vcmc7IE1jbmFtYXJh LCBKb2huDQo+IDxqb2huLm1jbmFtYXJhQGludGVsLmNvbT47IFpoYW5nLCBIZWxpbiA8aGVsaW4u emhhbmdAaW50ZWwuY29tPjsNCj4gZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hd IGV0aGRldjogaW50cm9kdWNlIGdlbmVyaWMgZmxvdyBpdGVtIGFuZCBhY3Rpb24NCj4gDQo+ID4g RnJvbTogRHVtaXRyZXNjdSwgQ3Jpc3RpYW4gW21haWx0bzpjcmlzdGlhbi5kdW1pdHJlc2N1QGlu dGVsLmNvbV0NCj4gPiBTZW50OiBXZWRuZXNkYXksIDIgQXVndXN0IDIwMjMgMTkuMjMNCj4gPg0K PiA+ID4gRnJvbTogT3JpIEthbSA8b3Jpa2FAbnZpZGlhLmNvbT4NCj4gPiA+IFNlbnQ6IFdlZG5l c2RheSwgQXVndXN0IDIsIDIwMjMgNTowNiBQTQ0KPiA+ID4NCj4gPiA+IEhpIFFpLA0KPiA+ID4N Cj4gPiA+IEluIGFkZGl0aW9uIHRvIG15IHByZXZpb3VzIGVtYWlsLA0KPiA+ID4gSSBmdWxseSBz dXBwb3J0IHlvdeKAmXJlIHlvdXIgaWRlYSB0byB1cGRhdGUgdGhlIHJ0ZV9mbG93IEFQSSBzbyBp dA0KPiA+ID4gd2lsbCBiZSBlYXNpZXIgZm9yIFA0IGludGVncmF0aW9uLCBJIGp1c3QgdGhpbmsg dGhlIHN1Z2dlc3RlZA0KPiA+IGFwcHJvYWNoIGlzIG5vdA0KPiA+ID4gdGhlIGNvcnJlY3Qgb25l IGF0IGxlYXN0IG5vdCBhcyBhcHBlYXJzIGluIHRoZSBSRkMuDQo+ID4gPg0KPiA+ID4gSSB0aGlu ayBpdCB3aWxsIGJlIGdvb2QgaWYgd2UgY2FuIGRpc2N1c3Mgc29tZSB1c2VzIGNhc2VzIHlvdSBh cmUNCj4gPiBoYXZpbmcNCj4gPiA+IHdpdGggdGhlIEFQSS9pbXBsZW1lbnRhdGlvbiBhbmQgc2Vl IHdoYXQgaXMgdGhlIGJlc3Qgd2F5IHRvIHNvbHZlDQo+ID4gdGhlbS4NCj4gPiA+IFRoZSBtYWlu IGlkZWEgaXMgbm90IHRvIHJlLWludmVudCB0aGUgd2hlZWwsIGJ1dCB0byBzb2x2ZSBpc3N1ZXMu DQo+ID4NCj4gPiBZZXMsIGZ1bGx5IGFncmVlLCBpdCB3b3VsZCBiZSBncmVhdCBtZWV0IGFuZCB0 YWxrIHRocm91Z2ggdGhpcywgYXMgd2UNCj4gPiBkaWQgaXQgaW4gdGhlIHBhc3QgZm9yIG90aGVy IGlzc3Vlcy4gV2hhdCBkYXlzICYgdGltZSBuZXh0IHdlZWsgd291bGQNCj4gPiBiZSBnb29kIGZv ciBwZW9wbGU/DQo+IA0KPiBNeSBjYWxlbmRhciBpcyBwcmV0dHkgbXVjaCBhbGwgb3BlbiB0aGVz ZSBkYXlzLCBzbyBhbnl0aW1lIHdvcmsgaG91cnMgaW4gdGhlDQo+IENlbnRyYWwgRXVyb3BlYW4g dGltZSB6b25lIHdvcmtzIGZvciBtZS4NCj4gDQo+ID4NCj4gPiBNZWFud2hpbGUsIHNvbWUgYW5z d2VycyBiZWxvdy4NCj4gPg0KPiA+ID4NCj4gPiA+IFRvIHN1bW1hcml6ZSwgYXMgSSBzZWUgaXQg dGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzOg0KPiA+ID4gMS4gbm8gcHJvdG9jb2wgaXMgZGVmaW5l ZCBzbyBkaWZmZXJlbnQgUE1EIGNhbid0IHRyYW5zbGF0ZSBpdC4NCj4gPg0KPiA+IFRoZSBmb3Jt YXQgb2YgdGhlIGZsb3cgaXRlbXMgaXMgZGVmaW5lZCBieSB0aGUgUDQgcHJvZ3JhbSwgc28gYWxs IHRoZQ0KPiA+IEhXIGRldmljZXMgKGZyb20gdGhlIHNhbWUgb3IgZnJvbSBkaWZmZXJlbnQgdmVu ZG9ycykgdGhhdCBhcmUgYWJsZSB0bw0KPiA+IHN1Y2Nlc3NmdWxseSBsb2FkIHRoZSBnaXZlbiBQ NCBwcm9ncmFtIHdpbGwgaGF2ZSB0aGUgc2FtZQ0KPiA+IHVuZGVyc3RhbmRpbmcgb2YgdGhlIGZs b3cgaXRlbXMuDQo+IA0KPiBJZiB0aGUgUDQgZmxvdyBpdGVtcy9hY3Rpb25zIGFyZSBzdGFuZGFy ZGl6ZWQgYnkgc29tZSBQNCBvcmdhbml6YXRpb24gb3INCj4gc2ltaWxhciwgdGhleSBjYW4gYmUg ZW51bWVyYXRlZCBhbmQgZGVmaW5lZCBhcyBEUERLIGZsb3cgaXRlbXMvYWN0aW9ucy4gQXQNCj4g bGVhc3QgdGhlIG9uZXMgdGhhdCBhcmUgc3RhbmRhcmRpemVkLg0KPiANCj4gQW5kIGlmIHlvdSAo Zm9yIGZsZXhpYmlsaXR5IG9yIG90aGVyIHJlYXNvbnMpIG5lZWQgdG8gYnlwYXNzIHRoZSBSVEVf RkxPVw0KPiBzdGFuZGFyZGl6YXRpb24gcHJvY2VzcyAoZ2V0dGluZyBBQ0tzIGV0Yy4gb24gdGhl IERQREsgbWFpbGluZyBsaXN0KSBmb3IgZmFzdGVyDQo+IGludGVncmF0aW9uIG9mIG5ldyBEUERL IGZsb3cgaXRlbXMvYWN0aW9ucywgaXQgZG9lcyBtYWtlIHNlbnNlIHRvIGRlZmluZSBhDQo+IGdl bmVyaWMgZmxvdyBpdGVtIChhbmQgYWN0aW9uKSBmb3IgdGhpcyBwdXJwb3NlIChhbmQgbm90IGp1 c3QgZm9yIFA0KS4NCg0KPiANCj4gSW4gb3JkZXIgdG8gYXZvaWQgY29uZmxpY3RzIGJldHdlZW4g UDQgYW5kIG5vbi1QNCBnZW5lcmljIGZsb3cgaXRlbXMvYWN0aW9ucywNCj4gdGhlIGdlbmVyaWMg dHlwZSBzaG91bGQgaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gaW50ZXJwcmV0IHRo ZQ0KPiBpbmZvcm1hdGlvbiwgd2hpY2ggaXMgd2h5IEkgc3VnZ2VzdCBtYWtpbmcgaXQgYSBWZW5k b3ItU3BlY2lmaWMgdHlwZSwgd2l0aA0KPiB2ZW5kb3Itc3BlY2lmaWMgVExWJ3MgKG1hbmFnZWQg YnkgdGhlIHZlbmRvciksIGxpa2UgdGhlIFJBRElVUyBWZW5kb3ItDQo+IFNwZWNpZmljIGF0dHJp YnV0ZXMgSSBjb21wYXJlZCB0bywgaW5zdGVhZCBvZiBqdXN0IGFuIG9wYXF1ZSBibG9iLg0KDQpJ IGxpa2UgdGhpcyBpZGVhLCBidXQgaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBpbnRyb2R1Y2UgYSB2 ZW5kb3Itc3BlY2lmaWMgdHlwZSwgaXQgY291bGQgYmUgY29uc2lkZXJlZCBhIGRldmljZS1zcGVj aWZpYyB0eXBlIChvciBwb3J0LXNwZWNpZmljIGluIHRoZSBjb250ZXh0IG9mIERQREspLg0KDQpI b3dldmVyLCB0aGUgUE1EIGNhbiBtYW5hZ2UgYSBkaWN0aW9uYXJ5LCBlbmFibGluZyB1c2VycyB0 byBxdWVyeSBhYm91dCB0aGUgZm9ybWF0IG9mIGVhY2ggZ2VuZXJpYyBpdGVtIG9yIGFjdGlvbiBp ZiB3ZSBjYW4gZXhwb3NlIGEgc2V0IG9mIHF1ZXJ5IEFQSXMuDQoNCkJ1dCBJIGd1ZXNzIHdlIGRv bid0IG5lZWQgdmVuZG9yLWlkIC8gdmVuZG9yLXR5cGUgYXMgUkFESVVTIGRvZXMsIGFzIHdlIGhh dmUgcG9ydF9pZCBoZXJlLg0KDQoNCj4gDQo+IFRoZSBQNCBzdGFuZGFyZGl6ZWQgaXRlbXMvYWN0 aW9ucyBjYW4gdXNlIHRoZSBWZW5kb3IgSUQgb2YgdGhlIFA0IHN0YW5kYXJkcw0KPiBvcmdhbml6 YXRpb24uDQo+IA0KPiBUaGUgbm9uLXN0YW5kYXJkaXplZCBpdGVtcy9hY3Rpb25zIGNhbiB1c2Ug dGhlIFZlbmRvciBJRCBvZiB0aGUgaGFyZHdhcmUNCj4gdmVuZG9yIG9yIHRoZSBhcHBsaWNhdGlv biBkZXZlbG9wZXIuDQo+IA0KPiA+DQo+ID4gPiAyLiBldmVuIHRoZSBzYW1lIFBNRCBkb2Vzbid0 IGtub3cgd2hhdCBpcyB0aGUgYWN0aW9uLCB1bmxlc3MgeW91DQo+ID4gPiBwbGFuDQo+ID4gdGhh dA0KPiA+ID4gdGhpcyB3aWxsIG1vdmUNCj4gPiA+IGRpcmVjdGx5IHRvIHRoZSBIVywgaW4gdGhp cyBjYXNlLCB0aGUgYWN0aW9uIHdpbGwgYmUgSFcgZGVwZW5kZW50Lg0KPiA+DQo+ID4gVGhlIHBy b2Nlc3Npbmcgb2YgZWFjaCBmbG93IGFjdGlvbiwgYXMgd2VsbCBhcyB0aGUgbnVtYmVyIG9mIGFy Z3VtZW50cw0KPiA+IGFuZCB0aGUgZm9ybWF0IG9mIGVhY2ggYWN0aW9uIGFyZ3VtZW50LCBpcyBk ZWZpbmVkIGJ5IHRoZSBQNCBwcm9ncmFtLA0KPiA+IHNvIGFsbCB0aGUgSFcgZGV2aWNlcyAoZnJv bSB0aGUgc2FtZSBvciBmcm9tIGRpZmZlcmVudCB2ZW5kb3JzKSB0aGF0DQo+ID4gYXJlIGFibGUg dG8gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIGdpdmVuIFA0IHByb2dyYW0gd2lsbCBoYXZlIHRoZSBz YW1lDQo+ID4gdW5kZXJzdGFuZGluZyBvZiB0aGUgZmxvdyBhY3Rpb25zLg0KPiA+DQo+ID4gPiAz LiB3aGVuIGFwcGxpY2F0aW9uIHNob3VsZCB1c2UgdGhpcyBuZXcgYWN0aW9uIG9yIHRoZSBvbGQg b25lcy4NCj4gPg0KPiA+IEkgZ3Vlc3MgaXQgaXMgZ29vZCB0byBjbGFyaWZ5IHRoYXQgdGhlcmUg YXJlIHR3byBhcHBsaWNhdGlvbjogYSBkYXRhDQo+ID4gcGF0aCBhcHBsaWNhdGlvbiAodGhlIFA0 IHByb2dyYW0pIHRoYXQgZGVmaW5lcyB0aGUgcGFja2V0IHByb2Nlc3NpbmcNCj4gPiBwaXBlbGlu ZSwgYW5kIGEgY29udHJvbCBwYXRoIGFwcGxpY2F0aW9uIHRoYXQgaW52b2tlcyBSVEVfRkxPVyB0 bw0KPiA+IGFkZC9kZWxldGUgdGhlIGZsb3dzIG9uIHRoZSBkZXZpY2UuDQo+ID4gSSBndWVzcw0K PiA+IHdlIGFyZSBub3cgcmVmZXJyaW5nIHRvIHRoZSBjb250cm9sIHBhdGggYXBwLg0KPiA+DQo+ ID4gV2hlbmV2ZXIgdGhlIFA0IHByb2dyYW0gKHRoZSBkYXRhIHBhdGggYXBwKSB0aGF0IGlzIGN1 cnJlbnRseSBsb2FkZWQNCj4gPiBvbiB0aGUgZGV2aWNlIGlzIGRlZmluaW5nIGFuZCB1c2luZyBm bG93IGFjdGlvbnMgdGhhdCBwZXJmb3JtDQo+ID4gaWRlbnRpY2FsIHByb2Nlc3NpbmcgdG8gb25l IG9mIHRoZSBleGlzdGluZyBwcmUtZGVmaW5lZCBSVEVfRkxPVw0KPiA+IGFjdGlvbnMgKHN1Y2gg YXMgcGFja2V0IGRyb3AsIHBhY2tldCByZWRpcmVjdGlvbiB0byBhIGdpdmVuIG91dHB1dA0KPiA+ IHF1ZXVlLCBwYWNrZXQgbW9kaWZpY2F0aW9ucywgZXRjKSwgdGhlbiB0aGUgYXBwICh0aGUgY29u dHJvbCBwYXRoIGFwcCkNCj4gPiBjYW4gYWNjZXB0IHRoZXNlIGFjdGlvbnMgYXMgd2VsbC4NCj4g Pg0KPiA+IEJ1dCBpbiB0aGUgKGZyZXF1ZW50KSBjYXNlIHRoYXQgdGhlIHVzZXIncyBQNCBwcm9n cmFtIGRlZmluZXMgYWN0aW9ucw0KPiA+IHRoYXQgZG8gbm90IG1hcCB0byBhbiBSVEVfRkxPVyBh Y3Rpb24gZnJvbSB0aGUgcHJlLWRlZmluZWQgbGlzdCwgdGhlbg0KPiA+IHRoZSBhcHAgaGFzIG5v IG90aGVyIG9wdGlvbiBidXQgdG8gdXNlIHRoZSBuZXdseSBwcm9wb3NlZCBnZW5lcmljIGZsb3cN Cj4gPiBhY3Rpb24gaW4gb3JkZXIgdG8gc3BlY2lmeSAodGhyb3VnaCB0aGUgYWN0aW9uX2lkIGZp ZWxkKSB0aGUgZXhhY3QNCj4gPiBmbG93IGFjdGlvbiBmcm9tIHRoZSBQNCBwcm9ncmFtLg0KPiA+ DQo+ID4gTWFrZXMgc2Vuc2U/DQo+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ ID4gT3JpDQo+ID4gPg0KPiA+DQo+ID4gUmVnYXJkcywNCj4gPiBDcmlzdGlhbg0KPiA+DQo+ID4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZyb206IE9yaSBLYW0gPG9y aWthQG52aWRpYS5jb20+DQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIsIDIwMjMg Njo0NyBQTQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSBRaQ0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogTW9ydGVuIEJyw7hydXAgPG1i QHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIEF1Z3Vz dCAyLCAyMDIzIDY6MjUgUE0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRnJvbTogRHVtaXRyZXNj dSwgQ3Jpc3RpYW4NCj4gPiBbbWFpbHRvOmNyaXN0aWFuLmR1bWl0cmVzY3VAaW50ZWwuY29tXQ0K PiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCAyIEF1Z3VzdCAyMDIzIDE2LjA2DQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW5qYWNvYmtAZ21haWwu Y29tPg0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIEF1Z3VzdCAyLCAyMDIzIDEyOjIy IFBNDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE9uIFdlZCwgQXVnIDIsIDIwMjMgYXQg NDozMeKAr1BNIE1vcnRlbiBCcsO4cnVwDQo+ID4gPiA+ID4gPiA+IDxtYkBzbWFydHNoYXJlc3lz dGVtcy5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBGcm9t OiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRvOm1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4gPiA+ ID4gPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgMiBBdWd1c3QgMjAyMyAxMi4yNQ0KPiA+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gRnJvbTogUWkgWmhhbmcgW21haWx0bzpx aS56LnpoYW5nQGludGVsLmNvbV0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU2VudDogV2VkbmVzZGF5 LCAyIEF1Z3VzdCAyMDIzIDE5LjM1DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+IEZyb206IENyaXN0aWFuIER1bWl0cmVzY3UNCj4gPiA8Y3Jpc3RpYW4uZHVtaXRyZXNj dUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEZv ciBuZXR3b3JrIGRldmljZXMgdGhhdCBhcmUgcHJvZ3JhbW1hYmxlIHRocm91Z2gNCj4gPiBsYW5n dWFnZXMNCj4gPiA+IHN1Y2gNCj4gPiA+ID4gYXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIFA0 IGxhbmd1YWdlLCB0aGVyZSBhcmUgbm8gcHJlLWRlZmluZWQgZmxvdyBpdGVtcw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBhbmQNCj4gPiBhY3Rpb25zLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBUaGUgZm9ybWF0IG9mIHRoZSBwcm90b2NvbCBoZWFkZXIgYW5kIG1ldGFk YXRhIGZpZWxkcw0KPiA+IHRoYXQgYXJlDQo+ID4gPiB1c2VkDQo+ID4gPiA+IHRvDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IHNwZWNpZnkgdGhlIGZsb3cgaXRlbXMgdGhhdCBtYWtlIHVwIHRoZSBmbG93 IHBhdHRlcm4sDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGFzDQo+ID4gd2VsbCBhcw0KPiA+ID4gdGhl DQo+ID4gPiA+ID4gPiA+ID4gPiA+IGZsb3cgYWN0aW9ucywgYXJlIGFsbCBkZWZpbmVkIGJ5IHRo ZSBwcm9ncmFtLCB3aXRoIGFuDQo+ID4gaW5maW5pdHkgb2YNCj4gPiA+ID4gPiA+ID4gPiA+ID4g cG9zc2libGUgY29tYmluYXRpb25zLCBhcyBvcHBvc2VkIHRvIGJlaW5nIHNlbGVjdGVkDQo+ID4g PiA+ID4gPiA+ID4gPiA+IGZyb20NCj4gPiBhDQo+ID4gPiBmaW5pdGUNCj4gPiA+ID4gPiA+ID4g PiA+ID4gcHJlLWRlZmluZWQgbGlzdC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gSXQgaXMgdmlydHVhbGx5IGltcG9zc2libGUgdG8gcHJlLWRlZmluZSBhbGwgdGhl IGZsb3cNCj4gPiBpdGVtcyBhbmQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGZsb3cgYWN0aW9u cyB0aGF0IHByb2dyYW1zIG1pZ2h0IGV2ZXIgdXNlLCBhcyB0aGVzZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBhcmUNCj4gPiBvbmx5DQo+ID4gPiBsaW1pdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGJ5 IHRoZSBzZXQgb2YgSFcgcmVzb3VyY2VzIGFuZCB0aGUgcHJvZ3JhbSBkZXZlbG9wZXIncw0KPiA+ ID4gPiBpbWFnaW5hdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gVG8gc3VwcG9ydCB0aGUgcHJvZ3JhbW1hYmxlIG5ldHdvcmsgZGV2aWNlcywgd2UgYXJlDQo+ ID4gPiBpbnRyb2R1Y2luZzoNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKiBBIGdlbmVyaWMgZmxvdyBpdGVtOiBUaGUgZmxvdyBpdGVtIGlzIGV4cHJlc3NlZCBhcw0K PiA+ID4gPiA+ID4gPiA+ID4gPiBhbg0KPiA+IGFycmF5IG9mDQo+ID4gPiBieXRlcw0KPiA+ID4g PiA+ID4gPiA+ID4gPiBvZiBhIGdpdmVuIGxlbmd0aCwgd2hvc2UgbWVhbmluZyBpcyBkZWZpbmVk IGJ5IHRoZQ0KPiA+IHByb2dyYW0NCj4gPiA+IGxvYWRlZA0KPiA+ID4gPiBieQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiB0aGUgbmV0d29yayBkZXZpY2UuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+ID4gVGhlIGZsb3cgaXRlbSBpcyBub3QgImdlbmVyaWMiLCBpdCBpcyAib3BhcXVl IjogT25seSB0aGUNCj4gPiBhcHBsaWNhdGlvbg0KPiA+ID4gPiA+ID4ga25vd3MNCj4gPiA+ID4g PiA+ID4gPiA+IHdoYXQgdGhpcyBmbG93IGl0ZW0gZG9lcy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPiBJIGhhdGUgdGhlIGNvbmNlcHQgZm9yIHR3byByZWFzb25zOg0KPiA+ ID4gPiA+ID4gPiA+ID4gMS4gVGhlIGluYWJpbGl0eSBmb3IgYXBwbGljYXRpb25zIHRvIGRldGVj dCB3aGljaCBmbG93DQo+ID4gaXRlbXMgdGhlDQo+ID4gPiA+ID4gPiB1bmRlcmx5aW5nDQo+ID4g PiA+ID4gPiA+ID4gPiBoYXJkd2FyZSBzdXBwb3J0cy4NCj4gPiA+ID4gPiA+ID4gPiA+IDIuIFRo ZSByaXNrIHRoYXQgdmVuZG9ycyB3aWxsIHVzZSB0aGlzIGluc3RlYWQgb2YNCj4gPiBpbnRyb2R1 Y2luZyBuZXcNCj4gPiA+IGZsb3cNCj4gPiA+ID4gPiA+IGl0ZW0NCj4gPiA+ID4gPiA+ID4gPiA+ IHR5cGVzLCBhdmFpbGFibGUgZm9yIGFueW9uZSB0byBpbXBsZW1lbnQuDQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiBBZnRlciBmdXJ0aGVyIGNvbnNpZGVyYXRpb24sIHRoZXJlIG1p Z2h0IGJlIGEgbWlkZGxlIGdyb3VuZC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ IENvbnNpZGVyIFZlbmRvci1TcGVjaWZpYyBhdHRyaWJ1dGVzIGZvciBESENQIGFuZCBSQURJVVMs DQo+ID4gPiA+ID4gPiA+ID4gb3INCj4gPiBTTk1QDQo+ID4gPiA+ID4gTUlCcy4uLg0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQW55IHZlbmRvciBpcyBmcmVlIHRvIGFkZCBoaXMg b3duLCBwcm9wcmlldGFyeSBzcGVjaWFsLQ0KPiA+IHB1cnBvc2UNCj4gPiA+ID4gYXR0cmlidXRl cywNCj4gPiA+ID4gPiA+ID4gd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoZSBzdGFuZGFyZGl6YXRp b24gcHJvY2Vzcy4gKFRoaXMgaXMNCj4gPiB0aGUga2V5DQo+ID4gPiA+ID4gPiBjaGFsbGVuZ2UN Cj4gPiA+ID4gPiA+ID4gdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBhaW1pbmcgYXQuKQ0KPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhlIHZlbmRvciBtaWdodCBwdWJsaXNoIHRoZXNl IGF0dHJpYnV0ZXMsIGFuZCBvdGhlcg0KPiA+ID4gPiA+ID4gPiA+IHZlbmRvcnMNCj4gPiBtYXkN Cj4gPiA+ID4gPiA+ID4gaW1wbGVtZW50IHRoZW0gdG9vLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gQW5kIGluIG9yZGVyIHRvIHByZXZlbnQgY29sbGlzaW9ucywgdGhlIFZlbmRv ci1TcGVjaWZpYw0KPiA+IGF0dHJpYnV0ZXMNCj4gPiA+IGNvbnRhaW4NCj4gPiA+ID4gPiA+IGEN Cj4gPiA+ID4gPiA+ID4gZ2xvYmFsbHkgdW5pcXVlIHZlbmRvciBJRCwgc3VjaCBhcyB0aGUgUHJp dmF0ZSBFbnRlcnByaXNlDQo+ID4gTnVtYmVyIFsxXQ0KPiA+ID4gPiA+ID4gPiBtYW5hZ2VkIGJ5 IElBTkEuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBJZiBzaW1pbGFyIHByaW5j aXBsZXMgY2FuIGJlIHdvcmtlZCBpbnRvIHRoZSBwYXRjaCwgSSBjYW4NCj4gPiBzdXBwb3J0IGl0 Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArMQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiArMSBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIGdlbmVyaWMsIGJ1 dCBob3cgY2FuIGl0Pw0KPiA+ID4gPiBob3cgZG8geW91IGtub3cgaWYgUE1EIHN1cHBvcnRzIHRo aXM/DQo+ID4gPiA+IHdoYXQgaWYgZWFjaCBQTUQgbmVlZHMgZGlmZmVyZW50IGNvbmZpZ3VyYXRp b25zPw0KPiA+ID4gPg0KPiA+ID4gPiBJbiBhZGRpdGlvbiBob3cgY2FuIHlvdSBoYW5kbGUgbnVt YmVyIG9mIHRob3NlIGFjdGlvbiBhbmQgaXRlbXM/DQo+ID4gPiA+IEZvciBleGFtcGxlIGlmIEkg aGF2ZSBtYXRjaCBvbiBwcm90b2NvbCBYIGFuZCBZIGFuZCBkbyBhY3Rpb25zIFoNCj4gPiA+ID4g YW5kDQo+ID4gVw0KPiA+ID4gPiBlYWNoIG9uZSBvZiB0aG9zZSBjYW4gYmUgZ2VuZXJpYyBpdGVt Lg0KPiA+ID4gPiBpZiB5b3UgaGF2ZSBhIHdheSB0byBkZWZpbmUgYSBzdGFuZGFyZCB3aHkgdG8g cmVhZCBzdWNoIGFjdGlvbnMNCj4gPiA+ID4gdGhlbg0KPiA+IHdlDQo+ID4gPiBoYXZlDQo+ID4g PiA+IHNvbWV0aGluZyB0byB0YWxrIGFib3V0Lg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+IE1vcnRlbiwgSmVyaW4sDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g SSB0aGluayB0aGVyZSBpcyBhIGZ1bmRhbWVudGFsIG1pc3VuZGVyc3RhbmRpbmcgaGVyZTogd2Ug YXJlDQo+ID4gPiA+ID4gPiBub3QNCj4gPiB0cnlpbmcNCj4gPiA+IHRvDQo+ID4gPiA+ID4gPiBw cm92aWRlIHN1cHBvcnQgZm9yIHNvbWUgbm9uLXN0YW5kYXJkIHZlbmRvci1zcGVjaWZpYyBmZWF0 dXJlcw0KPiA+IGhlcmUuDQo+ID4gPiBXaGF0DQo+ID4gPiA+ID4gPiB3ZSBhcmUgdHJ5aW5nIHRv IGRvIGlzIGFkZCBnZW5lcmljIG11bHRpLXZlbmRvciBzdXBwb3J0IGluDQo+ID4gUlRFX0ZMT1cN Cj4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gUDQgcHJvZ3JhbW1hYmxlIG5ldHdvcmsgZGV2aWNlcywg d2hpY2ggcmVxdWlyZXMgc3VwcG9ydGluZw0KPiA+ID4gPiA+ID4gZmxvdw0KPiA+ID4gaXRlbXMN Cj4gPiA+ID4gPiA+IGFuZCBhY3Rpb25zIHRoYXQgYXJlIGRlZmluZWQgZGlyZWN0bHkgYnkgdGhl IHVzZXIgdGhyb3VnaA0KPiA+ID4gPiA+ID4gdGhlaXINCj4gPiBQNA0KPiA+ID4gcHJvZ3JhbXMN Cj4gPiA+ID4gPiA+IGFzIG9wcG9zZWQgdG8gYmVpbmcgc2VsZWN0ZWQgZnJvbSBhIHByZS1kZWZp bmVkIGxpc3QuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhlcmUgYXJlIGFuIGluZmluaXR5 IG9mIGZsb3cgaXRlbXMgYW5kIGFjdGlvbnMgdGhhdCB0aGUgdXNlcnMNCj4gPiBjYW4gZGVmaW5l DQo+ID4gPiA+ID4gPiB0aHJvdWdoDQo+ID4gPiA+ID4gPiB0aGVpciBQNCBwcm9ncmFtcywgYW5k IHRoZXkgY2Fubm90IGJlIHN1cHBvcnRlZCB3aXRoIGEgZmluaXRlDQo+ID4gbGlzdCBvZg0KPiA+ ID4gPiA+IFJURV9GTE9XDQo+ID4gPiA+ID4gPiBpdGVtcyBhbmQgYWN0aW9uczoNCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAxLyBTb21lIGZsb3cgaXRlbXMgbWFwIGRpcmVjdGx5IHRvIHRoZSBJ RVRGIGRlZmluZWQgcHJvdG9jb2xzLA0KPiA+IHdoaWxlDQo+ID4gPiBzb21lDQo+ID4gPiA+ID4g PiBvdGhlcnMgZG8gbm90LCBhbmQgb25seSB0aGUgdXNlciB3cml0aW5nIHRoZSBwcm9ncmFtIGtu b3dzIHRoZQ0KPiA+IGV4YWN0DQo+ID4gPiA+IGFuc3dlcjsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiAyLyBTb21lIGZsb3cgaXRlbXMgYXJlIHNpbXBseSBhcHBsaWNhdGlvbi1zcGVjaWZpYyAo bm90IHZlbmRvcg0KPiA+IHNwZWNpZmljKQ0KPiA+ID4gPiA+ID4gbWV0YS1kYXRhIHRoYXQgKEkg aG9wZSB3ZSBhbGwgYWNjZXB0KSBpcyBvdXRzaWRlIG9mIHRoZQ0KPiA+IHN0YW5kYXJkaXphdGlv bg0KPiA+ID4gPiA+ID4gcHJvY2Vzcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFN1Y2ggaXRlbXMg Y2FuIHVzZSBhIHNwZWNpYWwgInJlc2VydmVkIiB2ZW5kb3ItaWQuDQo+ID4gPiA+ID4NCj4gPiA+ ID4NCj4gPiA+ID4gQ2FuIHlvdSBzaG93IG1lIHdoYXQgaXRlbXMvYWN0aW9ucyBhcmUgbWlzc2lu ZyBpbiBydGVfZmxvdz8NCj4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAzLyBTb21l IGZsb3cgYWN0aW9ucyBtYXAgZGlyZWN0bHkgdG8gdGhlIGV4aXN0aW5nIFJURV9GTE9XDQo+ID4g YWN0aW9ucw0KPiA+ID4gPiA+IChlc3BlY2lhbGx5DQo+ID4gPiA+ID4gPiB0aGUgbW9yZSBzdHJh aWdodGZvcndhcmQgYWN0aW9ucyBzdWNoIGFzOiBwYWNrZXQgZHJvcCwgcGFja2V0DQo+ID4gcmVk aXJlY3Rpb24NCj4gPiA+IHRvDQo+ID4gPiA+ID4gPiBhbg0KPiA+ID4gPiA+ID4gb3V0cHV0IHF1 ZXVlLCBzb21lIHNwZWNpZmljIHBhY2tldCBtb2RpZmljYXRpb25zLCBldGMpLCB3aGlsZQ0KPiA+ IHRoZSB2YXN0DQo+ID4gPiA+ID4gPiBtYWpvcml0eQ0KPiA+ID4gPiA+ID4gb2YgcG9zc2libGUg YWN0aW9ucyBkbyBub3QuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQXJlIHlvdSBzYXlpbmcg dGhhdCB0aGUgUDQgcHJvZ3JhbW1hYmxlIG5ldHdvcmsgZGV2aWNlcyBzaG91bGQNCj4gPiBOT1QN Cj4gPiA+IGJlDQo+ID4gPiA+ID4gPiBzdXBwb3J0ZWQgYnkgRFBESyBhbmQgUlRFX0ZMT1c/DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBObywgSSBnZXQgdGhlIG5lZWQgZm9yIHRoaXMuIEFuZCBJIHVu ZGVyc3RhbmQgdGhhdCBzaW5jZSBQNCBpcw0KPiA+IGNvbXBpbGVkIHRvDQo+ID4gPiA+ID4gaGFy ZHdhcmUtc3BlY2lmaWMgYmluYXJ5IGJsb2JzLCB0aGVyZSBpcyBhIG5lZWQgdG8gcHV0IHN1Y2gN Cj4gPiA+ID4gPiBibG9icw0KPiA+IGludG8NCj4gPiA+IERQREsgYXMNCj4gPiA+ID4gPiBmbG93 IGl0ZW1zIGFuZCBhY3Rpb25zLCBpbnN0ZWFkIG9mIHRoZSAidW5jb21waWxlZCIgUDQgcHJvZ3Jh bS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgYW0gc3VnZ2VzdGluZyB0aGF0IGluc3RlYWQgb2Yg YWRkaW5nIGEgY29tcGxldGVseSBvcGFxdWUgZGF0YQ0KPiA+IHR5cGU6DQo+ID4gPiA+ID4NCj4g PiA+ID4gPiBTdHJ1Y3QgaXRlbSB7DQo+ID4gPiA+ID4gSW50IGxlbjsgICAgICAvLyBMZW5ndGgg b2YgdmFsdWUgaW4gYnl0ZXMuDQo+ID4gPiA+ID4gQ2hhciB2YWx1ZVtdOyAvLyBBcHBsaWNhdGlv biBzcGVjaWZpYyBtZWFuaW5nLg0KPiA+ID4gPiA+IH07DQo+ID4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+ID4gQnV0IHNpbmNlIHlvdSBkaWRuJ3QgZGVmaW5lIGEga25vd24gcHJvdG9jb2wgZm9yIFBN RCB0byByZWFkIHRoZQ0KPiA+IGRhdGEgaG93DQo+ID4gPiA+IDIgcG1kcyBjYW4gdXNlIHRoZSBz YW1lIGFjdGlvbj8NCj4gPiA+ID4NCj4gPiA+ID4gPiAuLi5hZGQgYSBzZW1pLW9wYXF1ZSBkYXRh IHR5cGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBTdHJ1Y3QgdGx2IHsNCj4gPiA+ID4gPiBJbnQg dHlwZTsgICAgIC8vIFZlbmRvciBzcGVjaWZpYyB0eXBlLg0KPiA+ID4gPiA+IEludCBsZW47ICAg ICAgLy8gTGVuZ3RoIG9mIHZhbHVlIGluIGJ5dGVzLg0KPiA+ID4gPiA+IENoYXIgdmFsdWVbXTsg Ly8gKFZlbmRvciwgVHlwZSkgc3BlY2lmaWMgbWVhbmluZy4NCj4gPiA+ID4gPiB9Ow0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gU3RydWN0IGl0ZW0gew0KPiA+ID4gPiA+IEludCB2ZW5kb3I7ICAgICAg ICAgIC8vIFZlbmRvciBJRC4NCj4gPiA+ID4gPiBJbnQgbGVuOyAgICAgICAgICAgICAvLyBMZW5n dGggb2YgdmFsdWVzIGluIGJ5dGVzLg0KPiA+ID4gPiA+IFN0cnVjdCB0bHYgdmFsdWVzW107IC8v IEFycmF5IG9mIFRMVnMuDQo+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IExpa2Ug UkFESVVTIFZlbmRvci1TcGVjaWZpYyBhdHRyaWJ1dGVzOg0KPiA+ID4gPiA+IGh0dHBzOi8vZGF0 YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjEzOCNzZWN0aW9uLTUuMjYNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFRoZW4gc29tZSAoVmVuZG9yLCBUeXBlKSBmaWVsZHMgY2FuIGJlIGRvY3Vt ZW50ZWQgKGFuZCB0aHVzDQo+ID4gZ2VuZXJhbGx5DQo+ID4gPiA+ID4gdW5kZXJzdG9vZCBieSBE UERLKSwgYW5kIHNvbWUgdW5kb2N1bWVudGVkLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRS5nLiBs aWtlIE1pY3Jvc29mdCBkb2N1bWVudGVkIHNvbWUgb2YgdGhlaXJzIGluIFJGQyAyNTQ4Og0KPiA+ ID4gPiA+IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjU0OA0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBbm90aGVyIGJlbmVmaXQgaXMgdGhhdCB0aGVz ZSBuZXcgIlZFTkRPUi1TUEVDSUZJQyIgZmxvdyB0eXBlcw0KPiA+ID4gPiA+IGNhbg0KPiA+IGJl DQo+ID4gPiA+IHJldXNlZA0KPiA+ID4gPiA+IGZvciBvdGhlciBwdXJwb3NlcyB0aGFuIGNvbXBp bGVkIFA0IHByb2dyYW1zLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gUHJlZmVyYWJseSwgdGhlcmUgc2hvdWxk IGFsc28gYmUgYSBtZWFucyBmb3IgYXBwbGljYXRpb25zDQo+ID4gPiA+ID4gPiA+ID4gdG8NCj4g PiBxdWVyeSBpZg0KPiA+ID4gPiA+ID4gc3BlY2lmaWMNCj4gPiA+ID4gPiA+ID4gVmVuZG9yLVNw ZWNpZmljIGZsb3cgaXRlbXMgYW5kIGFjdGlvbnMgYXJlIHN1cHBvcnRlZCBvciBub3QuDQo+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFsxXTogaHR0cHM6 Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvZW50ZXJwcmlzZS1udW1iZXJzLw0KPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gUmVnYXJkcywNCj4gPiA+ID4gPiA+IENy aXN0aWFuDQo=