From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EE38C6FA83 for ; Wed, 28 Sep 2022 01:38:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232543AbiI1Bi4 (ORCPT ); Tue, 27 Sep 2022 21:38:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229771AbiI1Biw (ORCPT ); Tue, 27 Sep 2022 21:38:52 -0400 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on20610.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eb2::610]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C2501E769F; Tue, 27 Sep 2022 18:38:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L4tFwkFmaTKsarlkoA40nsbuEWOMMWGgUZkhd6G1kMqrud6j2oepw+kE9CuJZJOSnPvi90UIGb7ztrYGnH2wuL/KRLauN9Y2qnWM3sVMCuqaJc0jgrRCREPyWYBpgV4b6JcbFnCel/p5TFdjca6kyULfwh4o4jc06LjSD5DFS6u7eFkCw/QPjK4Sj2Gkh6BWv/rl6CH5vmAiG0krm5uYRi/UR/z2SEU9lYLHuXcx14I7CejU2n0qOW8T6J7HP71a+EpROWh7vJTINZcwX22oVt+4NUEo3baKf0uURN/20VQ3xLXxKyRLHHyIB66Rmkb+xJ6me4nsEdTL1/kpllC6LQ== 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=WO+kjIallkwmmQuL5NRvNgb+ztma5oLFUc9ReYx/xZ4=; b=dE4r6QgBI0Ym5A0Nqs7CjLmgdbXkHPyeJiYJ2nIkPr/hvAbQP/3hC38vC/bPoqOssW4kTHcg01lv4WnVeT3RlO8xaz+oR6WocSIiAWqKnuljQj52NAMpRHLbcDLK+Z3lCIWJfHEwiC6p412exQgoVim/ZysILQHABwzzlwuNrr40eGQoxRjEXLjNOOTYLFtwVDw1g8aLpXjlEVsgpec/oFNZE8JAek8fNsmIg1qTFIdyPjifzRZBVUf+1UrRS2u+GCt16DrkYH3O2dStpBMH0r3Jhk0KhP2Vk4IXZPz4GE/g2o+tDOy7kxRWuMW/EY4HjxCNFfFytTlFMWvQOuhOew== 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=WO+kjIallkwmmQuL5NRvNgb+ztma5oLFUc9ReYx/xZ4=; b=ZJkl3B6F4SmWwtEpptUFFRJWT4StipXgJOaMzIMS2BIcQ1nHA+s9LEfSVQTgZIuBbiNagzN/nMieeISpFXqvjJ0s0ciSc9m3T8ZDwNZukxU4ppJa503CFAUV+VtFLc2M5TXChHOXa5/x3863d2t650N8XBbuHHrCJRqI3r/Zeaxs1QYhsPnXKV9kSix3UlotTm2+ybjNSkRNng+iI3oNk3Xm4h4M8ZbqCZo06l/Xhp6OFIpB5lfs4lnfwPepCj7gHt/vpSmfXiiUlbgD+6/3vyPivEZA9FMsjCWgfT0phlTMfrRRFaiQ1iFzgLR4w9Tj1FoZe5E4I2oXhfK2m3sZEw== Received: from SJ0PR12MB5676.namprd12.prod.outlook.com (2603:10b6:a03:42e::8) by PH0PR12MB5418.namprd12.prod.outlook.com (2603:10b6:510:e5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.17; Wed, 28 Sep 2022 01:38:47 +0000 Received: from SJ0PR12MB5676.namprd12.prod.outlook.com ([fe80::3c98:4af6:e849:aa5]) by SJ0PR12MB5676.namprd12.prod.outlook.com ([fe80::3c98:4af6:e849:aa5%5]) with mapi id 15.20.5654.024; Wed, 28 Sep 2022 01:38:47 +0000 From: Besar Wicaksono To: Suzuki K Poulose , "robin.murphy@arm.com" , "catalin.marinas@arm.com" , "will@kernel.org" , "mark.rutland@arm.com" CC: "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "linux-tegra@vger.kernel.org" , "sudeep.holla@arm.com" , "thanu.rangarajan@arm.com" , "Michael.Williams@arm.com" , Thierry Reding , Jonathan Hunter , Vikram Sethi , "mathieu.poirier@linaro.org" , "mike.leach@linaro.org" , "leo.yan@linaro.org" Subject: RE: [PATCH v4 2/2] perf: arm_cspmu: Add support for NVIDIA SCF and MCF attribute Thread-Topic: [PATCH v4 2/2] perf: arm_cspmu: Add support for NVIDIA SCF and MCF attribute Thread-Index: AQHYsAs8FvZmBbX54kC2IEZYs2+5S63zbHsAgADmWnA= Date: Wed, 28 Sep 2022 01:38:47 +0000 Message-ID: References: <20220814182351.8861-1-bwicaksono@nvidia.com> <20220814182351.8861-3-bwicaksono@nvidia.com> <7082762d-2d4d-aa7b-656c-75593b0697f0@arm.com> In-Reply-To: <7082762d-2d4d-aa7b-656c-75593b0697f0@arm.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: SJ0PR12MB5676:EE_|PH0PR12MB5418:EE_ x-ms-office365-filtering-correlation-id: c02a6771-e20c-4068-d3b4-08daa0f2303b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cKl0R8a56j0tM2n3D/r0gcm4OhJYUMZLmxNQsUa6mltkTaN+SrjK4p2xHhHgQqLJs51wWD1k2H47v4xyC9a+ZKP2q6BY7Gs35db6UiWseYE9qI+MjWurUlbHhyVHj0VZmrqYA+2OMo6SQls76/56uK4Xvj2tBk191LkvWZCiC/fGlw8wmeAUrhecmUknvvLXlVAGESERXASUjnEghiW1fGfTzL5irhADgfv84DHQ+NAmyxjOBkFmdT7nXytG9v97UjCnkfmhs3bgRgOQa3i9k9A/VofFU7E22+pPZ1pabRh14TC92sVYt3ix6VQGMfP9u9NwIvgqjZp8CPm3mFsX4rN9KDuS+FWgErydK5Sv9REFjgIMvte+jYlvn80Bio0LxMAs6uox7d10dN5SHRB51m3c8mopOEyyBuPRjocSg//wjjswu1KrOPPzcWUTmDokuvHdB83DkB3eLMKakGdhtYHu3tKFeGwX2I0mGPWj2J07rMbaWDDfJGBVrk2TbJ1iWPRdNkLBNpU7pOsi0oMNTwCO6n04qLJPwBeLpgWWBQF5tIX7X9KDa3C+ik13wtTuzDOqB68/Rk0iJjPnCCTnE0wwZ0eW/Ir4LFqgTZj3RYeCIZQhp7eT+6TFZ11ipdDi+kIXtDfPd8Rei4j+6oSHE9KQRIf6G7ORsUku+WwItePUPJwaK6J2qo8pxQdII+AekAsO0Asdb4FI1IiebzTpax9v1iZjLUvsBYY6JE2hZTAay1a3UA769dB97iFzbQWRa9foK4XCXrKv05QR50OQgg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR12MB5676.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(136003)(346002)(366004)(396003)(376002)(451199015)(7696005)(316002)(6506007)(53546011)(52536014)(54906003)(110136005)(186003)(26005)(86362001)(8936002)(55016003)(122000001)(2906002)(9686003)(41300700001)(83380400001)(33656002)(38070700005)(8676002)(71200400001)(64756008)(38100700002)(66446008)(4326008)(66946007)(66476007)(76116006)(66556008)(478600001)(30864003)(7416002)(5660300002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dDhaekloU2VTczdjOVRsSkw2cDNZcm5vd3lJaElWeERxRVlGK2pubWQ5aGhI?= =?utf-8?B?QWozSFBMK3Z4S3dlZG1zcEJtZmpRNnpGNzFVT3hlQnREaHUxM3lGY1dzbzRz?= =?utf-8?B?bEo2WHR4bEcwL25abjNXd0RPMVRFWUh2alQzTDJpdGZ3R0NzeHJEbkNubWJK?= =?utf-8?B?L3NMMXE0RHpaY3g2RUJrTFFqZXZMRmJpRDFaRXdORytBVFpReVQ2VHlNRmFs?= =?utf-8?B?a3o5aVd1N25kdFU0TVpXNjB4OUo4bkIvWTVEcE1mQ1laN3haNTdlMWtra1lN?= =?utf-8?B?NHhUUnc5VmcyV05DV0JDQ2tBOTAwdW9UMHZ4SFRuODRXaUFrRXZveGZBbkVs?= =?utf-8?B?T1ZjR2FoU0h6N3NiNDdyNll5VXhnL0pTSTBJNzhqdWlBK04xUnBGTDU4V2pw?= =?utf-8?B?NjNGZ1ZGVFZBWkdqZHNva0RFVWdWandva1F5TExjU2tuc3ZkazQ5NkJFb2Ez?= =?utf-8?B?UkJaMWJDcjBTNm5hZnNVU3JUUHhvWWROQ3g3dGFLUVBEa0M0eHJMYW1vZ2VY?= =?utf-8?B?MTBaY1FtWXh1bXc0TzNxZ2RLR1dNMDh1blNjcHA0TWJIcHhEbkZHSTBLZnJo?= =?utf-8?B?NkpHV1FqQ1IwdzNudzlNTVdtSjR2K1FLVStkeWxFZVk4TFZXeEhwQjNpTjgz?= =?utf-8?B?V1RMOXFCVVRac1hQYzBDMnpmVm5haGRCVVVNOUJNWVRhTTByVC9xQktoeGI1?= =?utf-8?B?UWlzZHBpeFJTOEZSQllnQSs1WjcwTlBwRC8xanVxYmpPT0VqTU9lbHMzMHJi?= =?utf-8?B?bUE4Sm1scVM0a2RiREVWOHQxL29WZUo1V2FHT08rNC9XcldPSkE5ZktJVVp6?= =?utf-8?B?R2c1QWd0cWxoWXZjcWltWm9EbW5HUHBtSFVGNWRua3ZvcnJ1OTRDb3dpS01G?= =?utf-8?B?a3FBbmdoSXJveTFyVFF3U01rcTBOZEdNeTBhdjdPa2hocFphT1JpS3BqbjJK?= =?utf-8?B?NnBwb3lmaVZSMTV0R29oVVIxN0xjNG5OaXR6WStvc1pkSzdOdVhueHVvZ2hW?= =?utf-8?B?SkxIbkJETVZIcjJKempjcGQ5RGNYOFhYa0R1MVNvdW9vMVRTY2ZZVDFnQ1oz?= =?utf-8?B?UXltZVNMYlhDWUtuS2lheGxVVzN4WkZxZVM5VWZJd2htMmRDSjM0ckIxeTFN?= =?utf-8?B?YklNa3JFTG5vYlpoRHpPdXpVc2dLNHVtS3JuQ04vQ0c1Ymc0dTlvcG40SXBt?= =?utf-8?B?SDhBMm9nblNJSVExUUZ6MzZocmJwcTNLYmtmZ0dnTTRNdW92eDVvait3RkhN?= =?utf-8?B?QWhJUXcrMXN3OGFVcmU0Z2lOSjNncjJsUWxXeUJaUWxkTlB4V1YwTS90QzUz?= =?utf-8?B?QWFYaFpKNmQ5TXl0WmdENjcxZ0RnblZNQjcxdGNyaFJZakU3S0JEUEhrOFc4?= =?utf-8?B?bXkva3ExcmxQcUlFNCtwdEtzSWVGL1NYTjRKbkJBUTdsdlorRUdDd1JTSE1B?= =?utf-8?B?b1NYTmJUR2xBME5OWkNXdGo1aFZRNWNvVnlmYlM2MmVhaGYzVk1hUXZKVzBk?= =?utf-8?B?cVpBUWFLdjl4bTNZUkxqd3Zoekh2QkJJdG84U0xyZFMrWWpRY3ppM1d2Z1pH?= =?utf-8?B?dGVxSmZZQVlUTjF5ZGtIamNLOWo1ZjJ2UW9EWFhLYWpYdVNVOFBQVWJieUpM?= =?utf-8?B?aTNnNmt6S2gxbFNteDJaaXVJTE82YWdQQThxNUk5SzBuZUhvRWRUbHNyQVVt?= =?utf-8?B?aG9PSnZMc1NBZjd0SU5nUzc0OHM5ZUYxMU56by9iWUJJSUtaTUpDVnRSNlhP?= =?utf-8?B?Z2dFMklpcTl6bTJ2anJMaDVFVG5WVGlkOEZHSTJGNVNlcjBxM3hKWXdrNnBs?= =?utf-8?B?aGRZbEdZWGlTTHV4SjloQytOdmdZWG5say9tUks3N1loODRhODU3Ty9vakZm?= =?utf-8?B?Wk1TUFpOdms4Y3NBQXZLRlJjcDJPMk50WVUwNGZqWUNncTZYZ3J5aE1KOEFZ?= =?utf-8?B?YmlvNmVjODEyN2hMeHUvQmU3bXMvM1MvbTA3cXFYU3IwZ1FnUUQzQ1FrK3o2?= =?utf-8?B?ZzBXQkRmamowMjBxNVd0bnZnOTF0UmtMODk4VFgzRWZlOUk3YU4vWDZWN1dW?= =?utf-8?B?Mk93b3hNYUZFUU1uYnVpQXpzSWJzUXpYK1g2ZllWbnJRRWVjbnRTMTJtKzMx?= =?utf-8?Q?HKmhyzWMLrIkKTSOgH1cVBZwi?= 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: SJ0PR12MB5676.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c02a6771-e20c-4068-d3b4-08daa0f2303b X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Sep 2022 01:38:47.7478 (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: ixedw0U0zkUMUz/yM89A/NL2vB3Bi3qu+FJQA0ccBPJoDdz/fBVSozIpsL0YmNGo7LFcBJYxjrGMGx9lGj6NJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5418 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogU3V6dWtpIEsgUG91bG9z ZSA8c3V6dWtpLnBvdWxvc2VAYXJtLmNvbT4NCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDI3 LCAyMDIyIDY6NDMgQU0NCj4gVG86IEJlc2FyIFdpY2Frc29ubyA8YndpY2Frc29ub0BudmlkaWEu Y29tPjsgcm9iaW4ubXVycGh5QGFybS5jb207DQo+IGNhdGFsaW4ubWFyaW5hc0Bhcm0uY29tOyB3 aWxsQGtlcm5lbC5vcmc7IG1hcmsucnV0bGFuZEBhcm0uY29tDQo+IENjOiBsaW51eC1hcm0ta2Vy bmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+ IGxpbnV4LXRlZ3JhQHZnZXIua2VybmVsLm9yZzsgc3VkZWVwLmhvbGxhQGFybS5jb207DQo+IHRo YW51LnJhbmdhcmFqYW5AYXJtLmNvbTsgTWljaGFlbC5XaWxsaWFtc0Bhcm0uY29tOyBUaGllcnJ5 IFJlZGluZw0KPiA8dHJlZGluZ0BudmlkaWEuY29tPjsgSm9uYXRoYW4gSHVudGVyIDxqb25hdGhh bmhAbnZpZGlhLmNvbT47IFZpa3JhbQ0KPiBTZXRoaSA8dnNldGhpQG52aWRpYS5jb20+OyBtYXRo aWV1LnBvaXJpZXJAbGluYXJvLm9yZzsNCj4gbWlrZS5sZWFjaEBsaW5hcm8ub3JnOyBsZW8ueWFu QGxpbmFyby5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAyLzJdIHBlcmY6IGFybV9jc3Bt dTogQWRkIHN1cHBvcnQgZm9yIE5WSURJQSBTQ0YNCj4gYW5kIE1DRiBhdHRyaWJ1dGUNCj4gDQo+ IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRz DQo+IA0KPiANCj4gT24gMTQvMDgvMjAyMiAxOToyMywgQmVzYXIgV2ljYWtzb25vIHdyb3RlOg0K PiA+IEFkZCBzdXBwb3J0IGZvciBOVklESUEgU3lzdGVtIENhY2hlIEZhYnJpYyAoU0NGKSBhbmQg TWVtb3J5IENvbnRyb2wNCj4gPiBGYWJyaWMgKE1DRikgUE1VIGF0dHJpYnV0ZXMgZm9yIENvcmVT aWdodCBQTVUgaW1wbGVtZW50YXRpb24gaW4NCj4gPiBOVklESUEgZGV2aWNlcy4NCj4gPg0KPiA+ IFNpZ25lZC1vZmYtYnk6IEJlc2FyIFdpY2Frc29ubyA8YndpY2Frc29ub0BudmlkaWEuY29tPg0K PiA+IC0tLQ0KPiA+ICAgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9wZXJmL2luZGV4LnJzdCAg ICAgIHwgICAxICsNCj4gPiAgIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvcGVyZi9udmlkaWEt cG11LnJzdCB8IDEyMCArKysrKysNCj4gPiAgIGRyaXZlcnMvcGVyZi9hcm1fY3NwbXUvTWFrZWZp bGUgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiA+ICAgZHJpdmVycy9wZXJmL2FybV9jc3BtdS9h cm1fY3NwbXUuYyAgICAgICAgICAgIHwgICA3ICsNCj4gPiAgIGRyaXZlcnMvcGVyZi9hcm1fY3Nw bXUvbnZpZGlhX2NzcG11LmMgICAgICAgICB8IDM2Nw0KPiArKysrKysrKysrKysrKysrKysNCj4g PiAgIGRyaXZlcnMvcGVyZi9hcm1fY3NwbXUvbnZpZGlhX2NzcG11LmggICAgICAgICB8ICAxNyAr DQo+ID4gICA2IGZpbGVzIGNoYW5nZWQsIDUxNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p DQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9wZXJm L252aWRpYS1wbXUucnN0DQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9wZXJmL2Fy bV9jc3BtdS9udmlkaWFfY3NwbXUuYw0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv cGVyZi9hcm1fY3NwbXUvbnZpZGlhX2NzcG11LmgNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL2FkbWluLWd1aWRlL3BlcmYvaW5kZXgucnN0DQo+IGIvRG9jdW1lbnRhdGlvbi9h ZG1pbi1ndWlkZS9wZXJmL2luZGV4LnJzdA0KPiA+IGluZGV4IDY5YjIzZjA4N2MwNS4uY2YwNWZl ZDFmNjdmIDEwMDY0NA0KPiA+IC0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvcGVyZi9p bmRleC5yc3QNCj4gPiArKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL3BlcmYvaW5kZXgu cnN0DQo+ID4gQEAgLTE3LDMgKzE3LDQgQEAgUGVyZm9ybWFuY2UgbW9uaXRvciBzdXBwb3J0DQo+ ID4gICAgICB4Z2VuZS1wbXUNCj4gPiAgICAgIGFybV9kc3VfcG11DQo+ID4gICAgICB0aHVuZGVy eDItcG11DQo+ID4gKyAgIG52aWRpYS1wbXUNCj4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlv bi9hZG1pbi1ndWlkZS9wZXJmL252aWRpYS1wbXUucnN0DQo+IGIvRG9jdW1lbnRhdGlvbi9hZG1p bi1ndWlkZS9wZXJmL252aWRpYS1wbXUucnN0DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLmM0MWI5Mzk2NTgyNA0KPiA+IC0tLSAvZGV2L251bGwNCj4g PiArKysgYi9Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL3BlcmYvbnZpZGlhLXBtdS5yc3QNCj4g PiBAQCAtMCwwICsxLDEyMCBAQA0KPiA+DQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiArTlZJRElBIFRlZ3JhIFNvQyBVbmNv cmUgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0IChQTVUpDQo+ID4NCj4gKz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICsNCj4g PiArVGhlIE5WSURJQSBUZWdyYSBTb0MgaW5jbHVkZXMgdmFyaW91cyBzeXN0ZW0gUE1VcyB0byBt ZWFzdXJlIGtleQ0KPiBwZXJmb3JtYW5jZQ0KPiA+ICttZXRyaWNzIGxpa2UgbWVtb3J5IGJhbmR3 aWR0aCwgbGF0ZW5jeSwgYW5kIHV0aWxpemF0aW9uOg0KPiA+ICsNCj4gPiArKiBTY2FsYWJsZSBD b2hlcmVuY3kgRmFicmljIChTQ0YpDQo+ID4gKyogTWVtb3J5IENvbnRyb2xsZXIgRmFicmljIChN Q0YpIEdQVSBwaHlzaWNhbCBpbnRlcmZhY2UNCj4gPiArKiBNQ0YgR1BVIHZpcnR1YWwgaW50ZXJm YWNlDQo+ID4gKyogTUNGIE5WTElOSyBpbnRlcmZhY2UNCj4gPiArKiBNQ0YgUENJRSBpbnRlcmZh Y2UNCj4gPiArDQo+ID4gK1BNVSBEcml2ZXINCj4gPiArLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiAr VGhlIFBNVXMgaW4gdGhpcyBkb2N1bWVudCBhcmUgYmFzZWQgb24gQVJNIENvcmVTaWdodCBQTVUN Cj4gQXJjaGl0ZWN0dXJlIGFzDQo+ID4gK2Rlc2NyaWJlZCBpbiBkb2N1bWVudDogQVJNIElISSAw MDkxLiBTaW5jZSB0aGlzIGlzIGEgc3RhbmRhcmQNCj4gYXJjaGl0ZWN0dXJlLCB0aGUNCj4gPiAr UE1VcyBhcmUgbWFuYWdlZCBieSBhIGNvbW1vbiBkcml2ZXIgImFybS1jcy1hcmNoLXBtdSIuIFRo aXMgZHJpdmVyDQo+IGRlc2NyaWJlcw0KPiA+ICt0aGUgYXZhaWxhYmxlIGV2ZW50cyBhbmQgY29u ZmlndXJhdGlvbiBvZiBlYWNoIFBNVSBpbiBzeXNmcy4gUGxlYXNlIHNlZQ0KPiB0aGUNCj4gPiAr c2VjdGlvbnMgYmVsb3cgdG8gZ2V0IHRoZSBzeXNmcyBwYXRoIG9mIGVhY2ggUE1VLiBMaWtlIG90 aGVyIHVuY29yZSBQTVUNCj4gZHJpdmVyLA0KPiA+ICt0aGUgZHJpdmVyIHByb3ZpZGVzICJjcHVt YXNrIiBzeXNmcyBhdHRyaWJ1dGUgdG8gc2hvdyB0aGUgQ1BVIGlkIHVzZWQgdG8NCj4gaGFuZGxl DQo+ID4gK3RoZSBQTVUgZXZlbnQuIFRoZXJlIGlzIGFsc28gImFzc29jaWF0ZWRfY3B1cyIgc3lz ZnMgYXR0cmlidXRlLCB3aGljaA0KPiBjb250YWlucyBhDQo+ID4gK2xpc3Qgb2YgQ1BVcyBhc3Nv Y2lhdGVkIHdpdGggdGhlIFBNVSBpbnN0YW5jZS4NCj4gPiArDQo+ID4gK1NDRiBQTVUNCj4gPiAr LS0tLS0tLQ0KPiA+ICsNCj4gPiArVGhlIFNDRiBQTVUgbW9uaXRvcnMgc3lzdGVtIGxldmVsIGNh Y2hlIGV2ZW50cywgQ1BVIHRyYWZmaWMsIGFuZA0KPiA+ICtzdHJvbmdseS1vcmRlcmVkIFBDSUUg dHJhZmZpYyB0byBsb2NhbC9yZW1vdGUgbWVtb3J5Lg0KPiA+ICsNCj4gPiArVGhlIGV2ZW50cyBh bmQgY29uZmlndXJhdGlvbiBvcHRpb25zIG9mIHRoaXMgUE1VIGRldmljZSBhcmUgZGVzY3JpYmVk IGluDQo+IHN5c2ZzLA0KPiA+ICtzZWUgL3N5cy9idXMvZXZlbnRfc291cmNlcy9kZXZpY2VzL252 aWRpYV9zY2ZfcG11Xzxzb2NrZXQtaWQ+Lg0KPiA+ICsNCj4gPiArRXhhbXBsZSB1c2FnZTo6DQo+ ID4gKw0KPiA+ICsgIHBlcmYgc3RhdCAtYSAtZSBudmlkaWFfc2NmX3BtdV8wL2NvbmZpZz0weDAv DQo+ID4gKw0KPiA+ICtUaGlzIHdpbGwgY291bnQgdGhlIGV2ZW50cyBpbiBzb2NrZXQgMC4NCj4g PiArDQo+ID4gK01DRiBHUFUgUGh5c2ljYWwgUE1VDQo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t DQo+ID4gKw0KPiA+ICtUaGUgTUNGIEdQVSBwaHlzaWNhbCBQTVUgbW9uaXRvcnMgQVRTIHRyYW5z bGF0ZWQgdHJhZmZpYyBmcm9tIEdQVSB0bw0KPiA+ICtsb2NhbC9yZW1vdGUgbWVtb3J5IHZpYSBO dmxpbmsgQzJDLg0KPiA+ICsNCj4gPiArVGhlIGV2ZW50cyBhbmQgY29uZmlndXJhdGlvbiBvcHRp b25zIG9mIHRoaXMgUE1VIGRldmljZSBhcmUgZGVzY3JpYmVkIGluDQo+IHN5c2ZzLA0KPiA+ICtz ZWUgL3N5cy9idXMvZXZlbnRfc291cmNlcy9kZXZpY2VzL252aWRpYV9tY2ZfZ3B1X3BtdV88c29j a2V0LWlkPi4NCj4gPiArDQo+ID4gK011bHRpcGxlIEdQVXMgY2FuIGJlIGNvbm5lY3RlZCB0byB0 aGUgU29DLiBUaGUgdXNlciBjYW4gdXNlICJncHUiDQo+IGJpdG1hcA0KPiA+ICtwYXJhbWV0ZXIg dG8gc2VsZWN0IHRoZSBHUFUocykgdG8gbW9uaXRvciwgaS5lLiAiZ3B1PTB4RiIgY29ycmVzcG9u ZHMgdG8NCj4gR1BVIDANCj4gPiArdG8gMy4gL3N5cy9idXMvZXZlbnRfc291cmNlcy9kZXZpY2Vz L252aWRpYV9tY2ZfZ3B1X3BtdV88c29ja2V0LQ0KPiBpZD4vZm9ybWF0L2dwdQ0KPiA+ICtzaG93 cyB0aGUgdmFsaWQgYml0cyB0aGF0IGNhbiBiZSBzZXQgaW4gdGhlICJncHUiIHBhcmFtZXRlci4N Cj4gPiArDQo+ID4gK0V4YW1wbGUgdXNhZ2U6Og0KPiA+ICsNCj4gPiArICBwZXJmIHN0YXQgLWEg LWUgbnZpZGlhX21jZl9ncHVfcG11XzAvY29uZmlnPTB4MCxncHU9MHgzLw0KPiA+ICsNCj4gPiAr VGhpcyB3aWxsIGNvdW50IHRoZSBldmVudHMgb24gR1BVIDAgYW5kIDEgdGhhdCBhcmUgY29ubmVj dGVkIHRvIFNvQyBpbg0KPiBzb2NrZXQgMC4NCj4gPiArDQo+ID4gK01DRiBHUFUgVmlydHVhbCBQ TVUNCj4gPiArLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICsNCj4gPiArVGhlIE1DRiBHUFUgdmly dHVhbCBQTVUgbW9uaXRvcnMgU01NVSBpbmxpbmUgdHJhbnNsYXRlZCB0cmFmZmljIChhcw0KPiBv cHBvc2VkIHRvDQo+ID4gK0FUUykgZnJvbSBHUFUgdG8gbG9jYWwvcmVtb3RlIG1lbW9yeSB2aWEg TnZsaW5rIEMyQy4NCj4gPiArDQo+ID4gK1RoZSBldmVudHMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0 aW9ucyBvZiB0aGlzIFBNVSBkZXZpY2UgYXJlIGRlc2NyaWJlZCBpbg0KPiBzeXNmcywNCj4gPiAr c2VlIC9zeXMvYnVzL2V2ZW50X3NvdXJjZXMvZGV2aWNlcy9udmlkaWFfbWNmX2dwdXZpcl9wbXVf PHNvY2tldC0NCj4gaWQ+Lg0KPiA+ICsNCj4gPiArTXVsdGlwbGUgR1BVcyBjYW4gYmUgY29ubmVj dGVkIHRvIHRoZSBTb0MuIFRoZSB1c2VyIGNhbiB1c2UgImdwdSINCj4gYml0bWFwDQo+ID4gK3Bh cmFtZXRlciB0byBzZWxlY3QgdGhlIEdQVShzKSB0byBtb25pdG9yLCBpLmUuICJncHU9MHhGIiBj b3JyZXNwb25kcyB0bw0KPiBHUFUgMA0KPiA+ICt0byAzLiAvc3lzL2J1cy9ldmVudF9zb3VyY2Vz L2RldmljZXMvbnZpZGlhX21jZl9ncHV2aXJfcG11Xzxzb2NrZXQtDQo+IGlkPi9mb3JtYXQvZ3B1 DQo+ID4gK3Nob3dzIHRoZSB2YWxpZCBiaXRzIHRoYXQgY2FuIGJlIHNldCBpbiB0aGUgImdwdSIg cGFyYW1ldGVyLg0KPiA+ICsNCj4gPiArRXhhbXBsZSB1c2FnZTo6DQo+ID4gKw0KPiA+ICsgIHBl cmYgc3RhdCAtYSAtZSBudmlkaWFfbWNmX2dwdXZpcl9wbXVfMC9jb25maWc9MHgwLGdwdT0weDMv DQo+ID4gKw0KPiA+ICtUaGlzIHdpbGwgY291bnQgdGhlIGV2ZW50cyBvbiBHUFUgMCBhbmQgMSB0 aGF0IGFyZSBjb25uZWN0ZWQgdG8gU29DIGluDQo+IHNvY2tldCAwLg0KPiA+ICsNCj4gPiArTUNG IE5WTElOSyBQTVUNCj4gPiArLS0tLS0tLS0tLS0tLS0NCj4gPiArDQo+ID4gK1RoZSBNQ0YgTlZM SU5LIFBNVSBtb25pdG9ycyBJL08gY29oZXJlbnQgdHJhZmZpYyBmcm9tIGV4dGVybmFsIHNvY2tl dA0KPiB0byBsb2NhbA0KPiA+ICttZW1vcnkuDQo+ID4gKw0KPiA+ICtUaGUgZXZlbnRzIGFuZCBj b25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhpcyBQTVUgZGV2aWNlIGFyZSBkZXNjcmliZWQgaW4N Cj4gc3lzZnMsDQo+ID4gK3NlZSAvc3lzL2J1cy9ldmVudF9zb3VyY2VzL2RldmljZXMvbnZpZGlh X21jZl9udmxpbmtfcG11Xzxzb2NrZXQtDQo+IGlkPi4NCj4gPiArDQo+ID4gK0VhY2ggU29DIHNv Y2tldCBjYW4gYmUgY29ubmVjdGVkIHRvIG9uZSBvciBtb3JlIHNvY2tldHMgdmlhIE5WTElOSy4N Cj4gVGhlIHVzZXIgY2FuDQo+ID4gK3VzZSAicmVtX3NvY2tldCIgYml0bWFwIHBhcmFtZXRlciB0 byBzZWxlY3QgdGhlIHJlbW90ZSBzb2NrZXQocykgdG8NCj4gbW9uaXRvciwNCj4gPiAraS5lLiAi cmVtX3NvY2tldD0weEUiIGNvcnJlc3BvbmRzIHRvIHNvY2tldCAxIHRvIDMuDQo+ID4gKy9zeXMv YnVzL2V2ZW50X3NvdXJjZXMvZGV2aWNlcy9udmlkaWFfbWNmX252bGlua19wbXVfPHNvY2tldC0N Cj4gaWQ+L2Zvcm1hdC9yZW1fc29ja2V0DQo+ID4gK3Nob3dzIHRoZSB2YWxpZCBiaXRzIHRoYXQg Y2FuIGJlIHNldCBpbiB0aGUgInJlbV9zb2NrZXQiIHBhcmFtZXRlci4NCj4gPiArDQo+ID4gK0V4 YW1wbGUgdXNhZ2U6Og0KPiA+ICsNCj4gPiArICBwZXJmIHN0YXQgLWEgLWUgbnZpZGlhX21jZl9u dmxpbmtfcG11XzAvY29uZmlnPTB4MCxyZW1fc29ja2V0PTB4Ni8NCj4gPiArDQo+ID4gK1RoaXMg d2lsbCBjb3VudCB0aGUgZXZlbnRzIGZyb20gcmVtb3RlIHNvY2tldCAxIGFuZCAyIHRvIHNvY2tl dCAwLg0KPiA+ICsNCj4gPiArTUNGIFBDSUUgUE1VDQo+ID4gKy0tLS0tLS0tLS0tLQ0KPiA+ICsN Cj4gPiArVGhlIE1DRiBQQ0lFIFBNVSBtb25pdG9ycyB0cmFmZmljIGZyb20gUENJRSByb290IHBv cnRzIHRvIGxvY2FsL3JlbW90ZQ0KPiBtZW1vcnkuDQo+ID4gKw0KPiA+ICtUaGUgZXZlbnRzIGFu ZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgb2YgdGhpcyBQTVUgZGV2aWNlIGFyZSBkZXNjcmliZWQg aW4NCj4gc3lzZnMsDQo+ID4gK3NlZSAvc3lzL2J1cy9ldmVudF9zb3VyY2VzL2RldmljZXMvbnZp ZGlhX21jZl9wY2llX3BtdV88c29ja2V0LQ0KPiBpZD4uDQo+ID4gKw0KPiA+ICtFYWNoIFNvQyBz b2NrZXQgY2FuIHN1cHBvcnQgbXVsdGlwbGUgcm9vdCBwb3J0cy4gVGhlIHVzZXIgY2FuIHVzZQ0K PiA+ICsicm9vdF9wb3J0IiBiaXRtYXAgcGFyYW1ldGVyIHRvIHNlbGVjdCB0aGUgcG9ydChzKSB0 byBtb25pdG9yLCBpLmUuDQo+ID4gKyJyb290X3BvcnQ9MHhGIiBjb3JyZXNwb25kcyB0byByb290 IHBvcnQgMCB0byAzLg0KPiA+ICsvc3lzL2J1cy9ldmVudF9zb3VyY2VzL2RldmljZXMvbnZpZGlh X21jZl9wY2llX3BtdV88c29ja2V0LQ0KPiBpZD4vZm9ybWF0L3Jvb3RfcG9ydA0KPiA+ICtzaG93 cyB0aGUgdmFsaWQgYml0cyB0aGF0IGNhbiBiZSBzZXQgaW4gdGhlICJyb290X3BvcnQiIHBhcmFt ZXRlci4NCj4gPiArDQo+ID4gK0V4YW1wbGUgdXNhZ2U6Og0KPiA+ICsNCj4gPiArICBwZXJmIHN0 YXQgLWEgLWUgbnZpZGlhX21jZl9wY2llX3BtdV8wL2NvbmZpZz0weDAscm9vdF9wb3J0PTB4My8N Cj4gPiArDQo+ID4gK1RoaXMgd2lsbCBjb3VudCB0aGUgZXZlbnRzIGZyb20gcm9vdCBwb3J0IDAg YW5kIDEgb2Ygc29ja2V0IDAuDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGVyZi9hcm1fY3Nw bXUvTWFrZWZpbGUNCj4gYi9kcml2ZXJzL3BlcmYvYXJtX2NzcG11L01ha2VmaWxlDQo+ID4gaW5k ZXggY2RjMzQ1NWY3NGQ4Li4xYjU4NjA2NGJkNzcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9w ZXJmL2FybV9jc3BtdS9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvcGVyZi9hcm1fY3NwbXUv TWFrZWZpbGUNCj4gPiBAQCAtMyw0ICszLDUgQEANCj4gPiAgICMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjANCj4gPg0KPiA+ICAgb2JqLSQoQ09ORklHX0FSTV9DT1JFU0lHSFRfUE1V X0FSQ0hfU1lTVEVNX1BNVSkgKz0gXA0KPiA+IC0gICAgIGFybV9jc3BtdS5vDQo+ID4gKyAgICAg YXJtX2NzcG11Lm8gXA0KPiA+ICsgICAgIG52aWRpYV9jc3BtdS5vDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGVyZi9hcm1fY3NwbXUvYXJtX2NzcG11LmMNCj4gYi9kcml2ZXJzL3BlcmYvYXJt X2NzcG11L2FybV9jc3BtdS5jDQo+ID4gaW5kZXggNDEwODc2Zjg2ZWIwLi43YTBiZWI1MTVlNTMg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wZXJmL2FybV9jc3BtdS9hcm1fY3NwbXUuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvcGVyZi9hcm1fY3NwbXUvYXJtX2NzcG11LmMNCj4gPiBAQCAtMzEsNiAr MzEsNyBAQA0KPiA+ICAgI2luY2x1ZGUgPGFjcGkvcHJvY2Vzc29yLmg+DQo+ID4NCj4gPiAgICNp bmNsdWRlICJhcm1fY3NwbXUuaCINCj4gPiArI2luY2x1ZGUgIm52aWRpYV9jc3BtdS5oIg0KPiA+ DQo+ID4gICAjZGVmaW5lIFBNVU5BTUUgImFybV9jc3BtdSINCj4gPiAgICNkZWZpbmUgRFJWTkFN RSAiYXJtLWNzLWFyY2gtcG11Ig0KPiA+IEBAIC0xMTgsNiArMTE5LDkgQEAgc3RhdGljX2Fzc2Vy dCgNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgb3BzLT5jYWxsYmFjayA9IGFybV9jc3BtdV8g IyMgY2FsbGJhY2s7IFwNCj4gPiAgICAgICB9IHdoaWxlICgwKQ0KPiA+DQo+ID4gKy8qIEpFREVD LWFzc2lnbmVkIEpFUDEwNiBpZGVudGlmaWNhdGlvbiBjb2RlICovDQo+ID4gKyNkZWZpbmUgQVJN X0NTUE1VX0lNUExfSURfTlZJRElBICAgICAgICAgICAgIDB4MzZCDQo+ID4gKw0KPiA+ICAgc3Rh dGljIHVuc2lnbmVkIGxvbmcgYXJtX2NzcG11X2NwdWhwX3N0YXRlOw0KPiA+DQo+ID4gICAvKg0K PiA+IEBAIC0zNjksNiArMzczLDkgQEAgc3RydWN0IGltcGxfbWF0Y2ggew0KPiA+ICAgfTsNCj4g Pg0KPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXBsX21hdGNoIGltcGxfbWF0Y2hbXSA9IHsN Cj4gPiArICAgICB7IC5wbWlpZHIgPSBBUk1fQ1NQTVVfSU1QTF9JRF9OVklESUEsDQo+ID4gKyAg ICAgICAubWFzayA9IEFSTV9DU1BNVV9QTUlJRFJfSU1QTEVNRU5URVIsDQo+ID4gKyAgICAgICAu aW1wbF9pbml0X29wcyA9IG52X2NzcG11X2luaXRfb3BzIH0sDQo+IA0KPiBTdXBlciBtaW5vciBu aXQ6IENvZGluZyBzdHlsZS4gQ291bGQgd2UgdXNlIDoNCj4gDQo+ICAgICAgICAgew0KPiAgICAg ICAgICAgICAgICAgLmZpZWxkID0gdmFsdWUsDQo+ICAgICAgICAgICAgICAgICAuLi4NCj4gICAg ICAgICB9LA0KPiANCj4gPiAgICAgICB7fQ0KPiA+ICAgfTsNCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3BlcmYvYXJtX2NzcG11L252aWRpYV9jc3BtdS5jDQo+IGIvZHJpdmVycy9wZXJm L2FybV9jc3BtdS9udmlkaWFfY3NwbXUuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4g aW5kZXggMDAwMDAwMDAwMDAwLi4yNjFmMjA2ODBiYzENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4g KysrIGIvZHJpdmVycy9wZXJmL2FybV9jc3BtdS9udmlkaWFfY3NwbXUuYw0KPiA+IEBAIC0wLDAg KzEsMzY3IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4g Ky8qDQo+ID4gKyAqIENvcHlyaWdodCAoYykgMjAyMiwgTlZJRElBIENPUlBPUkFUSU9OICYgQUZG SUxJQVRFUy4NCj4gPiArICoNCj4gPiArICovDQo+ID4gKw0KPiA+ICsvKiBTdXBwb3J0IGZvciBO VklESUEgc3BlY2lmaWMgYXR0cmlidXRlcy4gKi8NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJudmlk aWFfY3NwbXUuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUgTlZfTUNGX1BDSUVfUE9SVF9DT1VOVCAg ICAgICAxMFVMTA0KPiA+ICsjZGVmaW5lIE5WX01DRl9QQ0lFX0ZJTFRFUl9JRF9NQVNLDQo+IEdF Tk1BU0tfVUxMKE5WX01DRl9QQ0lFX1BPUlRfQ09VTlQgLSAxLCAwKQ0KPiA+ICsNCj4gPiArI2Rl ZmluZSBOVl9NQ0ZfR1BVX1BPUlRfQ09VTlQgICAgICAgIDJVTEwNCj4gPiArI2RlZmluZSBOVl9N Q0ZfR1BVX0ZJTFRFUl9JRF9NQVNLDQo+IEdFTk1BU0tfVUxMKE5WX01DRl9HUFVfUE9SVF9DT1VO VCAtIDEsIDApDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE5WX01DRl9OVkxfUE9SVF9DT1VOVCAgICAg ICAgNFVMTA0KPiA+ICsjZGVmaW5lIE5WX01DRl9OVkxfRklMVEVSX0lEX01BU0sNCj4gR0VOTUFT S19VTEwoTlZfTUNGX05WTF9QT1JUX0NPVU5UIC0gMSwgMCkNCj4gPiArDQo+ID4gKyNkZWZpbmUg TlZfU0NGX01DRl9QUk9ESURfTUFTSyAgICAgICBHRU5NQVNLKDMxLCAwKQ0KPiA+ICsNCj4gPiAr I2RlZmluZSBOVl9GT1JNQVRfTkFNRV9HRU5FUklDICAgICAgIDANCj4gPiArDQo+ID4gKyNkZWZp bmUgdG9fbnZfY3NwbXVfY3R4KGNzcG11KSAgICAgICAoKHN0cnVjdCBudl9jc3BtdV9jdHggKiko Y3NwbXUtDQo+ID5pbXBsLmN0eCkpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE5WX0NTUE1VX0VWRU5U X0FUVFJfNF9JTk5FUihfcHJlZiwgX251bSwgX3N1ZmYsIF9jb25maWcpDQo+IFwNCj4gPiArICAg ICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihfcHJlZiMjX251bSMjX3N1ZmYsIF9jb25maWcpDQo+ID4g Kw0KPiA+ICsjZGVmaW5lIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChfcHJlZiwgX3N1ZmYsIF9jb25m aWcpICAgICAgICAgICAgICAgICBcDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80X0lO TkVSKF9wcmVmLCBfMF8sIF9zdWZmLCBfY29uZmlnKSwgICAgICAgIFwNCj4gPiArICAgICBOVl9D U1BNVV9FVkVOVF9BVFRSXzRfSU5ORVIoX3ByZWYsIF8xXywgX3N1ZmYsIF9jb25maWcgKyAxKSwg ICAgXA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNF9JTk5FUihfcHJlZiwgXzJfLCBf c3VmZiwgX2NvbmZpZyArIDIpLCAgICBcDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80 X0lOTkVSKF9wcmVmLCBfM18sIF9zdWZmLCBfY29uZmlnICsgMykNCj4gPiArDQo+ID4gK3N0cnVj dCBudl9jc3BtdV9jdHggew0KPiA+ICsgICAgIGNvbnN0IGNoYXIgKm5hbWU7DQo+ID4gKyAgICAg dTMyIGZpbHRlcl9tYXNrOw0KPiA+ICsgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKipldmVudF9hdHRy Ow0KPiA+ICsgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKipmb3JtYXRfYXR0cjsNCj4gPiArfTsNCj4g PiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpzY2ZfcG11X2V2ZW50X2F0dHJzW10g PSB7DQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoYnVzX2N5Y2xlcywgICAgICAgICAg ICAgICAgICAgICAgICAweDFkKSwNCj4gPiArDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FU VFIoc2NmX2NhY2hlX2FsbG9jYXRlLCAgICAgICAgICAgICAgICAweEYwKSwNCj4gPiArICAgICBB Uk1fQ1NQTVVfRVZFTlRfQVRUUihzY2ZfY2FjaGVfcmVmaWxsLCAgICAgICAgICAgICAgICAgIDB4 RjEpLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKHNjZl9jYWNoZSwgICAgICAgICAg ICAgICAgICAgICAgICAgMHhGMiksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoc2Nm X2NhY2hlX3diLCAgICAgICAgICAgICAgICAgICAgICAweEYzKSwNCj4gPiArDQo+ID4gKyAgICAg TlZfQ1NQTVVfRVZFTlRfQVRUUl80KHNvY2tldCwgcmRfZGF0YSwgICAgICAgICAgICAgICAgICAw eDEwMSksDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80KHNvY2tldCwgZGxfcnNwLCAg ICAgICAgICAgICAgICAgICAweDEwNSksDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80 KHNvY2tldCwgd2JfZGF0YSwgICAgICAgICAgICAgICAgICAweDEwOSksDQo+ID4gKyAgICAgTlZf Q1NQTVVfRVZFTlRfQVRUUl80KHNvY2tldCwgZXZfcnNwLCAgICAgICAgICAgICAgICAgICAweDEw ZCksDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80KHNvY2tldCwgcHJiX2RhdGEsICAg ICAgICAgICAgICAgICAweDExMSksDQo+ID4gKw0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FU VFJfNChzb2NrZXQsIHJkX291dHN0YW5kaW5nLCAgICAgICAgICAgMHgxMTUpLA0KPiA+ICsgICAg IE5WX0NTUE1VX0VWRU5UX0FUVFJfNChzb2NrZXQsIGRsX291dHN0YW5kaW5nLCAgICAgICAgICAg MHgxMTkpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChzb2NrZXQsIHdiX291dHN0 YW5kaW5nLCAgICAgICAgICAgMHgxMWQpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJf NChzb2NrZXQsIHdyX291dHN0YW5kaW5nLCAgICAgICAgICAgMHgxMjEpLA0KPiA+ICsgICAgIE5W X0NTUE1VX0VWRU5UX0FUVFJfNChzb2NrZXQsIGV2X291dHN0YW5kaW5nLCAgICAgICAgICAgMHgx MjUpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChzb2NrZXQsIHByYl9vdXRzdGFu ZGluZywgICAgICAgICAgMHgxMjkpLA0KPiA+ICsNCj4gPiArICAgICBOVl9DU1BNVV9FVkVOVF9B VFRSXzQoc29ja2V0LCByZF9hY2Nlc3MsICAgICAgICAgICAgICAgIDB4MTJkKSwNCj4gPiArICAg ICBOVl9DU1BNVV9FVkVOVF9BVFRSXzQoc29ja2V0LCBkbF9hY2Nlc3MsICAgICAgICAgICAgICAg IDB4MTMxKSwNCj4gPiArICAgICBOVl9DU1BNVV9FVkVOVF9BVFRSXzQoc29ja2V0LCB3Yl9hY2Nl c3MsICAgICAgICAgICAgICAgIDB4MTM1KSwNCj4gPiArICAgICBOVl9DU1BNVV9FVkVOVF9BVFRS XzQoc29ja2V0LCB3cl9hY2Nlc3MsICAgICAgICAgICAgICAgIDB4MTM5KSwNCj4gPiArICAgICBO Vl9DU1BNVV9FVkVOVF9BVFRSXzQoc29ja2V0LCBldl9hY2Nlc3MsICAgICAgICAgICAgICAgIDB4 MTNkKSwNCj4gPiArICAgICBOVl9DU1BNVV9FVkVOVF9BVFRSXzQoc29ja2V0LCBwcmJfYWNjZXNz LCAgICAgICAgICAgICAgIDB4MTQxKSwNCj4gPiArDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRf QVRUUl80KG9jdSwgZ21lbV9yZF9kYXRhLCAgICAgICAgICAgICAgICAweDE0NSksDQo+ID4gKyAg ICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80KG9jdSwgZ21lbV9yZF9hY2Nlc3MsICAgICAgICAgICAg ICAweDE0OSksDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRUUl80KG9jdSwgZ21lbV93Yl9h Y2Nlc3MsICAgICAgICAgICAgICAweDE0ZCksDQo+ID4gKyAgICAgTlZfQ1NQTVVfRVZFTlRfQVRU Ul80KG9jdSwgZ21lbV9yZF9vdXRzdGFuZGluZywgICAgICAgICAweDE1MSksDQo+ID4gKyAgICAg TlZfQ1NQTVVfRVZFTlRfQVRUUl80KG9jdSwgZ21lbV93cl9vdXRzdGFuZGluZywgICAgICAgICAw eDE1NSksDQo+ID4gKw0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIHJlbV9y ZF9kYXRhLCAgICAgICAgICAgICAgICAgMHgxNTkpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5U X0FUVFJfNChvY3UsIHJlbV9yZF9hY2Nlc3MsICAgICAgICAgICAgICAgMHgxNWQpLA0KPiA+ICsg ICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIHJlbV93Yl9hY2Nlc3MsICAgICAgICAgICAg ICAgMHgxNjEpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIHJlbV9yZF9v dXRzdGFuZGluZywgICAgICAgICAgMHgxNjUpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FU VFJfNChvY3UsIHJlbV93cl9vdXRzdGFuZGluZywgICAgICAgICAgMHgxNjkpLA0KPiA+ICsNCj4g PiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX3JkX2RhdGEsICAgICAgICAgICAgICAg ICAgICAgIDB4MTZkKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX3JkX2Fj Y2VzcywgICAgICAgICAgICAgICAgICAgIDB4MTZlKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZF TlRfQVRUUihnbWVtX3JkX291dHN0YW5kaW5nLCAgICAgICAgICAgICAgIDB4MTZmKSwNCj4gPiAr ICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX2RsX3JzcCwgICAgICAgICAgICAgICAgICAg ICAgIDB4MTcwKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX2RsX2FjY2Vz cywgICAgICAgICAgICAgICAgICAgIDB4MTcxKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRf QVRUUihnbWVtX2RsX291dHN0YW5kaW5nLCAgICAgICAgICAgICAgIDB4MTcyKSwNCj4gPiArICAg ICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX3diX2RhdGEsICAgICAgICAgICAgICAgICAgICAg IDB4MTczKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX3diX2FjY2Vzcywg ICAgICAgICAgICAgICAgICAgIDB4MTc0KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRU UihnbWVtX3diX291dHN0YW5kaW5nLCAgICAgICAgICAgICAgIDB4MTc1KSwNCj4gPiArICAgICBB Uk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX2V2X3JzcCwgICAgICAgICAgICAgICAgICAgICAgIDB4 MTc2KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX2V2X2FjY2VzcywgICAg ICAgICAgICAgICAgICAgIDB4MTc3KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihn bWVtX2V2X291dHN0YW5kaW5nLCAgICAgICAgICAgICAgIDB4MTc4KSwNCj4gPiArICAgICBBUk1f Q1NQTVVfRVZFTlRfQVRUUihnbWVtX3dyX2RhdGEsICAgICAgICAgICAgICAgICAgICAgIDB4MTc5 KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVtX3dyX291dHN0YW5kaW5nLCAg ICAgICAgICAgICAgIDB4MTdhKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihnbWVt X3dyX2FjY2VzcywgICAgICAgICAgICAgICAgICAgIDB4MTdiKSwNCj4gPiArDQo+ID4gKyAgICAg TlZfQ1NQTVVfRVZFTlRfQVRUUl80KHNvY2tldCwgd3JfZGF0YSwgICAgICAgICAgICAgICAgICAw eDE3YyksDQo+ID4gKw0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGdtZW1f d3JfZGF0YSwgICAgICAgICAgICAgICAgMHgxODApLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5U X0FUVFJfNChvY3UsIGdtZW1fd2JfZGF0YSwgICAgICAgICAgICAgICAgMHgxODQpLA0KPiA+ICsg ICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGdtZW1fd3JfYWNjZXNzLCAgICAgICAgICAg ICAgMHgxODgpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGdtZW1fd2Jf b3V0c3RhbmRpbmcsICAgICAgICAgMHgxOGMpLA0KPiA+ICsNCj4gPiArICAgICBOVl9DU1BNVV9F VkVOVF9BVFRSXzQob2N1LCByZW1fd3JfZGF0YSwgICAgICAgICAgICAgICAgIDB4MTkwKSwNCj4g PiArICAgICBOVl9DU1BNVV9FVkVOVF9BVFRSXzQob2N1LCByZW1fd2JfZGF0YSwgICAgICAgICAg ICAgICAgIDB4MTk0KSwNCj4gPiArICAgICBOVl9DU1BNVV9FVkVOVF9BVFRSXzQob2N1LCByZW1f d3JfYWNjZXNzLCAgICAgICAgICAgICAgIDB4MTk4KSwNCj4gPiArICAgICBOVl9DU1BNVV9FVkVO VF9BVFRSXzQob2N1LCByZW1fd2Jfb3V0c3RhbmRpbmcsICAgICAgICAgIDB4MTljKSwNCj4gPiAr DQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoZ21lbV93cl90b3RhbF9ieXRlcywgICAg ICAgICAgICAgICAweDFhMCksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIocmVtb3Rl X3NvY2tldF93cl90b3RhbF9ieXRlcywNCj4gMHgxYTEpLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9F VkVOVF9BVFRSKHJlbW90ZV9zb2NrZXRfcmRfZGF0YSwgICAgICAgICAgICAgMHgxYTIpLA0KPiA+ ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKHJlbW90ZV9zb2NrZXRfcmRfb3V0c3RhbmRpbmcs DQo+IDB4MWEzKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihyZW1vdGVfc29ja2V0 X3JkX2FjY2VzcywgICAgICAgICAgIDB4MWE0KSwNCj4gPiArDQo+ID4gKyAgICAgQVJNX0NTUE1V X0VWRU5UX0FUVFIoY21lbV9yZF9kYXRhLCAgICAgICAgICAgICAgICAgICAgICAweDFhNSksDQo+ ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9yZF9hY2Nlc3MsICAgICAgICAgICAg ICAgICAgICAweDFhNiksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9yZF9v dXRzdGFuZGluZywgICAgICAgICAgICAgICAweDFhNyksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VW RU5UX0FUVFIoY21lbV9kbF9yc3AsICAgICAgICAgICAgICAgICAgICAgICAweDFhOCksDQo+ID4g KyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9kbF9hY2Nlc3MsICAgICAgICAgICAgICAg ICAgICAweDFhOSksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9kbF9vdXRz dGFuZGluZywgICAgICAgICAgICAgICAweDFhYSksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5U X0FUVFIoY21lbV93Yl9kYXRhLCAgICAgICAgICAgICAgICAgICAgICAweDFhYiksDQo+ID4gKyAg ICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV93Yl9hY2Nlc3MsICAgICAgICAgICAgICAgICAg ICAweDFhYyksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV93Yl9vdXRzdGFu ZGluZywgICAgICAgICAgICAgICAweDFhZCksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FU VFIoY21lbV9ldl9yc3AsICAgICAgICAgICAgICAgICAgICAgICAweDFhZSksDQo+ID4gKyAgICAg QVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9ldl9hY2Nlc3MsICAgICAgICAgICAgICAgICAgICAw eDFhZiksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV9ldl9vdXRzdGFuZGlu ZywgICAgICAgICAgICAgICAweDFiMCksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIo Y21lbV93cl9kYXRhLCAgICAgICAgICAgICAgICAgICAgICAweDFiMSksDQo+ID4gKyAgICAgQVJN X0NTUE1VX0VWRU5UX0FUVFIoY21lbV93cl9vdXRzdGFuZGluZywgICAgICAgICAgICAgICAweDFi MiksDQo+ID4gKw0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGNtZW1fcmRf ZGF0YSwgICAgICAgICAgICAgICAgMHgxYjMpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FU VFJfNChvY3UsIGNtZW1fcmRfYWNjZXNzLCAgICAgICAgICAgICAgMHgxYjcpLA0KPiA+ICsgICAg IE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGNtZW1fd2JfYWNjZXNzLCAgICAgICAgICAgICAg MHgxYmIpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGNtZW1fcmRfb3V0 c3RhbmRpbmcsICAgICAgICAgMHgxYmYpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJf NChvY3UsIGNtZW1fd3Jfb3V0c3RhbmRpbmcsICAgICAgICAgMHgxYzMpLA0KPiA+ICsNCj4gPiAr ICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihvY3VfcHJiX2FjY2VzcywgICAgICAgICAgICAgICAg ICAgIDB4MWM3KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihvY3VfcHJiX2RhdGEs ICAgICAgICAgICAgICAgICAgICAgIDB4MWM4KSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRf QVRUUihvY3VfcHJiX291dHN0YW5kaW5nLCAgICAgICAgICAgICAgIDB4MWM5KSwNCj4gPiArDQo+ ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY21lbV93cl9hY2Nlc3MsICAgICAgICAgICAg ICAgICAgICAweDFjYSksDQo+ID4gKw0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChv Y3UsIGNtZW1fd3JfYWNjZXNzLCAgICAgICAgICAgICAgMHgxY2IpLA0KPiA+ICsgICAgIE5WX0NT UE1VX0VWRU5UX0FUVFJfNChvY3UsIGNtZW1fd2JfZGF0YSwgICAgICAgICAgICAgICAgMHgxY2Yp LA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3UsIGNtZW1fd3JfZGF0YSwgICAg ICAgICAgICAgICAgMHgxZDMpLA0KPiA+ICsgICAgIE5WX0NTUE1VX0VWRU5UX0FUVFJfNChvY3Us IGNtZW1fd2Jfb3V0c3RhbmRpbmcsICAgICAgICAgMHgxZDcpLA0KPiA+ICsNCj4gPiArICAgICBB Uk1fQ1NQTVVfRVZFTlRfQVRUUihjbWVtX3dyX3RvdGFsX2J5dGVzLCAgICAgICAgICAgICAgIDB4 MWRiKSwNCj4gPiArDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIoY3ljbGVzLA0KPiBB Uk1fQ1NQTVVfRVZUX0NZQ0xFU19ERUZBVUxUKSwNCj4gPiArICAgICBOVUxMLA0KPiA+ICt9Ow0K PiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm1jZl9wbXVfZXZlbnRfYXR0cnNb XSA9IHsNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUihyZF9ieXRlc19sb2MsICAgICAg ICAgICAgICAgICAgICAgIDB4MCksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIocmRf Ynl0ZXNfcmVtLCAgICAgICAgICAgICAgICAgICAgICAweDEpLA0KPiA+ICsgICAgIEFSTV9DU1BN VV9FVkVOVF9BVFRSKHdyX2J5dGVzX2xvYywgICAgICAgICAgICAgICAgICAgICAgMHgyKSwNCj4g PiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRUUih3cl9ieXRlc19yZW0sICAgICAgICAgICAgICAg ICAgICAgIDB4MyksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIodG90YWxfYnl0ZXNf bG9jLCAgICAgICAgICAgICAgICAgICAweDQpLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9B VFRSKHRvdGFsX2J5dGVzX3JlbSwgICAgICAgICAgICAgICAgICAgMHg1KSwNCj4gPiArICAgICBB Uk1fQ1NQTVVfRVZFTlRfQVRUUihyZF9yZXFfbG9jLCAgICAgICAgICAgICAgICAgICAgICAgIDB4 NiksDQo+ID4gKyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIocmRfcmVxX3JlbSwgICAgICAgICAg ICAgICAgICAgICAgICAweDcpLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKHdyX3Jl cV9sb2MsICAgICAgICAgICAgICAgICAgICAgICAgMHg4KSwNCj4gPiArICAgICBBUk1fQ1NQTVVf RVZFTlRfQVRUUih3cl9yZXFfcmVtLCAgICAgICAgICAgICAgICAgICAgICAgIDB4OSksDQo+ID4g KyAgICAgQVJNX0NTUE1VX0VWRU5UX0FUVFIodG90YWxfcmVxX2xvYywgICAgICAgICAgICAgICAg ICAgICAweGEpLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKHRvdGFsX3JlcV9yZW0s ICAgICAgICAgICAgICAgICAgICAgMHhiKSwNCj4gPiArICAgICBBUk1fQ1NQTVVfRVZFTlRfQVRU UihyZF9jdW1fb3V0c19sb2MsICAgICAgICAgICAgICAgICAgIDB4YyksDQo+ID4gKyAgICAgQVJN X0NTUE1VX0VWRU5UX0FUVFIocmRfY3VtX291dHNfcmVtLCAgICAgICAgICAgICAgICAgICAweGQp LA0KPiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKGN5Y2xlcywNCj4gQVJNX0NTUE1VX0VW VF9DWUNMRVNfREVGQVVMVCksDQo+ID4gKyAgICAgTlVMTCwNCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpnZW5lcmljX3BtdV9ldmVudF9hdHRyc1tdID0gew0K PiA+ICsgICAgIEFSTV9DU1BNVV9FVkVOVF9BVFRSKGN5Y2xlcywNCj4gQVJNX0NTUE1VX0VWVF9D WUNMRVNfREVGQVVMVCksDQo+ID4gKyAgICAgTlVMTCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpzY2ZfcG11X2Zvcm1hdF9hdHRyc1tdID0gew0KPiA+ICsg ICAgIEFSTV9DU1BNVV9GT1JNQVRfRVZFTlRfQVRUUiwNCj4gPiArICAgICBOVUxMLA0KPiA+ICt9 Ow0KPiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKm1jZl9wY2llX3BtdV9mb3Jt YXRfYXR0cnNbXSA9IHsNCj4gPiArICAgICBBUk1fQ1NQTVVfRk9STUFUX0VWRU5UX0FUVFIsDQo+ ID4gKyAgICAgQVJNX0NTUE1VX0ZPUk1BVF9BVFRSKHJvb3RfcG9ydCwgImNvbmZpZzE6MC05Iiks DQo+ID4gKyAgICAgTlVMTCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgYXR0 cmlidXRlICptY2ZfZ3B1X3BtdV9mb3JtYXRfYXR0cnNbXSA9IHsNCj4gPiArICAgICBBUk1fQ1NQ TVVfRk9STUFUX0VWRU5UX0FUVFIsDQo+ID4gKyAgICAgQVJNX0NTUE1VX0ZPUk1BVF9BVFRSKGdw dSwgImNvbmZpZzE6MC0xIiksDQo+ID4gKyAgICAgTlVMTCwNCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptY2ZfbnZsaW5rX3BtdV9mb3JtYXRfYXR0cnNbXSA9 IHsNCj4gPiArICAgICBBUk1fQ1NQTVVfRk9STUFUX0VWRU5UX0FUVFIsDQo+ID4gKyAgICAgQVJN X0NTUE1VX0ZPUk1BVF9BVFRSKHJlbV9zb2NrZXQsICJjb25maWcxOjAtMyIpLA0KPiA+ICsgICAg IE5VTEwsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZ2Vu ZXJpY19wbXVfZm9ybWF0X2F0dHJzW10gPSB7DQo+ID4gKyAgICAgQVJNX0NTUE1VX0ZPUk1BVF9F VkVOVF9BVFRSLA0KPiA+ICsgICAgIEFSTV9DU1BNVV9GT1JNQVRfRklMVEVSX0FUVFIsDQo+ID4g KyAgICAgTlVMTCwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICoqDQo+ID4gK252X2NzcG11X2dldF9ldmVudF9hdHRycyhjb25zdCBzdHJ1Y3QgYXJtX2NzcG11 ICpjc3BtdSkNCj4gPiArew0KPiA+ICsgICAgIGNvbnN0IHN0cnVjdCBudl9jc3BtdV9jdHggKmN0 eCA9IHRvX252X2NzcG11X2N0eChjc3BtdSk7DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiBjdHgt PmV2ZW50X2F0dHI7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICoqDQo+ID4gK252X2NzcG11X2dldF9mb3JtYXRfYXR0cnMoY29uc3Qgc3RydWN0IGFybV9jc3Bt dSAqY3NwbXUpDQo+ID4gK3sNCj4gPiArICAgICBjb25zdCBzdHJ1Y3QgbnZfY3NwbXVfY3R4ICpj dHggPSB0b19udl9jc3BtdV9jdHgoY3NwbXUpOw0KPiA+ICsNCj4gPiArICAgICByZXR1cm4gY3R4 LT5mb3JtYXRfYXR0cjsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGNoYXIgKg0K PiA+ICtudl9jc3BtdV9nZXRfbmFtZShjb25zdCBzdHJ1Y3QgYXJtX2NzcG11ICpjc3BtdSkNCj4g PiArew0KPiA+ICsgICAgIGNvbnN0IHN0cnVjdCBudl9jc3BtdV9jdHggKmN0eCA9IHRvX252X2Nz cG11X2N0eChjc3BtdSk7DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiBjdHgtPm5hbWU7DQo+ID4g K30NCj4gPiArDQo+ID4gK3N0YXRpYyB1MzIgbnZfY3NwbXVfZXZlbnRfZmlsdGVyKGNvbnN0IHN0 cnVjdCBwZXJmX2V2ZW50ICpldmVudCkNCj4gPiArew0KPiA+ICsgICAgIGNvbnN0IHN0cnVjdCBu dl9jc3BtdV9jdHggKmN0eCA9DQo+ID4gKyAgICAgICAgICAgICB0b19udl9jc3BtdV9jdHgodG9f YXJtX2NzcG11KGV2ZW50LT5wbXUpKTsNCj4gPiArDQo+ID4gKyAgICAgcmV0dXJuIGV2ZW50LT5h dHRyLmNvbmZpZzEgJiBjdHgtPmZpbHRlcl9tYXNrOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtlbnVt IG52X2NzcG11X25hbWVfZm10IHsNCj4gPiArICAgICBOQU1FX0ZNVF9HRU5FUklDLA0KPiA+ICsg ICAgIE5BTUVfRk1UX1BST0MNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBudl9jc3BtdV9t YXRjaCB7DQo+ID4gKyAgICAgdTMyIHByb2RpZDsNCj4gPiArICAgICB1MzIgcHJvZGlkX21hc2s7 DQo+ID4gKyAgICAgdTY0IGZpbHRlcl9tYXNrOw0KPiA+ICsgICAgIGNvbnN0IGNoYXIgKm5hbWVf cGF0dGVybjsNCj4gPiArICAgICBlbnVtIG52X2NzcG11X25hbWVfZm10IG5hbWVfZm10Ow0KPiA+ ICsgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKipldmVudF9hdHRyOw0KPiA+ICsgICAgIHN0cnVjdCBh dHRyaWJ1dGUgKipmb3JtYXRfYXR0cjsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgbnZfY3NwbXVfbWF0Y2ggbnZfY3NwbXVfbWF0Y2hbXSA9IHsNCj4gDQo+IFNpbWls YXIgY29kaW5nIHN0eWxlIG5pdCBiZWxvdy4NCj4gDQoNClN1cmUsIEkgd2lsbCB1cGRhdGUgdGhp cy4NCg0KPiANCj4gT3RoZXJ3aXNlLA0KPiANCj4gQWNrZWQtYnk6IFN1enVraSBLIFBvdWxvc2Ug PHN1enVraS5wb3Vsb3NlQGFybS5jb20+DQoNClRoYW5rcyENCg0KVW5mb3J0dW5hdGVseSwgd2Ug bmVlZCB0byB1cGRhdGUgdGhlIG5hbWUgb2YgdGhlIFBNVXMgYW5kIHJlbW92ZSANCnNvbWUgb2Yg dGhlIGF0dHJpYnV0ZXMgaW4gTlZJRElBIGltcGxlbWVudGF0aW9uLiBUaGlzIHJlcXVpcmVzIGEg Y2hhbmdlDQppbiBudmlkaWFfY3NwbXUuYyBhbmQgbnZpZGlhLXBtdS5yc3QuIEkgaG9wZSB5b3Ug YXJlIGZpbmUgaWYgSSBpbmNsdWRlIHRoaXMNCmNoYW5nZSBvbiB2NSBwYXRjaC4NCg0KUmVnYXJk cywNCkJlc2FyDQo=