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 8B5F642B8F; Wed, 24 May 2023 19:46:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 18D6C40156; Wed, 24 May 2023 19:46:12 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) by mails.dpdk.org (Postfix) with ESMTP id 6E21E400EF for ; Wed, 24 May 2023 19:46:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jZoV0Au8X0fti9TTRuTXvlQ7WJ+Jz5x9h46m39EiUmZQd73WCe+qMpEF/jel5JiuIhzjm8txMC2ruRRhtmZEBQgUlByb2pq/t5xcNmqAyRR6jscGIlyLCKJmhcU5m6mfQkGu6hSkVbGcBHu2gYZy9dUth8FACBU03rnQXsPl0CN2oRtzsLIbnOop0yGur3RCiXpVD3CV9yheYDr0E1Z7OEXVwdnpEQSz9pMYVlODfpYBOTD+7pcJ0fiBHLTouxZjl8rp2+9Q5yV/jnW+ku2FFHn2C2S78P/OTbY9aQV8OhgzyUtq8lveAdbAAvzSrji+9BOXJJPt6gu3s0ZS6oukmw== 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=Xk3DPOo3BJU4ObUitYLFJrzmRdbDbIKntpZ/U5dkmXU=; b=gXLORtqRNbU9ZMVHEn3PGfnYQN3Ul74qfh7GNRBQ9VT9EcZXpgI6Zyi4ofAcGos0mRR1LtNdSxBQaN8ow6J7bx9qV3lfLmVE6nQNYJZdgSpOyZKyuFkShDkC5Hycktj4lC0hsoAtQlHZzs7/BKDc5y5fsjXi6NofZ//5cjY+e6Bg8nxrJ3XvkqTJ+03iqPq5Luc/z606qFbTZPXpjWosTKDTPjJshSmwbB1tDA9HZ1yWJSEjDHc4kKqtn1WG1khkSghKQY4b2RjyUvT0clUayT7sKa0BieC86EnH9b+evnjAEMrj8Ll3qtTkQ/TedOZtT1eP9E4ud0fyPaXR2CunYQ== 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=Xk3DPOo3BJU4ObUitYLFJrzmRdbDbIKntpZ/U5dkmXU=; b=YsZ++BoAzzs903SdlitDB/QfIDuVoMBOEcb2U41v2YfNKUJuGawhCK2JZ2W9tTAIKKaF0NLAeoW1uefinUK/WX1H5b65VpmR638h22C40rOMAsefoBigwRkrepoc1CB568TUX+RndGJgUpaDQQ9TgjissgWXoxLsT93m0xxZDC1xYxIOFsYl47eAP1+2rNv36AuLDPXPKyJ9haDVRsLZhJ9LXyFpwACMZBNGeAIEFLvvdTHz0TzqjBQlvF1oh7k6ifE3vIVIgR7LcuGOQ5ZiLFVQpoJUYmBhXtfW1XcTXykdqfDu6I+T2R31xrRxQPvuEG47mLHOv74xYYgj8am2/w== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by PH8PR12MB7157.namprd12.prod.outlook.com (2603:10b6:510:22b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Wed, 24 May 2023 17:46:06 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::2283:65bb:1559:9dcf%4]) with mapi id 15.20.6411.028; Wed, 24 May 2023 17:46:06 +0000 From: Ori Kam To: Gregory Etelson , "dev@dpdk.org" CC: Maayan Kashani , Raslan Darawsheh , Aman Singh , Yuying Zhang , Ferruh Yigit , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko Subject: RE: [PATCH v4] ethdev: add indirect list flow action Thread-Topic: [PATCH v4] ethdev: add indirect list flow action Thread-Index: AQHZikmKI5Y52rT7hE2T0C8dvfTl9q9puRgA Date: Wed, 24 May 2023 17:46:06 +0000 Message-ID: References: <20230418172144.24365-1-getelson@nvidia.com> <20230519115947.331304-1-getelson@nvidia.com> In-Reply-To: <20230519115947.331304-1-getelson@nvidia.com> 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_|PH8PR12MB7157:EE_ x-ms-office365-filtering-correlation-id: a315a78a-e561-47a8-c379-08db5c7ec012 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: AL+2pz42d/YYb1WDNZetcMv+YTgR0Wn5UFAEHAAAl4cizvTYMvbtgf2fah1txYJAHto9o7Z99zaUNCEeXjITF0V5uat/IrxxXBOML0FsyjhtbLE0P3xxPRydDzFI9jGnN1I07yMvOLIl9nUE7sws6Jc5FN1dM10qiFuCshRFlB1Rbw8ByAGsa362A2snts1KNCvZnaJLX1WPrYMwG7iZG0NQtsZYoJHB5pYJxoUho3wknYa1UhSGVVGQlM5ZodEy5KcN+RjCcARsd5qJvFz5NsX4enibftCuLX5LyXEr/zGpZazBLxPmPkmgj8rELirebUTcWPAc8io+Zq95x+PnJNPVfHUQX69qgXokHxCVpjKzpYrkhzUZftLLLVHPeRa1qYz8IIORG+c7ku8HnGss/Kq4djD0OIz8wqDVm4RTbBhgZjPmxZFNjExv2FQ9PY9xcrGyodlz0U7g6/Tm8jHb3kxs46usS/1QbsyHQ6Yl+RSkHvfp/6elAvuOSTqb4RbdssGUsKFXkx/dRDXqU+dv9MlZ3ixiDDAvwq1zbBupcXbSSuE9huizDM5DBCoYt3hrD157JgZN8hxc9RAybQFyYexBMSu685AVWQLDTGiGlsTe5GPIbLrpNEnyv/0GOY5d 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)(39860400002)(396003)(366004)(376002)(136003)(346002)(451199021)(66946007)(2906002)(30864003)(76116006)(54906003)(52536014)(83380400001)(8936002)(66556008)(5660300002)(33656002)(71200400001)(8676002)(4326008)(66446008)(110136005)(41300700001)(55016003)(64756008)(316002)(7696005)(66476007)(478600001)(26005)(186003)(86362001)(9686003)(6506007)(38070700005)(122000001)(38100700002)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TEt2V3c3LzJJUVlKcDFJTFJXS1BMQ216eG00YmJmWmJyRHJ2ZVBCNnBsY1ZW?= =?utf-8?B?VVhodmNxcjVFeW1ZWnZTTXZsV3N3VDV1T1FvZzl1NHpFSFRudStWTXRERlRN?= =?utf-8?B?bHdzSHg5QnlVWU9mcFQ0NXc0KzhyUmF1dDJvMzdEV0wxc2NCdDlpZjFyRkIr?= =?utf-8?B?NU5aSWVXam1KRVNRUVFpQ1VLdGZmQjhlYjJreVRwYjdsQ2QramEwV291LzMr?= =?utf-8?B?SWpwSDMwY2p6SjhrOWdBSG4rTmgxMkx1aERsZlZGRmZvUFhneHB0SmcrYURP?= =?utf-8?B?RjBxT1JqenRQVVBWWHRXaGplR0k3VjBXWjk4Y1gzK3hpWTRjcnBPK3JQdU5i?= =?utf-8?B?YXpKaUtldzM1UE83NndXbjlneGdvcVdnU2NHVTNLcVhOblovL0pyVm8xL3hD?= =?utf-8?B?M1JKTllHRlpKbWNYZEhqNit3SDBlcVFRbWxHRHhOc1Y2aXdOQmNpRmxVdHNw?= =?utf-8?B?TGkzOFBQbVkzdXM4OUt3aVFtV0Q2OWJITnN2QTVkNFh2TDc0RDFIdllzRERX?= =?utf-8?B?eHFKWHdtNytIcUJGK253aFljc2QwTndGUTVHME91L3ZaZTREbUxPVkpMZTlE?= =?utf-8?B?K2RpNVpyaUQ1VlZra3hVcnNMWmY1WlJLeWlrdWR3eTdSVlpWeWxHTmVLNWFJ?= =?utf-8?B?NFQxOWxaMENCa1o2Y21GVk95UWpJVU9YS2RxQjlVQVMxZUZ3ZXltYkpySGV1?= =?utf-8?B?ZnlLKzgyeks0NllaMmtuZ0Z4a1hnOG1ZSytSQVgrU2swUHl0Y0hEZmJHY29u?= =?utf-8?B?WjJ0TjRqQ05KcUZsUVQyVWpJVnF4MmQ4Y1RYOFkra3d6Qy9KQjlPdnVVSmlV?= =?utf-8?B?SXNpRm44MlM2Zk43aXljc0VYT0pYTkdGaFpHR0R0Q0IxbFc5SVpjaXkwMVN2?= =?utf-8?B?Sm1xVWVwM3F1ZzJoTnRFcjR5Sk1QbGdaNE4vVTFYZ3JIZ3lRQ0lSd0Rnb3px?= =?utf-8?B?Y21KckF3aUpHS09MaUhhWWJFVlE4M1FEK0REbFprRVBDQXJWVWJzTzRyVGJ0?= =?utf-8?B?VmpsVElVc2M2aE5kbW96VlVscHJMTExIaFh2NmR6VUsxMmV6blJpOXNiY0p4?= =?utf-8?B?SDZPRHV3T0hvYmFXUloxQUNvTmJvdDF5RThyNGZwTmRsazh1Wm5vdzRqN1Zt?= =?utf-8?B?STRJV04rVGk1ck5TcHZseTVWc3daZjZnVTBEWFdqS3kzRzBEallyYWpmVjEz?= =?utf-8?B?SDdwVStvd0h2OW1Vd0VObTN6L05DOHd1VU9kSlZwMTdLVWY5dWcza1RYckIx?= =?utf-8?B?cWoxQ1ZYVzRDUWhxN2ZnTi9oT0N1ODlramh6Q25NQVlQQ0dPdUozZ0tjNFkr?= =?utf-8?B?clAyOVlQVkVuTEFwTmhvNzg4RUlnMjBrcDdvZDN0cWVOMVBvSzlISVpaZitR?= =?utf-8?B?NVRnRk8vQUhSTFRXOWhzZlhwSVRRWEVvRE1GSjVLNVA0a3ArRnlXdm95MDM0?= =?utf-8?B?WExqbE5lSVMzOGg1a3JtREtSaTFKalAzejFFYW4rZGg4VEc5Z3BIQTZXaWZl?= =?utf-8?B?MGdzOTRIaE1wdWw1UDRTZE9yNjRkUGpJa0FPaDdVUURndzNwbkt5YlY2RXJm?= =?utf-8?B?YWVtWTB5ZnpFNEMzYlR3L2hnVVR1dG0wcGluN2w4R0dmMmNNWVc5VVA4UDdh?= =?utf-8?B?a3NkbXFHNHNxYTM2Sk5FZGJQaDU2SUxtOEZsZ0llZkFrUEgrcExQeFNFbTJK?= =?utf-8?B?YmtXaEl1TXNnd1l0MmkyMFIxYXlEZHVqUWRmSHNZRVBOaWJIa1FLNTh4MFQw?= =?utf-8?B?VmR6eVYxYnprazhoUW9qNTE2d1dFaWxKYThPQXZIYjEvVEczaDJyb28xcDhU?= =?utf-8?B?UWVJWjlXUzArVElOWk5NMVhubjlIT3BWMnlzQjRMSHUydHl3OVhXN0x0WjRy?= =?utf-8?B?S0d5a04xRGZPdlBpRVNHRnVIZjRPVDJZR2xSMnFXNjVFYTJOQUFSS2FtQVhS?= =?utf-8?B?bUg5MmRtWXNZMmYrck5naWZUaUc0bDlRYjg1bTdmWGMzT3pUbnp5T2JBT0Zk?= =?utf-8?B?OTlLSHI5ZkpvUDZ4SzUvaXV2dGtndTlxbjVFTklMQmJaalpab0xmNjlLbkxn?= =?utf-8?B?N0IvYVVmdUFDTUswMTQ3OFUwb1kvaVVUdWt1N0dBLzBYQlFhanl4dXFoMElp?= =?utf-8?Q?+Ev0=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: a315a78a-e561-47a8-c379-08db5c7ec012 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 May 2023 17:46:06.0711 (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: HGl6wFBaKIEJNuLD55NmnBle6kLCtIk+e1OmwMydbUgr36b6Rpm2tVpfxkfCff9oKur0Np+NMCcfZtRAGOQbzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7157 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 SGkgR3JlZ29yeQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEdyZWdv cnkgRXRlbHNvbiA8Z2V0ZWxzb25AbnZpZGlhLmNvbT4NCj4gU2VudDogRnJpZGF5LCBNYXkgMTks IDIwMjMgMzowMCBQTQ0KPiANCj4gSW5kaXJlY3QgQVBJIGNyZWF0ZXMgYSBzaGFyZWQgZmxvdyBh Y3Rpb24gd2l0aCB1bmlxdWUgYWN0aW9uIGhhbmRsZS4NCj4gRmxvdyBydWxlcyBjYW4gYWNjZXNz IHRoZSBzaGFyZWQgZmxvdyBhY3Rpb24gYW5kIHJlc291cmNlcyByZWxhdGVkIHRvDQo+IHRoYXQg YWN0aW9uIHRocm91Z2ggdGhlIGluZGlyZWN0IGFjdGlvbiBoYW5kbGUuDQo+IEluIGFkZGl0aW9u LCB0aGUgQVBJIGFsbG93cyB0byB1cGRhdGUgZXhpc3Rpbmcgc2hhcmVkIGZsb3cgYWN0aW9uDQo+ IGNvbmZpZ3VyYXRpb24uICBBZnRlciB0aGUgdXBkYXRlIGNvbXBsZXRlcywgbmV3IGFjdGlvbiBj b25maWd1cmF0aW9uDQo+IGlzIGF2YWlsYWJsZSB0byBhbGwgZmxvd3MgdGhhdCByZWZlcmVuY2Ug dGhhdCBzaGFyZWQgYWN0aW9uLg0KPiANCj4gSW5kaXJlY3QgYWN0aW9ucyBsaXN0IGV4cGFuZHMg dGhlIGluZGlyZWN0IGFjdGlvbiBBUEk6DQo+IOKAoiBJbmRpcmVjdCBhY3Rpb24gbGlzdCBjcmVh dGVzIGEgaGFuZGxlIGZvciBvbmUgb3Igc2V2ZXJhbA0KPiAgIGZsb3cgYWN0aW9ucywgd2hpbGUg bGVnYWN5IGluZGlyZWN0IGFjdGlvbiBoYW5kbGUgcmVmZXJlbmNlcw0KPiAgIHNpbmdsZSBhY3Rp b24gb25seS4NCj4gICBJbnB1dCBmbG93IGFjdGlvbnMgYXJyYW5nZWQgaW4gRU5EIHRlcm1pbmF0 ZWQgbGlzdC4NCj4g4oCiIEZsb3cgcnVsZSBjYW4gcHJvdmlkZSBydWxlIHNwZWNpZmljIGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVycyB0bw0KPiAgIGV4aXN0aW5nIHNoYXJlZCBoYW5kbGUuDQo+ICAg VXBkYXRlcyBvZiBmbG93IHJ1bGUgc3BlY2lmaWMgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBjaGFu Z2UgdGhlIGJhc2UNCj4gICBhY3Rpb24gY29uZmlndXJhdGlvbi4NCj4gICBCYXNlIGFjdGlvbiBj b25maWd1cmF0aW9uIHdhcyBzZXQgZHVyaW5nIHRoZSBhY3Rpb24gY3JlYXRpb24uDQo+IA0KPiBJ bmRpcmVjdCBhY3Rpb24gbGlzdCBoYW5kbGUgZGVmaW5lcyAyIHR5cGVzIG9mIHJlc291cmNlczoN Cj4g4oCiIE11dGFibGUgaGFuZGxlIHJlc291cmNlIGNhbiBiZSBjaGFuZ2VkIGR1cmluZyBoYW5k bGUgbGlmZXNwYW4uDQo+IOKAoiBJbW11dGFibGUgaGFuZGxlIHJlc291cmNlIHZhbHVlIGlzIHNl dCBkdXJpbmcgaGFuZGxlIGNyZWF0aW9uDQo+ICAgYW5kIGNhbm5vdCBiZSBjaGFuZ2VkLg0KPiAN Cj4gVGhlcmUgYXJlIDIgdHlwZXMgb2YgbXV0YWJsZSBpbmRpcmVjdCBoYW5kbGUgY29udGV4dHM6 DQo+IOKAoiBBY3Rpb24gbXV0YWJsZSBjb250ZXh0IGlzIGFsd2F5cyBzaGFyZWQgYmV0d2VlbiBh bGwgZmxvd3MNCj4gICB0aGF0IHJlZmVyZW5jZWQgaW5kaXJlY3QgYWN0aW9ucyBsaXN0IGhhbmRs ZS4NCj4gICBBY3Rpb24gbXV0YWJsZSBjb250ZXh0IGNhbiBiZSBjaGFuZ2VkIGJ5IGV4cGxpY2l0 IGludm9jYXRpb24NCj4gICBvZiBpbmRpcmVjdCBoYW5kbGUgdXBkYXRlIGZ1bmN0aW9uLg0KPiDi gKIgRmxvdyBtdXRhYmxlIGNvbnRleHQgaXMgcHJpdmF0ZSB0byBhIGZsb3cuDQo+ICAgRmxvdyBt dXRhYmxlIGNvbnRleHQgY2FuIGJlIHVwZGF0ZWQgYnkgaW5kaXJlY3QgbGlzdCBoYW5kbGUNCj4g ICBmbG93IHJ1bGUgY29uZmlndXJhdGlvbi4NCj4gDQo+IGZsb3cgMToNCj4gIC8gaW5kaXJlY3Qg aGFuZGxlIEggY29uZiBDMSAvDQo+ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwNCj4gICAg ICAgICAgICAgICAgICAgIHwgICAgICAgfA0KPiAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8 ICAgICAgICAgZmxvdyAyOg0KPiAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAg LyBpbmRpcmVjdCBoYW5kbGUgSCBjb25mIEMyIC8NCj4gICAgICAgICAgICAgICAgICAgIHwgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICB8DQo+ICAgICAgICAgICAgICAg ICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfA0KPiAgICAg ICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg IHwNCj4gICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQo+ICAgICAgICAgICAgIF4gICAgICB8ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgfA0KPiAgICAgICAgICAgICB8ICAgICAgfCAgICAg ICBWICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgIFYNCj4gICAgICAgICAgICAgfCAg ICB+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn4NCj4g ICAgICAgICAgICAgfCAgICAgZmxvdyBtdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgZmxv dyBtdXRhYmxlDQo+ICAgICAgICAgICAgIHwgICAgIGNvbnRleHQgMSAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRleHQgMg0KPiAgICAgICAgICAgICB8ICAgIH5+fn5+fn5+fn5+fn5+ICAg ICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fg0KPiAgIGluZGlyZWN0ICB8ICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiAgIGFjdGlvbiAgICB8ICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiAgIGNvbnRleHQgICB8 ICAgICAgViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVg0KPiAgICAgICAgICAg ICB8ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgYWN0aW9uIG11dGFibGUgY29udGV4 dA0KPiAgICAgICAgICAgICB8ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4gICAgICAgICAgICAgdiAgICAgICAgICAgICAgICBhY3Rpb24g aW1tdXRhYmxlIGNvbnRleHQNCj4gICAgICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiBJbmRpcmVjdCBhY3Rpb24g dHlwZXMgLSBpbW11dGFibGUsIGFjdGlvbiAvIGZsb3cgbXV0YWJsZSwgYXJlIG11dHVhbGx5DQo+ IGV4Y2x1c2l2ZSBhbmQgZGVwZW5kIG9uIHRoZSBhY3Rpb24gZGVmaW5pdGlvbi4NCj4gRm9yIGV4 YW1wbGU6DQo+IOKAoiBJbmRpcmVjdCBNRVRFUl9NQVJLIHBvbGljeSBpcyBpbW11dGFibGUgYWN0 aW9uIG1lbWJlciBhbmQgcHJvZmlsZSBpcw0KPiAgIGFjdGlvbiBtdXRhYmxlIGFjdGlvbiBtZW1i ZXIuDQo+IOKAoiBJbmRpcmVjdCBNRVRFUl9NQVJLIGZsb3cgYWN0aW9uIGRlZmluZXMgaW5pdF9j b2xvciBhcyBmbG93IG11dGFibGUNCj4gICBtZW1iZXIuDQo+IOKAoiBJbmRpcmVjdCBRVU9UQSBm bG93IGFjdGlvbiBkb2VzIG5vdCBkZWZpbmUgZmxvdyBtdXRhYmxlIG1lbWJlcnMuDQo+IA0KPiBJ ZiBpbmRpcmVjdCBsaXN0IGhhbmRsZSB3YXMgY3JlYXRlZCBmcm9tIGEgbGlzdCBvZiBhY3Rpb25z DQo+IEExIC8gQTIgLi4uIEFuIC8gRU5EDQo+IGluZGlyZWN0IGxpc3QgZmxvdyBhY3Rpb24gY2Fu IHVwZGF0ZSBBaSBmbG93IG11dGFibGUgY29udGV4dCBpbiB0aGUNCj4gYWN0aW9uIGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyLg0KPiBJbmRpcmVjdCBsaXN0IGFjdGlvbiBjb25maWd1cmF0aW9uIGlz IGFuZCBhcnJheSBbQzEsIEMyLCAgLi4sIENuXQ0KPiB3aGVyZSBDaSBjb3JyZXNwb25kcyB0byBB aSBpbiB0aGUgYWN0aW9uIGhhbmRsZSBzb3VyY2UuDQo+IENpIGNvbmZpZ3VyYXRpb24gZWxlbWVu dCBwb2ludHMgQWkgZmxvdyBtdXRhYmxlIHVwZGF0ZSwgb3IgaXQncyBOVUxMDQo+IGlmIEFpIGhh cyBubyBmbG93IG11dGFibGUgdXBkYXRlLg0KPiBJbmRpcmVjdCBsaXN0IGFjdGlvbiBjb25maWd1 cmF0aW9uIGNhbiBiZSBOVUxMIGlmIHRoZSBhY3Rpb24NCj4gaGFzIG5vIGZsb3cgbXV0YWJsZSB1 cGRhdGVzLg0KPiANCj4gVGVtcGxhdGUgQVBJOg0KPiANCj4gQWN0aW9uIHRlbXBsYXRlIGZvcm1h dDoNCj4gDQo+IAl0ZW1wbGF0ZSAuLiBpbmRpcmVjdF9saXN0IGhhbmRsZSBIdG1wbCBjb25mIEN0 bXBsIC4uDQo+IAltYXNrICAgICAuLiBpbmRpcmVjdF9saXN0IGhhbmRsZSBIbWFzayBjb25mIENt YXNrIC4uDQo+IA0KPiAxIElmIEh0bXBsIHdhcyBtYXNrZWQgKEhtYXNrICE9IDApLCBpdCB3aWxs IGJlIGZpeGVkIGluIHRoYXQgdGVtcGxhdGUuDQo+ICAgT3RoZXJ3aXNlLCBpbmRpcmVjdCBhY3Rp b24gdmFsdWUgaXMgc2V0IGluIGEgZmxvdyBydWxlLg0KPiANCj4gMiBJZiBIdG1wbCBhbmQgQ3Rt cGxbaV0gd2VyZSBtYXNrZWQgKEhtYXNrICE9MCBhbmQgQ21hc2tbaV0gIT0gMCksDQo+ICAgSHRt cGwncyBBaSBhY3Rpb24gZmxvdyBtdXRhYmxlIGNvbnRleHQgZmlsbCBiZSB1cGRhdGVkIHRvDQo+ ICAgQ3RtcGxbaV0gdmFsdWVzIGFuZCB3aWxsIGJlIGZpeGVkIGluIHRoYXQgdGVtcGxhdGUuDQo+ IA0KPiBGbG93IHJ1bGUgZm9ybWF0Og0KPiANCj4gCWFjdGlvbnMgLi4gaW5kaXJlY3RfbGlzdCBo YW5kbGUgSGZsb3cgY29uZiBDZmxvdyAuLg0KPiANCj4gMyBJZiBIdG1wbCB3YXMgbm90IG1hc2tl ZCBpbiBhY3Rpb25zIHRlbXBsYXRlLCBIZmxvdyByZWZlcmVuY2VzIGFuDQo+ICAgYWN0aW9uIG9m IHRoZSBzYW1lIHR5cGUgYXMgSHRtcGwuDQo+IA0KPiA0IENmbG93W2ldIHVwZGF0ZXMgaGFuZGxl J3MgQWkgZmxvdyBtdXRhYmxlIGNvbmZpZ3VyYXRpb24gaWYNCj4gICB0aGUgQ2kgd2FzIG5vdCBt YXNrZWQgaW4gYWN0aW9uIHRlbXBsYXRlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogR3JlZ29yeSBF dGVsc29uIDxnZXRlbHNvbkBudmlkaWEuY29tPg0KPiAtLS0NCg0KW1NuaXBdDQoNCj4gZGlmZiAt LWdpdCBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaCBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiBp bmRleCA3MTNiYThiNjVjLi5iNjUwOTZiM2I3IDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L3J0 ZV9mbG93LmgNCj4gKysrIGIvbGliL2V0aGRldi9ydGVfZmxvdy5oDQo+IEBAIC0yOTEyLDYgKzI5 MTIsMTMgQEAgZW51bSBydGVfZmxvd19hY3Rpb25fdHlwZSB7DQo+ICAJICogYXBwbGllZCB0byB0 aGUgZ2l2ZW4gZXRoZGV2IFJ4IHF1ZXVlLg0KPiAgCSAqLw0KPiAgCVJURV9GTE9XX0FDVElPTl9U WVBFX1NLSVBfQ01BTiwNCj4gKw0KPiArCS8qKg0KPiArCSAqIEFjdGlvbiBoYW5kbGUgdG8gcmVm ZXJlbmNlIGZsb3cgYWN0aW9ucyBsaXN0Lg0KPiArCSAqDQo+ICsJICogQHNlZSBzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX2luZGlyZWN0X2xpc3QNCj4gKwkgKi8NCj4gKwlSVEVfRkxPV19BQ1RJT05f VFlQRV9JTkRJUkVDVF9MSVNULA0KPiAgfTsNCj4gDQo+ICAvKioNCj4gQEAgLTYxMTgsNiArNjEy NSwyNjggQEANCj4gcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGUodWlu dDE2X3QgcG9ydF9pZCwgdWludDMyX3QNCj4gcXVldWVfaWQsDQo+ICAJCQkJCSAgdm9pZCAqdXNl cl9kYXRhLA0KPiAgCQkJCQkgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiANCj4g K3N0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGU7DQo+ICsNCj4gKy8qKg0KPiArICog QHdhcm5pbmcNCj4gKyAqIEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRo b3V0IHByaW9yIG5vdGljZS4NCj4gKyAqDQo+ICsgKiBDb25maWd1cmUgSU5ESVJFQ1RfTElTVCBm bG93IGFjdGlvbi4NCj4gKyAqDQo+ICsgKiBAc2VlIFJURV9GTE9XX0FDVElPTl9UWVBFX0lORElS RUNUX0xJU1QNCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9pbmRpcmVjdF9saXN0 IHsNCj4gKwkvKiogSW5kaXJlY3QgYWN0aW9uIGxpc3QgaGFuZGxlICovDQo+ICsJc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqaGFuZGxlOw0KPiArCS8qKg0KPiArCSAqIEZsb3cg bXV0YWJsZSBjb25maWd1cmF0aW9uIGFycmF5Lg0KPiArCSAqIE5VTEwgaWYgdGhlIGhhbmRsZSBo YXMgbm8gZmxvdyBtdXRhYmxlIGNvbmZpZ3VyYXRpb24gdXBkYXRlLg0KPiArCSAqIE90aGVyd2lz ZSwgaWYgdGhlIGhhbmRsZSB3YXMgY3JlYXRlZCB3aXRoIGxpc3QgQTEgLyBBMiAuLiBBbiAvIEVO RA0KPiArCSAqIHNpemUgb2YgY29uZiBpcyBuLg0KPiArCSAqIGNvbmZbaV0gcG9pbnRzIHRvIGZs b3cgbXV0YWJsZSB1cGRhdGUgb2YgQWkgaW4gdGhlIGhhbmRsZQ0KPiArCSAqIGFjdGlvbnMgbGlz dCBvciBOVUxMIGlmIEFpIGhhcyBubyB1cGRhdGUuDQo+ICsJICovDQo+ICsJY29uc3Qgdm9pZCAq KmNvbmY7DQo+ICt9Ow0KPiArDQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAqIEBi IEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4N Cj4gKyAqDQo+ICsgKiBDcmVhdGUgYW4gaW5kaXJlY3QgZmxvdyBhY3Rpb24gb2JqZWN0IGZyb20g ZmxvdyBhY3Rpb25zIGxpc3QuDQo+ICsgKiBUaGUgb2JqZWN0IGlzIGlkZW50aWZpZWQgYnkgYSB1 bmlxdWUgaGFuZGxlLg0KPiArICogVGhlIGhhbmRsZSBoYXMgc2luZ2xlIHN0YXRlIGFuZCBjb25m aWd1cmF0aW9uDQo+ICsgKiBhY3Jvc3MgYWxsIHRoZSBmbG93IHJ1bGVzIHVzaW5nIGl0Lg0KPiAr ICoNCj4gKyAqIEBwYXJhbVtpbl0gcG9ydF9pZA0KPiArICogICAgVGhlIHBvcnQgaWRlbnRpZmll ciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiArICogQHBhcmFtW2luXSBjb25mDQo+ICsgKiAg IEFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5kaXJlY3QgYWN0aW9uIGxpc3QgY3JlYXRp b24uDQo+ICsgKiBAcGFyYW1baW5dIGFjdGlvbnMNCj4gKyAqICAgU3BlY2lmaWMgY29uZmlndXJh dGlvbiBvZiB0aGUgaW5kaXJlY3QgYWN0aW9uIGxpc3RzLg0KPiArICogQHBhcmFtW291dF0gZXJy b3INCj4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJlcG9ydGluZyBpZiBub3QgTlVMTC4g UE1EcyBpbml0aWFsaXplIHRoaXMNCj4gKyAqICAgc3RydWN0dXJlIGluIGNhc2Ugb2YgZXJyb3Ig b25seS4NCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgQSB2YWxpZCBoYW5kbGUgaW4gY2FzZSBvZiBz dWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldA0KPiArICogICB0byBv bmUgb2YgdGhlIGVycm9yIGNvZGVzIGRlZmluZWQ6DQo+ICsgKiAgIC0gKC1FTk9ERVYpIGlmICpw b3J0X2lkKiBpbnZhbGlkLg0KPiArICogICAtICgtRU5PU1lTKSBpZiB1bmRlcmx5aW5nIGRldmlj ZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgZnVuY3Rpb25hbGl0eS4NCj4gKyAqICAgLSAoLUVJTykg aWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVtb3ZlZC4NCj4gKyAqICAgLSAoLUVJTlZBTCkgaWYg KmFjdGlvbnMqIGxpc3QgaW52YWxpZC4NCj4gKyAqICAgLSAoLUVOT1RTVVApIGlmICphY3Rpb24q IGxpc3QgZWxlbWVudCB2YWxpZCBidXQgdW5zdXBwb3J0ZWQuDQo+ICsgKi8NCj4gK19fcnRlX2V4 cGVyaW1lbnRhbA0KPiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqDQo+ICty dGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVfY3JlYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJ CQkJICAgY29uc3QNCj4gKwkJCQkgICBzdHJ1Y3QgcnRlX2Zsb3dfaW5kaXJfYWN0aW9uX2NvbmYg KmNvbmYsDQo+ICsJCQkJICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9ucywN Cj4gKwkJCQkgICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKw0KPiArLyoqDQo+ ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdl IHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAqIEFzeW5jIGZ1bmN0aW9uIGNhbGwg dG8gY3JlYXRlIGFuIGluZGlyZWN0IGZsb3cgYWN0aW9uIG9iamVjdA0KPiArICogZnJvbSBmbG93 IGFjdGlvbnMgbGlzdC4NCj4gKyAqIFRoZSBvYmplY3QgaXMgaWRlbnRpZmllZCBieSBhIHVuaXF1 ZSBoYW5kbGUuDQo+ICsgKiBUaGUgaGFuZGxlIGhhcyBzaW5nbGUgc3RhdGUgYW5kIGNvbmZpZ3Vy YXRpb24NCj4gKyAqIGFjcm9zcyBhbGwgdGhlIGZsb3cgcnVsZXMgdXNpbmcgaXQuDQo+ICsgKg0K PiArICogQHBhcmFtW2luXSBwb3J0X2lkDQo+ICsgKiAgICBUaGUgcG9ydCBpZGVudGlmaWVyIG9m IHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+ICsgKiBAcGFyYW1baW5dIHF1ZXVlX2lkDQo+ICsgKiAg IEZsb3cgcXVldWUgd2hpY2ggaXMgdXNlZCB0byB1cGRhdGUgdGhlIHJ1bGUuDQo+ICsgKiBAcGFy YW1baW5dIGF0dHINCj4gKyAqICAgSW5kaXJlY3QgYWN0aW9uIHVwZGF0ZSBvcGVyYXRpb24gYXR0 cmlidXRlcy4NCj4gKyAqIEBwYXJhbVtpbl0gY29uZg0KPiArICogICBBY3Rpb24gY29uZmlndXJh dGlvbiBmb3IgdGhlIGluZGlyZWN0IGFjdGlvbiBsaXN0IGNyZWF0aW9uLg0KPiArICogQHBhcmFt W2luXSBhY3Rpb25zDQo+ICsgKiAgIFNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGluZGly ZWN0IGFjdGlvbiBsaXN0Lg0KPiArICogQHBhcmFtW2luXSB1c2VyX2RhdGENCj4gKyAqICAgVGhl IHVzZXIgZGF0YSB0aGF0IHdpbGwgYmUgcmV0dXJuZWQgb24gYXN5bmMgY29tcGxldGlvbiBldmVu dC4NCj4gKyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJv ciByZXBvcnRpbmcgaWYgbm90IE5VTEwuIFBNRHMgaW5pdGlhbGl6ZSB0aGlzDQo+ICsgKiAgIHN0 cnVjdHVyZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIEEg dmFsaWQgaGFuZGxlIGluIGNhc2Ugb2Ygc3VjY2VzcywgTlVMTCBvdGhlcndpc2UgYW5kIHJ0ZV9l cnJubyBpcyBzZXQNCj4gKyAqICAgdG8gb25lIG9mIHRoZSBlcnJvciBjb2RlcyBkZWZpbmVkOg0K PiArICogICAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxpZC4NCj4gKyAqICAgLSAoLUVO T1NZUykgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9u YWxpdHkuDQo+ICsgKiAgIC0gKC1FSU8pIGlmIHVuZGVybHlpbmcgZGV2aWNlIGlzIHJlbW92ZWQu DQo+ICsgKiAgIC0gKC1FSU5WQUwpIGlmICphY3Rpb25zKiBsaXN0IGludmFsaWQuDQo+ICsgKiAg IC0gKC1FTk9UU1VQKSBpZiAqYWN0aW9uKiBsaXN0IGVsZW1lbnQgdmFsaWQgYnV0IHVuc3VwcG9y dGVkLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK3N0cnVjdCBydGVfZmxvd19h Y3Rpb25fbGlzdF9oYW5kbGUgKg0KPiArcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxl X2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdA0KPiBxdWV1ZV9pZCwNCj4gKwkJCQkJ IGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICphdHRyLA0KPiArCQkJCQkgY29uc3Qgc3Ry dWN0DQo+ICsJCQkJCSBydGVfZmxvd19pbmRpcl9hY3Rpb25fY29uZiAqY29uZiwNCj4gKwkJCQkJ IGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24NCj4gKmFjdGlvbnMsDQo+ICsJCQkJCSB2b2lk ICp1c2VyX2RhdGEsDQo+ICsJCQkJCSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4g Kw0KPiArLyoqDQo+ICsgKiBAd2FybmluZw0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQ SSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiArICoNCj4gKyAqIERlc3Ryb3kg aW5kaXJlY3QgYWN0aW9ucyBsaXN0IGJ5IGhhbmRsZS4NCj4gKyAqDQo+ICsgKiBAcGFyYW1baW5d IHBvcnRfaWQNCj4gKyAqICAgIFRoZSBwb3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRl dmljZS4NCj4gKyAqIEBwYXJhbVtpbl0gaGFuZGxlDQo+ICsgKiAgIEhhbmRsZSBmb3IgdGhlIGlu ZGlyZWN0IGFjdGlvbnMgbGlzdCB0byBiZSBkZXN0cm95ZWQuDQo+ICsgKiBAcGFyYW1bb3V0XSBl cnJvcg0KPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxM LiBQTURzIGluaXRpYWxpemUgdGhpcw0KPiArICogICBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJv ciBvbmx5Lg0KPiArICogQHJldHVybg0KPiArICogICAtICgwKSBpZiBzdWNjZXNzLg0KPiArICog ICAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxpZC4NCj4gKyAqICAgLSAoLUVOT1NZUykg aWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGZ1bmN0aW9uYWxpdHku DQo+ICsgKiAgIC0gKC1FSU8pIGlmIHVuZGVybHlpbmcgZGV2aWNlIGlzIHJlbW92ZWQuDQo+ICsg KiAgIC0gKC1FTk9FTlQpIGlmIGFjdGlvbnMgbGlzdCBwb2ludGVkIGJ5ICphY3Rpb24qIGhhbmRs ZSB3YXMgbm90IGZvdW5kLg0KPiArICogICAtICgtRUJVU1kpIGlmIGFjdGlvbnMgbGlzdCBwb2lu dGVkIGJ5ICphY3Rpb24qIGhhbmRsZSBzdGlsbCB1c2VkDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVy aW1lbnRhbA0KPiAraW50DQo+ICtydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVfZGVzdHJveSh1 aW50MTZfdCBwb3J0X2lkLA0KPiArCQkJCSAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3Rf aGFuZGxlDQo+ICpoYW5kbGUsDQo+ICsJCQkJICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJy b3IpOw0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklNRU5UQUw6 IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ICsgKg0KPiArICog RW5xdWV1ZSBpbmRpcmVjdCBhY3Rpb24gbGlzdCBkZXN0cnVjdGlvbiBvcGVyYXRpb24uDQo+ICsg KiBUaGUgZGVzdHJveSBxdWV1ZSBtdXN0IGJlIHRoZSBzYW1lDQo+ICsgKiBhcyB0aGUgcXVldWUg b24gd2hpY2ggdGhlIGFjdGlvbiB3YXMgY3JlYXRlZC4NCj4gKyAqDQo+ICsgKiBAcGFyYW1baW5d IHBvcnRfaWQNCj4gKyAqICAgUG9ydCBpZGVudGlmaWVyIG9mIEV0aGVybmV0IGRldmljZS4NCj4g KyAqIEBwYXJhbVtpbl0gcXVldWVfaWQNCj4gKyAqICAgRmxvdyBxdWV1ZSB3aGljaCBpcyB1c2Vk IHRvIGRlc3Ryb3kgdGhlIHJ1bGUuDQo+ICsgKiBAcGFyYW1baW5dIG9wX2F0dHINCj4gKyAqICAg SW5kaXJlY3QgYWN0aW9uIGRlc3RydWN0aW9uIG9wZXJhdGlvbiBhdHRyaWJ1dGVzLg0KPiArICog QHBhcmFtW2luXSBoYW5kbGUNCj4gKyAqICAgSGFuZGxlIGZvciB0aGUgaW5kaXJlY3QgYWN0aW9u IG9iamVjdCB0byBiZSBkZXN0cm95ZWQuDQo+ICsgKiBAcGFyYW1baW5dIHVzZXJfZGF0YQ0KPiAr ICogICBUaGUgdXNlciBkYXRhIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBvbiB0aGUgY29tcGxldGlv biBldmVudHMuDQo+ICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiArICogICBQZXJmb3JtIHZlcmJv c2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLg0KPiArICogICBQTURzIGluaXRpYWxpemUg dGhpcyBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiArICoNCj4gKyAqIEByZXR1 cm4NCj4gKyAqICAgLSAoMCkgaWYgc3VjY2Vzcy4NCj4gKyAqICAgLSAoLUVOT0RFVikgaWYgKnBv cnRfaWQqIGludmFsaWQuDQo+ICsgKiAgIC0gKC1FTk9TWVMpIGlmIHVuZGVybHlpbmcgZGV2aWNl IGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFsaXR5Lg0KPiArICogICAtICgtRUlPKSBp ZiB1bmRlcmx5aW5nIGRldmljZSBpcyByZW1vdmVkLg0KPiArICogICAtICgtRU5PRU5UKSBpZiBh Y3Rpb25zIGxpc3QgcG9pbnRlZCBieSAqYWN0aW9uKiBoYW5kbGUgd2FzIG5vdCBmb3VuZC4NCj4g KyAqICAgLSAoLUVCVVNZKSBpZiBhY3Rpb25zIGxpc3QgcG9pbnRlZCBieSAqYWN0aW9uKiBoYW5k bGUgc3RpbGwgdXNlZA0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2ludA0KPiAr cnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3kNCj4gKwkJKHVpbnQxNl90 IHBvcnRfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLA0KPiArCQkgY29uc3Qgc3RydWN0IHJ0ZV9mbG93 X29wX2F0dHIgKm9wX2F0dHIsDQo+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFu ZGxlICpoYW5kbGUsDQo+ICsJCSB2b2lkICp1c2VyX2RhdGEsIHN0cnVjdCBydGVfZmxvd19lcnJv ciAqZXJyb3IpOw0KPiArDQo+ICsvKioNCj4gKyAqIEB3YXJuaW5nDQo+ICsgKiBAYiBFWFBFUklN RU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ICsgKg0K PiArICogUXVlcnkgYW5kL29yIHVwZGF0ZSBpbmRpcmVjdCBmbG93IGFjdGlvbnMgbGlzdC4NCj4g KyAqIElmIGJvdGggcXVlcnkgYW5kIHVwZGF0ZSBub3QgTlVMTCwgdGhlIGZ1bmN0aW9uIGF0b21p Y2FsbHkNCj4gKyAqIHF1ZXJpZXMgYW5kIHVwZGF0ZXMgaW5kaXJlY3QgYWN0aW9uLiBRdWVyeSBh bmQgdXBkYXRlIGFyZSBjYXJyaWVkIGluDQo+IG9yZGVyDQo+ICsgKiBzcGVjaWZpZWQgaW4gdGhl IG1vZGUgcGFyYW1ldGVyLg0KPiArICogSWYgZXRoZXIgcXVlcnkgb3IgdXBkYXRlIGlzIE5VTEws IHRoZSBmdW5jdGlvbiBleGVjdXRlcw0KPiArICogY29tcGxlbWVudGluZyBvcGVyYXRpb24uDQo+ ICsgKg0KPiArICogQHBhcmFtIHBvcnRfaWQNCj4gKyAqICAgUG9ydCBpZGVudGlmaWVyIG9mIEV0 aGVybmV0IGRldmljZS4NCj4gKyAqIEBwYXJhbSBoYW5kbGUNCj4gKyAqICAgSGFuZGxlIGZvciB0 aGUgaW5kaXJlY3QgYWN0aW9ucyBsaXN0IG9iamVjdCB0byBiZSB1cGRhdGVkLg0KPiArICogQHBh cmFtIHVwZGF0ZQ0KPiArICogICBJZiBub3QgTlVMTCwgdXBkYXRlIHByb2ZpbGUgc3BlY2lmaWNh dGlvbiB1c2VkIHRvIG1vZGlmeSB0aGUgYWN0aW9uDQoNCkl0IHNob3VsZCBiZSBleHBsYWluZWQg dGhhdCB0aGUgdXBhdGUvcXVlcnkgcG9pbnRzIGFsd2F5cyB0byBhcnJheSB3aXRoIHRoZSBzaXpl DQpvZiBudW1iZXIgb2YgYWN0aW9ucywgdGhlIHRoZSBxdWVyeS91cGRhdGUgcXVlcnkvdXBhdGUg YWxsIHRoZSBhY3Rpb25zIGF0IHRoZSBzYW1lIHRpbWUNCg0KVGhpcyBjb21tZW50IGlzIGZvciBh bGwgc3VjaCBwYXJhbWV0ZXJzIGluIGFzeW5jIGFuZCBzeW5jZWQgZnVuY3Rpb25zLg0KDQo+ICsg KiAgIHBvaW50ZWQgYnkgaGFuZGxlLg0KPiArICogICBAc2VlIHN0cnVjdCBydGVfZmxvd19hY3Rp b25faW5kaXJlY3RfbGlzdA0KPiArICogQHBhcmFtIHF1ZXJ5DQo+ICsgKiAgIElmIG5vdCBOVUxM IHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIGFzc29jaWF0ZWQgcXVlcnkgZGF0YSB0eXBlLg0K PiArICogICBAc2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25faW5kaXJlY3RfbGlzdA0KPiArICog QHBhcmFtIG1vZGUNCj4gKyAqICAgT3BlcmF0aW9uYWwgbW9kZS4NCj4gKyAqIEBwYXJhbSBlcnJv cg0KPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLg0K PiArICogICBQTURzIGluaXRpYWxpemUgdGhpcyBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBv bmx5Lg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgLSAoMCkgaWYgc3VjY2Vzcy4NCj4g KyAqIC0gKC1FTk9ERVYpIGlmICpwb3J0X2lkKiBpbnZhbGlkLg0KPiArICogLSAoLUVOT1RTVVAp IGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFsaXR5 Lg0KPiArICogLSAoLUVJTlZBTCkgaWYgKmhhbmRsZSogb3IgKm1vZGUqIGludmFsaWQgb3INCj4g KyAqICAgICAgICAgICAgIGJvdGggKnF1ZXJ5KiBhbmQgKnVwZGF0ZSogYXJlIE5VTEwuDQo+ICsg Ki8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAraW50DQo+ICtydGVfZmxvd19hY3Rpb25fbGlz dF9oYW5kbGVfcXVlcnlfdXBkYXRlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCQkJCSBjb25zdCBz dHJ1Y3QNCj4gKwkJCQkJIHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZQ0KPiAqaGFuZGxlLA0K PiArCQkJCQkgY29uc3Qgdm9pZCAqKnVwZGF0ZSwgdm9pZCAqKnF1ZXJ5LA0KPiArCQkJCQkgZW51 bQ0KPiBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiArCQkJCQkgc3RydWN0IHJ0 ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ICsNCj4gKy8qKg0KPiArICogQHdhcm5pbmcNCj4gKyAq IEBiIEVYUEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGlj ZS4NCj4gKyAqDQo+ICsgKiBFbnF1ZXVlIGFzeW5jIGluZGlyZWN0IGZsb3cgYWN0aW9ucyBsaXN0 IHF1ZXJ5IGFuZC9vciB1cGRhdGUNCj4gKyAqDQo+ICsgKiBAcGFyYW0gcG9ydF9pZA0KPiArICog ICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2aWNlLg0KPiArICogQHBhcmFtIHF1ZXVl X2lkDQo+ICsgKiAgIEZsb3cgcXVldWUgd2hpY2ggaXMgdXNlZCB0byB1cGRhdGUgdGhlIHJ1bGUu DQo+ICsgKiBAcGFyYW0gYXR0cg0KPiArICogICBJbmRpcmVjdCBhY3Rpb24gdXBkYXRlIG9wZXJh dGlvbiBhdHRyaWJ1dGVzLg0KPiArICogQHBhcmFtIGhhbmRsZQ0KPiArICogICBIYW5kbGUgZm9y IHRoZSBpbmRpcmVjdCBhY3Rpb25zIGxpc3Qgb2JqZWN0IHRvIGJlIHVwZGF0ZWQuDQo+ICsgKiBA cGFyYW0gdXBkYXRlDQo+ICsgKiAgIElmIG5vdCBOVUxMLCB1cGRhdGUgcHJvZmlsZSBzcGVjaWZp Y2F0aW9uIHVzZWQgdG8gbW9kaWZ5IHRoZSBhY3Rpb24NCj4gKyAqICAgcG9pbnRlZCBieSBoYW5k bGUuDQo+ICsgKiAgIEBzZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9pbmRpcmVjdF9saXN0DQo+ ICsgKiBAcGFyYW0gcXVlcnkNCj4gKyAqICAgSWYgbm90IE5VTEwsIHBvaW50ZXIgdG8gc3RvcmFn ZSBmb3IgdGhlIGFzc29jaWF0ZWQgcXVlcnkgZGF0YSB0eXBlLg0KPiArICogICBRdWVyeSByZXN1 bHQgcmV0dXJuZWQgb24gYXN5bmMgY29tcGxldGlvbiBldmVudC4NCj4gKyAqICAgQHNlZSBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX2luZGlyZWN0X2xpc3QNCj4gKyAqIEBwYXJhbSBtb2RlDQo+ICsg KiAgIE9wZXJhdGlvbmFsIG1vZGUuDQo+ICsgKiBAcGFyYW0gdXNlcl9kYXRhDQo+ICsgKiAgIFRo ZSB1c2VyIGRhdGEgdGhhdCB3aWxsIGJlIHJldHVybmVkIG9uIGFzeW5jIGNvbXBsZXRpb24gZXZl bnQuDQo+ICsgKiBAcGFyYW0gZXJyb3INCj4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJl cG9ydGluZyBpZiBub3QgTlVMTC4NCj4gKyAqICAgUE1EcyBpbml0aWFsaXplIHRoaXMgc3RydWN0 dXJlIGluIGNhc2Ugb2YgZXJyb3Igb25seS4NCj4gKyAqDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAg IC0gKDApIGlmIHN1Y2Nlc3MuDQo+ICsgKiAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxp ZC4NCj4gKyAqIC0gKC1FTk9UU1VQKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBw b3J0IHRoaXMgZnVuY3Rpb25hbGl0eS4NCj4gKyAqIC0gKC1FSU5WQUwpIGlmICpoYW5kbGUqIG9y ICptb2RlKiBpbnZhbGlkIG9yDQo+ICsgKiAgICAgICAgICAgICBib3RoICp1cGRhdGUqIGFuZCAq cXVlcnkqIGFyZSBOVUxMLg0KPiArICovDQo+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gK2ludA0K PiArcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50MTZf dCBwb3J0X2lkLA0KPiB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gKwkJCQkJICBjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfb3BfYXR0ciAqYXR0ciwNCj4gKwkJCQkJICBjb25zdCBzdHJ1Y3QNCj4gKwkJCQkJ ICBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUNCj4gKmhhbmRsZSwNCj4gKwkJCQkJICBjb25z dCB2b2lkICoqdXBkYXRlLCB2b2lkICoqcXVlcnksDQo+ICsJCQkJCSAgZW51bQ0KPiBydGVfZmxv d19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiArCQkJCQkgIHZvaWQgKnVzZXJfZGF0YSwNCj4g KwkJCQkJICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKw0KPiArDQo+ICAjaWZk ZWYgX19jcGx1c3BsdXMNCj4gIH0NCj4gICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRl di9ydGVfZmxvd19kcml2ZXIuaCBiL2xpYi9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gaW5k ZXggYTEyOWE0NjA1ZC4uYWY2M2VmOWI1YyAxMDA2NDQNCj4gLS0tIGEvbGliL2V0aGRldi9ydGVf Zmxvd19kcml2ZXIuaA0KPiArKysgYi9saWIvZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oDQo+IEBA IC0xMjEsNiArMTIxLDE3IEBAIHN0cnVjdCBydGVfZmxvd19vcHMgew0KPiAgCQkgY29uc3Qgdm9p ZCAqdXBkYXRlLCB2b2lkICpxdWVyeSwNCj4gIAkJIGVudW0gcnRlX2Zsb3dfcXVlcnlfdXBkYXRl X21vZGUgcXVfbW9kZSwNCj4gIAkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAr CS8qKiBAc2VlIHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUoKSAqLw0KPiArCXN0 cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUgKigqYWN0aW9uX2xpc3RfaGFuZGxlX2Ny ZWF0ZSkNCj4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiArCQkgY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2luZGlyX2FjdGlvbl9jb25mICpjb25mLA0KPiArCQkgY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbiBhY3Rpb25zW10sDQo+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVy cm9yKTsNCj4gKwkvKiogQHNlZSBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVfZGVzdHJveSgp ICovDQo+ICsJaW50ICgqYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3kpDQo+ICsJCShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwNCj4gKwkJIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5k bGUgKmhhbmRsZSwNCj4gKwkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAgCS8q KiBTZWUgcnRlX2Zsb3dfdHVubmVsX2RlY2FwX3NldCgpICovDQo+ICAJaW50ICgqdHVubmVsX2Rl Y2FwX3NldCkNCj4gIAkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiBAQCAtMzAyLDYgKzMx MywzNiBAQCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzIHsNCj4gIAkJIGNvbnN0IHZvaWQgKnVwZGF0ZSwg dm9pZCAqcXVlcnksDQo+ICAJCSBlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3VwZGF0ZV9tb2RlIHF1X21v ZGUsDQo+ICAJCSB2b2lkICp1c2VyX2RhdGEsIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3Ip Ow0KPiArCS8qKiBAc2VlIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUo KSAqLw0KPiArCXN0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUgKg0KPiArCSgqYXN5 bmNfYWN0aW9uX2xpc3RfaGFuZGxlX2NyZWF0ZSkNCj4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LCB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9h dHRyICphdHRyLA0KPiArCQkgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2luZGlyX2FjdGlvbl9jb25m ICpjb25mLA0KPiArCQkgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9ucywNCj4g KwkJIHZvaWQgKnVzZXJfZGF0YSwgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ICsJ LyoqIEBzZWUgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3koKSAqLw0K PiArCWludCAoKmFzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9kZXN0cm95KQ0KPiArCQkoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQzMl90IHF1ZXVlX2lkLA0KPiArCQkgY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X29wX2F0dHIgKm9wX2F0dHIsDQo+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X2xpc3RfaGFuZGxlICphY3Rpb25faGFuZGxlLA0KPiArCQkgdm9pZCAqdXNlcl9kYXRhLCBzdHJ1 Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gKwkvKiogQHNlZSBydGVfZmxvd19hY3Rpb25f bGlzdF9oYW5kbGVfcXVlcnlfdXBkYXRlKCkgKi8NCj4gKwlpbnQgKCphY3Rpb25fbGlzdF9oYW5k bGVfcXVlcnlfdXBkYXRlKQ0KPiArCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ICsJCSBj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ICsJCSBj b25zdCB2b2lkICoqdXBkYXRlLCB2b2lkICoqcXVlcnksDQo+ICsJCSBlbnVtIHJ0ZV9mbG93X3F1 ZXJ5X3VwZGF0ZV9tb2RlIG1vZGUsDQo+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9y KTsNCj4gKwkvKiogQHNlZSBydGVfZmxvd19hc3luY19hY3Rpb25fbGlzdF9oYW5kbGVfcXVlcnlf dXBkYXRlKCkgKi8NCj4gKwlpbnQgKCphc3luY19hY3Rpb25fbGlzdF9oYW5kbGVfcXVlcnlfdXBk YXRlKQ0KPiArCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHVpbnQzMl90IHF1ZXVlX2lkLA0K PiArCQkgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKmF0dHIsDQo+ICsJCSBjb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ICsJCSBjb25zdCB2 b2lkICoqdXBkYXRlLCB2b2lkICoqcXVlcnksDQo+ICsJCSBlbnVtIHJ0ZV9mbG93X3F1ZXJ5X3Vw ZGF0ZV9tb2RlIG1vZGUsDQo+ICsJCSB2b2lkICp1c2VyX2RhdGEsIHN0cnVjdCBydGVfZmxvd19l cnJvciAqZXJyb3IpOw0KPiArDQo+ICB9Ow0KPiANCj4gIC8qKg0KPiBkaWZmIC0tZ2l0IGEvbGli L2V0aGRldi92ZXJzaW9uLm1hcCBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gaW5kZXggMzU3 ZDFhODhjMC4uMDIzNzJiM2E3ZSAxMDA2NDQNCj4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1h cA0KPiArKysgYi9saWIvZXRoZGV2L3ZlcnNpb24ubWFwDQo+IEBAIC0yOTksNiArMjk5LDE0IEBA IEVYUEVSSU1FTlRBTCB7DQo+ICAJcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGU7 DQo+ICAJcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeV91cGRhdGU7DQo+ICAJcnRl X2Zsb3dfYXN5bmNfY3JlYXRlX2J5X2luZGV4Ow0KPiArDQo+ICsJIyBhZGRlZCBpbiAyMy4wNw0K PiArICAgIHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGU7DQo+ICsgICAgcnRlX2Zs b3dfYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3k7DQo+ICsgICAgcnRlX2Zsb3dfYWN0aW9uX2xp c3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZTsNCj4gKyAgICBydGVfZmxvd19hc3luY19hY3Rpb25fbGlz dF9oYW5kbGVfY3JlYXRlOw0KPiArICAgIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0X2hhbmRs ZV9kZXN0cm95Ow0KPiArICAgIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9xdWVy eV91cGRhdGU7DQo+ICB9Ow0KPiANCj4gIElOVEVSTkFMIHsNCj4gLS0NCj4gMi4zNC4xDQoNCg==