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 C82FF41BAE; Thu, 2 Feb 2023 14:52:20 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A50E442FC4; Thu, 2 Feb 2023 14:52:20 +0100 (CET) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2072.outbound.protection.outlook.com [40.107.93.72]) by mails.dpdk.org (Postfix) with ESMTP id 077F442F96 for ; Thu, 2 Feb 2023 14:52:19 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FpsldzpdmiZog1JD5rh9fmypra/709E7zTzMVichChWUiax+gLq8IPNb8WfbjTxPOnoFKdwasnFc5YNVI3Mn+Lff4MWPCYljcMqKPfTYczCTS0dtWOboXl5i2tUuKqjAi3Xf7yLrgjRJBtQJ2N66URrWkRIdCfnuuK9mgf5O6GL58t+HIQ2La7gY4cfiGBc8Ke8Ff1rOq2NgIwWIXkmeJ88j9FsLIrFheeblo+pcqHogpcIuYFv4F8E7wjeaEPRbkqcAB4lwyxdtPIme1wquadoBdB1hzzgC2V9Gao7qdGZEbFiX69VYDeK9VrnP8tvA9dw3HA+WtySLM1LKsR6W2g== 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=IF9AR7DuB/sY2qNcnnWWsY1Pj4pjoOh/Z9jqGjgBF+U=; b=fdPuAPhm0e/P3NEUIv8CgtmxFP81FVEV4IFvuRFu6TVX9XdXXhy7LFp4M5c5gUcssXW+PSyC7blyUHtBDgw7n8SDL64JiqKruT4HuhOOFw3fxc54myfW2xU6gOgJQ6/anjSvS5vHiNeUPCdfXn8NGQlKNysbldkwd6rrRMA1oHVJlb+dos94l4AuUOX1ELYaRfRFj2l2NUefcnkq2PlTlTYiG06wSr/p3vQ/L1DHQNQ71+KHnnPaN4uxiyMlLk02rJvJ3635HV+wP7KHu/sZfpeqRQLO2f/EdAwYekBHPzlLQXU/2Np0IzUkmxnqGdSrPEOzKes7QisqrifhPKLQBg== 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=IF9AR7DuB/sY2qNcnnWWsY1Pj4pjoOh/Z9jqGjgBF+U=; b=SAS3jluyQoHAVjJwFhHyyAkavbgjPHxTfvn2DJsj9LDXNOHx2nK0T437pfXrvQtW8JJ+VBwQJ3hOZf1iIzE6RVjbz58kAfgk4QHs43JHXTZG1D8QWdFZp32anTY+AFnW1a8dbQpFPaRACL4go8jAPeOE2ddsJzpzMN0bx68G7LTLjZF3LFVbcEWTXPutyBqX3/eLNnUZqWCC/tHRHT+bo8XIaJvqodgIsWM82VH/TYVO6InpdN8ah2v2RH9SVO0gFpweHeZvRODbU8q+FIIvVM16w3OdqKynKGxgT7vLmJZIiy16JJTOzcqMarvsdHW1xUr7+iCQlGD+u2twOUL6YA== Received: from MW2PR12MB4666.namprd12.prod.outlook.com (2603:10b6:302:13::22) by CH3PR12MB8546.namprd12.prod.outlook.com (2603:10b6:610:15f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.27; Thu, 2 Feb 2023 13:52:15 +0000 Received: from MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4]) by MW2PR12MB4666.namprd12.prod.outlook.com ([fe80::6ba4:b9e8:d439:59e4%4]) with mapi id 15.20.6043.036; Thu, 2 Feb 2023 13:52:15 +0000 From: Ori Kam To: Ankur Dwivedi , "dev@dpdk.org" CC: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , "david.marchand@redhat.com" , "mdr@ashroe.eu" , "ferruh.yigit@amd.com" , "chas3@att.com" , "humin29@huawei.com" , "linville@tuxdriver.com" , "ciara.loftus@intel.com" , "qi.z.zhang@intel.com" , "mw@semihalf.com" , "mk@semihalf.com" , "shaibran@amazon.com" , "evgenys@amazon.com" , "igorch@amazon.com" , "chandu@amd.com" , "irusskikh@marvell.com" , "shepard.siegel@atomicrules.com" , "ed.czeck@atomicrules.com" , "john.miller@atomicrules.com" , "ajit.khaparde@broadcom.com" , "somnath.kotur@broadcom.com" , "jerinj@marvell.com" , "mczekaj@marvell.com" , "sthotton@marvell.com" , "srinivasan@marvell.com" , "hkalra@marvell.com" , "rahul.lakkireddy@chelsio.com" , "johndale@cisco.com" , "hyonkim@cisco.com" , "liudongdong3@huawei.com" , "yisen.zhuang@huawei.com" , "xuanziyang2@huawei.com" , "cloud.wangxiaoyun@huawei.com" , "zhouguoyang@huawei.com" , "simei.su@intel.com" , "wenjun1.wu@intel.com" , "qiming.yang@intel.com" , "Yuying.Zhang@intel.com" , "beilei.xing@intel.com" , "xiao.w.wang@intel.com" , "jingjing.wu@intel.com" , "junfeng.guo@intel.com" , "rosen.xu@intel.com" , "ndabilpuram@marvell.com" , "kirankumark@marvell.com" , "skori@marvell.com" , "skoteshwar@marvell.com" , "lironh@marvell.com" , "zr@semihalf.com" , "radhac@marvell.com" , "vburru@marvell.com" , "sedara@marvell.com" , Matan Azrad , Slava Ovsiienko , "NBU-Contact-longli (EXTERNAL)" , "spinler@cesnet.cz" , "chaoyong.he@corigine.com" , "niklas.soderlund@corigine.com" , "hemant.agrawal@nxp.com" , "sachin.saxena@oss.nxp.com" , "g.singh@nxp.com" , "apeksha.gupta@nxp.com" , "sachin.saxena@nxp.com" , "aboyer@pensando.io" , "rmody@marvell.com" , "shshaikh@marvell.com" , "dsinghrawat@marvell.com" , "andrew.rybchenko@oktetlabs.ru" , "jiawenwu@trustnetic.com" , "jianwang@trustnetic.com" , "jbehrens@vmware.com" , "maxime.coquelin@redhat.com" , "chenbo.xia@intel.com" , "steven.webster@windriver.com" , "matt.peters@windriver.com" , "bruce.richardson@intel.com" , "mtetsuyah@gmail.com" , "grive@u256.net" , "jasvinder.singh@intel.com" , "cristian.dumitrescu@intel.com" , "jgrajcia@cisco.com" , "mb@smartsharesystems.com" Subject: RE: [PATCH v7 4/6] ethdev: add trace points for flow Thread-Topic: [PATCH v7 4/6] ethdev: add trace points for flow Thread-Index: AQHZLwnFelUh/qfC2UKhrj6KyChPtK67ff3g Date: Thu, 2 Feb 2023 13:52:14 +0000 Message-ID: References: <20230120084059.2926575-1-adwivedi@marvell.com> <20230123090229.3392071-1-adwivedi@marvell.com> <20230123090229.3392071-5-adwivedi@marvell.com> In-Reply-To: <20230123090229.3392071-5-adwivedi@marvell.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_|CH3PR12MB8546:EE_ x-ms-office365-filtering-correlation-id: 0bc8ecb2-10f2-4bc0-edea-08db0524b0c0 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: iqmELvXsvk3nDvdsax1DZLesBN+MUP40cAP0/TkERpnu7LFDfK8TT6F2Jkho2eMrd8co/5sgxTUBTZ+gbz5fcBNARO9NEHIx/CrMOMFjYMNdqugvfN6D3WIJPGiV5DPs5xFOWQrZ9oQPantoqd1I3tMEAEYWMVxLBR2UF14gM1jNhD1gx33uQEkkO1RA9oE+kajOIFbI+PgrtX8sQfpffp5vamyjmZ9HHMrHJ6zzkNMdewTt7ZdTxkKaLTGa0UzyaXFlvPyG3UEgBfur6RoHiT8UUvA6TgHrulLPZZbgoq855li/C46oUP7Do2RjeQvyv462aMyUCqmJ5b4A+bTj00AQENy/+dNr0Se72siqCEOcunRSi/p6kbxUMkY9nI49m6nTJG1rds/BaYr9jSwKDUUz+I6e1L21+myjzJQ7eM/X1PX0Q8rLVPmZB2RCk0zfo3F4AK6l/8pCPgtLXY6LK5V68joWiochw5dxpH2hEn1mLkAt4kxg/E7RvOdoPTEiMc4ufppYgqA/4ygFJH0Jy7eh8APWMcfh9RN/WBMe0S0mOJXoNit4SJ/YDZDJ9RVLaX/fYGg1KQFLeCjYYAc5xVsIhUut7rXV5mI39DihN39cPSiEADY0WdhfmmVNofN9ysAhsUHO8iyEG2A0bDEPdKScImOD85GDqovWisBlrV8F565W5EZ0CGj5j5ziJzkicGBDJ2uiXgZc797GPXUAyQ== 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:(13230025)(4636009)(366004)(346002)(39860400002)(376002)(396003)(136003)(451199018)(2906002)(76116006)(4326008)(66946007)(52536014)(478600001)(122000001)(30864003)(33656002)(7416002)(7366002)(7406005)(7336002)(5660300002)(7696005)(6506007)(26005)(9686003)(186003)(71200400001)(55016003)(83380400001)(86362001)(8936002)(38070700005)(41300700001)(66476007)(38100700002)(66446008)(64756008)(66556008)(8676002)(316002)(110136005)(54906003)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?blduSzhEOHM5WTVUczZSdndtVFc2UEMxMjVENUJjTS84eElTWFZvaFNFempi?= =?utf-8?B?ZW1qUlQ2WFdHSGFjZVAxQjdHaHFYUThiWWhiYU5kT2xIVWIxaVJkcDBib3B4?= =?utf-8?B?a3B3UWRORmdZTS95UjVCRVloSGJrZzRXUDIyYmFBeTRWUTRrZlo3WTNaMjNy?= =?utf-8?B?L1RuNm05eUhQa3JHNEREQlhFaXpwUEIxcjZjSXBXY09wcE5ZUXVmRUNBaFFy?= =?utf-8?B?WkQ5bkRJazluZHp4cVMxM290bXlNNUtoVXpNdEhEUFkxUVJ6NEtzQUsvL3NV?= =?utf-8?B?THRaL0RFTkJ6Q0dBS2oraUMrMzREWHNVRGJ1c0lMMjJEMnV0SG9wamc1Q0Jp?= =?utf-8?B?R1I1RjArL01HeWxRSzdaRlVoZ1BCRzFHNlQ4bVhza2M2a29TWWFpdXV0VStL?= =?utf-8?B?UlBMdFlPL0dLT0RBVkZPUE9ZeVJDMUkyMlRQZURjWVB5NWIwenZJS1hlcFVs?= =?utf-8?B?N0NpZEtUUDdCa092TStISWJSNjMxb0M0R0ZodEVDcEc4V1FsZWh2S3hQS3R1?= =?utf-8?B?RDg2OTViK0JqcWNMVmtLbGZHMDBrSUJydDVWcjVJWVZkUHA5T0VSbVkzL2hO?= =?utf-8?B?MmV1ZTBOd1pPcWVLOTBBTmxzbkk4SDA3MlFaZHJvZitVa01jTm5FNWpDVVh6?= =?utf-8?B?cElTK1JwZzhqVFAwaDFWbGRDT010UUU1YVU3VE5IOGhaS0FKL0duNHNhSmJ5?= =?utf-8?B?MlRaYkdQeXNYVG1ML0YvVDZGTVozNExiREg0ODFmZzcwTC9tbnJqanM4eVpL?= =?utf-8?B?SU1vL3BzS0pEeUNpdlIxOGNib0pncW9EVzhHRThUMEh3ZU5JcVBTejFLVHRS?= =?utf-8?B?dVFYamJmWlFvWVpQZ2c5ck4zNkVFSjRkSjlLbXpSSmdpNm5neFhUeVBucXVh?= =?utf-8?B?WGxsRWc0TWNvakNiMFplSXZXa2RJczlRVThGTXhINklEWjE0QlhiRG1RNVYv?= =?utf-8?B?aGJXUzFaNXlYZ1hYM1M4cE0vVEQ3YTQ3NFFRVmpDUlZNeTREYzJzUWNJUmlJ?= =?utf-8?B?VXV2amo0bUZ6NGdyRzB4R3ExV25xOE1MYjVVODJkYzJJZ2lZbE5hNkhxUEMz?= =?utf-8?B?Qks3VitsM1l3U0xQRjhzN3p2UjhoMEtzREY0TjFNM3lNeGZEWXlSaDQxaHFt?= =?utf-8?B?TGdlT0FUbWFIZXZJdEVrZi9CY1R5N2hLZHc5Qk1EYm1CVUl6cDhqeWJRa3gv?= =?utf-8?B?ZHhjaXpXdUhoc3RRQ05YVXpXM2lvOENPYnpmdmxielg5djBjdmxJOGFwNHRh?= =?utf-8?B?cFdjUzkzb1o1WThzNjhWWUpDSUs3akVTVEJJc1JnL2RXVmlBb0hEalRWWGxm?= =?utf-8?B?WitEWFprNVZkU2tkbEJLTkJZM211cnFRKzUwWmszVDJMQkMwa0xRdUlqVW5j?= =?utf-8?B?QmpNZWhYREQwdUJZZXpqNjliY0tRSlJ0U0pWdnhVdHJjWkhqdTJCbGpsQzRJ?= =?utf-8?B?VlhwTHlmNi9rQkU5bnpVd2FwSVFvSGFjMTVORU5talBEN0EycXVQRXlnVTFR?= =?utf-8?B?cTd5YmdaU1NjL0VVQUZuYk8wUlVKYjBhY3QzclVzK1U2SWZUbEY1RHNBZ0RF?= =?utf-8?B?cktNc0VGaUNtcGZHdWNZbk5mSk5LL29mZDVXNkF3NVBIYWUxZFFqendGZVFZ?= =?utf-8?B?UnMxaUxHV3hlUE84UzZ5TnhIWm4rSkdXM21DbWZlMmZkVGMwamY3U04vajI1?= =?utf-8?B?dG1wKzUzU3pLZzZKUE0zemFrakJGcmttMTdKdmpLS09yYVN1MVZ0Qk5OSm0y?= =?utf-8?B?RHcyWHhlK1hWSEJqaUR2ODUvejlZeEpEcGFmaHF5QWJ5dWxWTTF0S2ZDV1ZL?= =?utf-8?B?QUVrZFBuR1lXdG9yb2VZVkVwUlJPa0ZFeEJkWENvT1B6T0hiN3lMS2U1Q011?= =?utf-8?B?V2xwL2k4L09xSm9DVVZJNE1MWlJaNkpqcWFaS0g4MHRkVXVuelZXQ0E4OEg0?= =?utf-8?B?alA0WHZNcnlxVUFUcTg0NXpIWElISjZnR08zUFVnNXl3blRGbWFtN0tuNjN0?= =?utf-8?B?T0Yvc3lzTVNWNHFDVTZueTFTVlZTRDBDdnBqUUF2SUdFSklUajU4c1REOGNB?= =?utf-8?B?djB2NzF2OWVTOHhwNTBQMUJLdlV4MUJUYnRqQzB2cXhnVkEyQ01zMkZHTmds?= =?utf-8?Q?RHvpmIB4hzSLzQw/XdJ7oFcgB?= 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: 0bc8ecb2-10f2-4bc0-edea-08db0524b0c0 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2023 13:52:14.5296 (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: PMMOZoEXxFQPyJGNm0qPxmIDxDG65ztkQY0HAwOjXvRJqJxOUX9FXYOvVWqF1YmhgqSg/vFV0Z4pF9fobDnoow== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8546 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 SGkgQW5rdXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5rdXIg RHdpdmVkaSA8YWR3aXZlZGlAbWFydmVsbC5jb20+DQo+IFNlbnQ6IE1vbmRheSwgMjMgSmFudWFy eSAyMDIzIDExOjAyDQo+IA0KPiBBZGRzIHRyYWNlIHBvaW50cyBmb3IgcnRlX2Zsb3cgc3BlY2lm aWMgZnVuY3Rpb25zIGluIGV0aGRldiBsaWIuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBBbmt1ciBE d2l2ZWRpIDxhZHdpdmVkaUBtYXJ2ZWxsLmNvbT4NCj4gLS0tDQo+ICBsaWIvZXRoZGV2L2V0aGRl dl90cmFjZV9wb2ludHMuYyB8IDExNyArKysrKysrKysrDQo+ICBsaWIvZXRoZGV2L3J0ZV9ldGhk ZXZfdHJhY2UuaCAgICB8IDM4Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ ICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXZfdHJhY2VfZnAuaCB8IDExMyArKysrKysrKysNCj4gIGxp Yi9ldGhkZXYvcnRlX2Zsb3cuYyAgICAgICAgICAgIHwgMzE0ICsrKysrKysrKysrKysrKysrKyst LS0tLS0NCj4gIGxpYi9ldGhkZXYvdmVyc2lvbi5tYXAgICAgICAgICAgIHwgIDM3ICsrKw0KPiAg NSBmaWxlcyBjaGFuZ2VkLCA4OTggaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pDQo+IA0K PiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ldGhkZXZfdHJhY2VfcG9pbnRzLmMNCj4gYi9saWIv ZXRoZGV2L2V0aGRldl90cmFjZV9wb2ludHMuYw0KPiBpbmRleCAxMDJhMThmY2MxLi4xOTUzZDkw YTVhIDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L2V0aGRldl90cmFjZV9wb2ludHMuYw0KPiAr KysgYi9saWIvZXRoZGV2L2V0aGRldl90cmFjZV9wb2ludHMuYw0KPiBAQCAtNDc0LDMgKzQ3NCwx MjAgQEANCj4gUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9ldGhfdHJhY2VfY21hbl9jb25m aWdfc2V0LA0KPiANCj4gIFJURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZXRoX3RyYWNlX2Nt YW5fY29uZmlnX2dldCwNCj4gIAlsaWIuZXRoZGV2LmNtYW5fY29uZmlnX2dldCkNCj4gKw0KPiAr UlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2NvcHksDQo+ICsJbGliLmV0 aGRldi5mbG93LmNvcHkpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxv d190cmFjZV9jcmVhdGUsDQo+ICsJbGliLmV0aGRldi5mbG93LmNyZWF0ZSkNCj4gKw0KPiArUlRF X1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2Rlc3Ryb3ksDQo+ICsJbGliLmV0 aGRldi5mbG93LmRlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Zmxvd190cmFjZV9mbHVzaCwNCj4gKwlsaWIuZXRoZGV2LmZsb3cuZmx1c2gpDQo+ICsNCj4gK1JU RV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9pc29sYXRlLA0KPiArCWxpYi5l dGhkZXYuZmxvdy5pc29sYXRlKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRl X2Zsb3dfdHJhY2VfcXVlcnksDQo+ICsJbGliLmV0aGRldi5mbG93LnF1ZXJ5KQ0KPiArDQo+ICtS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfdmFsaWRhdGUsDQo+ICsJbGli LmV0aGRldi5mbG93LnZhbGlkYXRlKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIo cnRlX2Zsb3dfdHJhY2VfY29udiwNCj4gKwlsaWIuZXRoZGV2LmZsb3cuY29udikNCj4gKw0KPiAr UlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2R5bmZfbWV0YWRhdGFfcmVn aXN0ZXIsDQo+ICsJbGliLmV0aGRldi5keW5mX21ldGFkYXRhX3JlZ2lzdGVyKQ0KPiArDQo+ICtS VEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfZ2V0X2FnZWRfZmxvd3MsDQo+ ICsJbGliLmV0aGRldi5mbG93LmdldF9hZ2VkX2Zsb3dzKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9J TlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfZ2V0X3FfYWdlZF9mbG93cywNCj4gKwlsaWIuZXRo ZGV2LmZsb3cuZ2V0X3FfYWdlZF9mbG93cykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lT VEVSKHJ0ZV9mbG93X3RyYWNlX3R1bm5lbF9kZWNhcF9zZXQsDQo+ICsJbGliLmV0aGRldi5mbG93 LnR1bm5lbF9kZWNhcF9zZXQpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Zmxvd190cmFjZV90dW5uZWxfbWF0Y2gsDQo+ICsJbGliLmV0aGRldi5mbG93LnR1bm5lbF9tYXRj aCkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2dldF9y ZXN0b3JlX2luZm8sDQo+ICsJbGliLmV0aGRldi5mbG93LmdldF9yZXN0b3JlX2luZm8pDQo+ICsN Cj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV90dW5uZWxfYWN0aW9u X2RlY2FwX3JlbGVhcw0KPiBlLA0KPiArCWxpYi5ldGhkZXYuZmxvdy50dW5uZWxfYWN0aW9uX2Rl Y2FwX3JlbGVhc2UpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190 cmFjZV90dW5uZWxfaXRlbV9yZWxlYXNlLA0KPiArCWxpYi5ldGhkZXYuZmxvdy50dW5uZWxfaXRl bV9yZWxlYXNlKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJh Y2VfYWN0aW9uX2hhbmRsZV9jcmVhdGUsDQo+ICsJbGliLmV0aGRldi5mbG93LmFjdGlvbl9oYW5k bGVfY3JlYXRlKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJh Y2VfYWN0aW9uX2hhbmRsZV9kZXN0cm95LA0KPiArCWxpYi5ldGhkZXYuZmxvdy5hY3Rpb25faGFu ZGxlX2Rlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190 cmFjZV9hY3Rpb25faGFuZGxlX3VwZGF0ZSwNCj4gKwlsaWIuZXRoZGV2LmZsb3cuYWN0aW9uX2hh bmRsZV91cGRhdGUpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190 cmFjZV9hY3Rpb25faGFuZGxlX3F1ZXJ5LA0KPiArCWxpYi5ldGhkZXYuZmxvdy5hY3Rpb25faGFu ZGxlX3F1ZXJ5KQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJh Y2VfZmxleF9pdGVtX2NyZWF0ZSwNCj4gKwlsaWIuZXRoZGV2LmZsb3cuZmxleF9pdGVtX2NyZWF0 ZSkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2ZsZXhf aXRlbV9yZWxlYXNlLA0KPiArCWxpYi5ldGhkZXYuZmxvdy5mbGV4X2l0ZW1fcmVsZWFzZSkNCj4g Kw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX3BpY2tfdHJhbnNm ZXJfcHJveHksDQo+ICsJbGliLmV0aGRldi5mbG93LnBpY2tfdHJhbnNmZXJfcHJveHkpDQo+ICsN Cj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9pbmZvX2dldCwNCj4g KwlsaWIuZXRoZGV2LmZsb3cuaW5mb19nZXQpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJ U1RFUihydGVfZmxvd190cmFjZV9jb25maWd1cmUsDQo+ICsJbGliLmV0aGRldi5mbG93LmNvbmZp Z3VyZSkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX3Bh dHRlcm5fdGVtcGxhdGVfY3JlYXRlLA0KPiArCWxpYi5ldGhkZXYuZmxvdy5wYXR0ZXJuX3RlbXBs YXRlX2NyZWF0ZSkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3Ry YWNlX3BhdHRlcm5fdGVtcGxhdGVfZGVzdHJveSwNCj4gKwlsaWIuZXRoZGV2LmZsb3cucGF0dGVy bl90ZW1wbGF0ZV9kZXN0cm95KQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRl X2Zsb3dfdHJhY2VfYWN0aW9uc190ZW1wbGF0ZV9jcmVhdGUsDQo+ICsJbGliLmV0aGRldi5mbG93 LmFjdGlvbnNfdGVtcGxhdGVfY3JlYXRlKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNU RVIocnRlX2Zsb3dfdHJhY2VfYWN0aW9uc190ZW1wbGF0ZV9kZXN0cm95LA0KPiArCWxpYi5ldGhk ZXYuZmxvdy5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lO VF9SRUdJU1RFUihydGVfZmxvd190cmFjZV90ZW1wbGF0ZV90YWJsZV9jcmVhdGUsDQo+ICsJbGli LmV0aGRldi5mbG93LnRlbXBsYXRlX3RhYmxlX2NyZWF0ZSkNCj4gKw0KPiArUlRFX1RSQUNFX1BP SU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX3RlbXBsYXRlX3RhYmxlX2Rlc3Ryb3ksDQo+ICsJ bGliLmV0aGRldi5mbG93LnRlbXBsYXRlX3RhYmxlX2Rlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFD RV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9hc3luY19jcmVhdGUsDQo+ICsJbGliLmV0 aGRldi5mbG93LmFzeW5jX2NyZWF0ZSkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVS KHJ0ZV9mbG93X3RyYWNlX2FzeW5jX2Rlc3Ryb3ksDQo+ICsJbGliLmV0aGRldi5mbG93LmFzeW5j X2Rlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFj ZV9wdXNoLA0KPiArCWxpYi5ldGhkZXYuZmxvdy5wdXNoKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9J TlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfcHVsbCwNCj4gKwlsaWIuZXRoZGV2LmZsb3cucHVs bCkNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX1JFR0lTVEVSKHJ0ZV9mbG93X3RyYWNlX2FzeW5j X2FjdGlvbl9oYW5kbGVfY3JlYXQNCj4gZSwNCj4gKwlsaWIuZXRoZGV2LmZsb3cuYXN5bmNfYWN0 aW9uX2hhbmRsZV9jcmVhdGUpDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVF9SRUdJU1RFUihydGVf Zmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxlX2Rlc3RyDQo+IG95LA0KPiArCWxpYi5ldGhk ZXYuZmxvdy5hc3luY19hY3Rpb25faGFuZGxlX2Rlc3Ryb3kpDQo+ICsNCj4gK1JURV9UUkFDRV9Q T0lOVF9SRUdJU1RFUihydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxlX3VwZGF0DQo+ IGUsDQo+ICsJbGliLmV0aGRldi5mbG93LmFzeW5jX2FjdGlvbl9oYW5kbGVfdXBkYXRlKQ0KPiAr DQo+ICtSVEVfVFJBQ0VfUE9JTlRfUkVHSVNURVIocnRlX2Zsb3dfdHJhY2VfYXN5bmNfYWN0aW9u X2hhbmRsZV9xdWVyeQ0KPiAsDQo+ICsJbGliLmV0aGRldi5mbG93LmFzeW5jLmFjdGlvbi5oYW5k bGUucXVlcnkpDQo+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfdHJhY2UuaCBi L2xpYi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZS5oDQo+IGluZGV4IGZhMTk1YzVjZGUuLmZkNGZi YWY2ZGUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZS5oDQo+ICsr KyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZS5oDQo+IEBAIC05MDIsNiArOTAyLDM4OSBA QCBSVEVfVFJBQ0VfUE9JTlQoDQo+ICAJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ ICApDQo+IA0KPiArUlRFX1RSQUNFX1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX2NvcHksDQo+ ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1Moc3RydWN0IHJ0ZV9mbG93X2Rlc2MgKmZkLCBzaXplX3Qg bGVuLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYXR0ciAqYXR0ciwNCj4gKwkJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW1zLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uICphY3Rpb25zLCBpbnQgcmV0KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIo ZmQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3NpemVfdChsZW4pOw0KPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UzMihhdHRyLT5ncm91cCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf dTMyKGF0dHItPnByaW9yaXR5KTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaXRlbXMp Ow0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChpdGVtcy0+dHlwZSk7DQo+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbnMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2lu dChhY3Rpb25zLT50eXBlKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4g KykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UKA0KDQpQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91 bGQgYmUgX0ZQDQoNCj4gKwlydGVfZmxvd190cmFjZV9jcmVhdGUsDQo+ICsJUlRFX1RSQUNFX1BP SU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgY29uc3Qgc3RydWN0DQo+IHJ0ZV9mbG93X2F0dHIg KmF0dHIsDQo+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpwYXR0ZXJuLA0KPiArCQlj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb25zLCBzdHJ1Y3QgcnRlX2Zsb3cgKmZs b3cpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF91MzIoYXR0ci0+Z3JvdXApOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UzMihhdHRyLT5wcmlvcml0eSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHBhdHRl cm4pOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9wdHIoZmxvdyk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgN Cj4gKwlydGVfZmxvd190cmFjZV9kZXN0cm95LA0KDQpQYXJ0IG9mIHRoZSBkYXRhcGF0aCBzaG91 bGQgYmUgX0ZQDQoNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCBz dHJ1Y3QgcnRlX2Zsb3cgKmZsb3csIGludA0KPiByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoZmxvdyk7DQo+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFD RV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV9mbHVzaCwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRf QVJHUyh1aW50MTZfdCBwb3J0X2lkLCBpbnQgcmV0KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1p dF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICsp DQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV92YWxpZGF0ZSwN Cj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiArCQljb25zdCBz dHJ1Y3QgcnRlX2Zsb3dfYXR0ciAqYXR0ciwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0 ZW0gKnBhdHRlcm4sDQo+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnMs IGludCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwly dGVfdHJhY2VfcG9pbnRfZW1pdF91MzIoYXR0ci0+Z3JvdXApOw0KPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3UzMihhdHRyLT5wcmlvcml0eSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRy KHBhdHRlcm4pOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gKwly dGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BP SU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX2NvbnYsDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1Mo ZW51bSBydGVfZmxvd19jb252X29wIG9wLCB2b2lkICpkc3QsDQo+ICsJCXNpemVfdCBzaXplLCBj b25zdCB2b2lkICpzcmMpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChvcCk7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGRzdCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf c2l6ZV90KHNpemUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihzcmMpOw0KPiArKQ0K PiArDQo+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfZHluZl9tZXRhZGF0 YV9yZWdpc3RlciwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyhpbnQgb2Zmc2V0LCB1aW50NjRf dCBmbGFnKSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQob2Zmc2V0KTsNCj4gKwlydGVf dHJhY2VfcG9pbnRfZW1pdF91NjQoZmxhZyk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lO VCgNCj4gKwlydGVfZmxvd190cmFjZV90dW5uZWxfZGVjYXBfc2V0LA0KPiArCVJURV9UUkFDRV9Q T0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCXN0cnVjdCBydGVfZmxvd190dW5uZWwg KnR1bm5lbCwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqKmFjdGlvbnMsDQo+ICsJCXVp bnQzMl90ICpudW1fb2ZfYWN0aW9ucywgaW50IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih0dW5uZWwpOw0K PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9wdHIobnVtX29mX2FjdGlvbnMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2lu dChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ICsJcnRlX2Zsb3dfdHJh Y2VfdHVubmVsX21hdGNoLA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRf aWQsDQo+ICsJCXN0cnVjdCBydGVfZmxvd190dW5uZWwgKnR1bm5lbCwNCj4gKwkJc3RydWN0IHJ0 ZV9mbG93X2l0ZW0gKippdGVtcywNCj4gKwkJdWludDMyX3QgKm51bV9vZl9pdGVtcywgaW50IHJl dCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X3B0cih0dW5uZWwpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihp dGVtcyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKG51bV9vZl9pdGVtcyk7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9Q T0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV90dW5uZWxfYWN0aW9uX2RlY2FwX3JlbGVhc2UsDQo+ ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gKwkJc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbiAqYWN0aW9ucywNCj4gKwkJdWludDMyX3QgbnVtX29mX2FjdGlvbnMsIGlu dCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVf dHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9ucyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf dTMyKG51bV9vZl9hY3Rpb25zKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsN Cj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX3R1bm5l bF9pdGVtX3JlbGVhc2UsDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9p ZCwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X2l0ZW0gKml0ZW1zLA0KPiArCQl1aW50MzJfdCBudW1f b2ZfaXRlbXMsIGludCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lk KTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaXRlbXMpOw0KPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3UzMihudW1fb2ZfaXRlbXMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2lu dChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlQoDQoNClBhcnQgb2YgdGhlIGRh dGFwYXRoIHNob3VsZCBiZSBfRlANCg0KPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVf Y3JlYXRlLA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJ CWNvbnN0IHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rpb25fY29uZiAqY29uZiwNCj4gKwkJY29u c3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uLA0KPiArCQlzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX2hhbmRsZSAqaGFuZGxlKSwNCj4gKwl1aW50MzJfdCBpbmdyZXNzID0gY29uZi0+aW5n cmVzczsNCj4gKwl1aW50MzJfdCBlZ3Jlc3MgPSBjb25mLT5lZ3Jlc3M7DQo+ICsJdWludDMyX3Qg dHJhbnNmZXIgPSBjb25mLT50cmFuc2ZlcjsNCj4gKw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoY29uZik7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKGluZ3Jlc3MpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UzMihlZ3Jlc3MpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMih0cmFuc2Zlcik7 DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbik7DQo+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfaW50KGFjdGlvbi0+dHlwZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRy KGhhbmRsZSk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCg0KUGFydCBvZiB0aGUg ZGF0YXBhdGggc2hvdWxkIGJlIF9GUA0KPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVf ZGVzdHJveSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiAr CQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqaGFuZGxlLCBpbnQgcmV0KSwNCj4gKwly dGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfcHRyKGhhbmRsZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICsp DQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV9mbGV4X2l0ZW1f Y3JlYXRlLA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJ CWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtX2ZsZXhfY29uZiAqY29uZiwNCj4gKwkJc3RydWN0 IHJ0ZV9mbG93X2l0ZW1fZmxleF9oYW5kbGUgKmhhbmRsZSksDQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb25mKTsN Cj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQoY29uZi0+dHVubmVsKTsNCj4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9pbnQoY29uZi0+bmJfc2FtcGxlcyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfaW50KGNvbmYtPm5iX2lucHV0cyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50 KGNvbmYtPm5iX291dHB1dHMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihoYW5kbGUp Ow0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfZmxl eF9pdGVtX3JlbGVhc2UsDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9p ZCwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZmxleF9oYW5kbGUgKmhhbmRsZSwg aW50IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X3B0cihoYW5kbGUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlQoDQo+ICsJcnRlX2Zsb3df dHJhY2VfaW5mb19nZXQsDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9p ZCwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X3BvcnRfaW5mbyAqcG9ydF9pbmZvLA0KPiArCQlzdHJ1 Y3QgcnRlX2Zsb3dfcXVldWVfaW5mbyAqcXVldWVfaW5mbywgaW50IHJldCksDQo+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0 cihwb3J0X2luZm8pOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0X2luZm8tPm1h eF9uYl9xdWV1ZXMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0X2luZm8tPm1h eF9uYl9jb3VudGVycyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHBvcnRfaW5mby0+ bWF4X25iX2FnaW5nX29iamVjdHMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0 X2luZm8tPm1heF9uYl9tZXRlcnMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihwb3J0 X2luZm8tPm1heF9uYl9jb25uX3RyYWNrcyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMy KHBvcnRfaW5mby0+c3VwcG9ydGVkX2ZsYWdzKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIocXVldWVfaW5mbyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICsp DQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV9jb25maWd1cmUs DQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gKwkJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X3BvcnRfYXR0ciAqcG9ydF9hdHRyLA0KPiArCQl1aW50MTZfdCBuYl9x dWV1ZSwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X3F1ZXVlX2F0dHIgKipxdWV1ZV9hdHRy LCBpbnQgcmV0KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHBvcnRfYXR0cik7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTMyKHBvcnRfYXR0ci0+bmJfY291bnRlcnMpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UzMihwb3J0X2F0dHItPm5iX2FnaW5nX29iamVjdHMpOw0KPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3UzMihwb3J0X2F0dHItPm5iX21ldGVycyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTMyKHBvcnRfYXR0ci0+bmJfY29ubl90cmFja3MpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UzMihwb3J0X2F0dHItPmZsYWdzKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYo bmJfcXVldWUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihxdWV1ZV9hdHRyKTsNCj4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNF X1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX3BhdHRlcm5fdGVtcGxhdGVfY3JlYXRlLA0KPiAr CVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCWNvbnN0IHN0cnVj dCBydGVfZmxvd19wYXR0ZXJuX3RlbXBsYXRlX2F0dHINCj4gKnRlbXBsYXRlX2F0dHIsDQo+ICsJ CWNvbnN0IHN0cnVjdCBydGVfZmxvd19pdGVtICpwYXR0ZXJuLA0KPiArCQl2b2lkICp0bXBsYXRl KSwNCj4gKwl1aW50MzJfdCByZWxheGVkX21hdGNoaW5nID0gdGVtcGxhdGVfYXR0ci0+cmVsYXhl ZF9tYXRjaGluZzsNCj4gKwl1aW50MzJfdCBpbmdyZXNzID0gdGVtcGxhdGVfYXR0ci0+aW5ncmVz czsNCj4gKwl1aW50MzJfdCBlZ3Jlc3MgPSB0ZW1wbGF0ZV9hdHRyLT5lZ3Jlc3M7DQo+ICsJdWlu dDMyX3QgdHJhbnNmZXIgPSB0ZW1wbGF0ZV9hdHRyLT50cmFuc2ZlcjsNCj4gKw0KPiArCXJ0ZV90 cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9w dHIodGVtcGxhdGVfYXR0cik7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHJlbGF4ZWRf bWF0Y2hpbmcpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihpbmdyZXNzKTsNCj4gKwly dGVfdHJhY2VfcG9pbnRfZW1pdF91MzIoZWdyZXNzKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1p dF91MzIodHJhbnNmZXIpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihwYXR0ZXJuKTsN Cj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodG1wbGF0ZSk7DQo+ICspDQo+ICsNCj4gK1JU RV9UUkFDRV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV9wYXR0ZXJuX3RlbXBsYXRlX2Rlc3Ry b3ksDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwNCj4gKwkJc3Ry dWN0IHJ0ZV9mbG93X3BhdHRlcm5fdGVtcGxhdGUgKnBhdHRlcm5fdGVtcGxhdGUsIGludA0KPiBy ZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF9wdHIocGF0dGVybl90ZW1wbGF0ZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVf Zmxvd190cmFjZV9hY3Rpb25zX3RlbXBsYXRlX2NyZWF0ZSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRf QVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u c190ZW1wbGF0ZV9hdHRyICp0ZW1wbGF0ZV9hdHRyLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zs b3dfYWN0aW9uICphY3Rpb25zLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICpt YXNrcywNCj4gKwkJdm9pZCAqdG1wbGF0ZSksDQo+ICsJdWludDMyX3QgaW5ncmVzcyA9IHRlbXBs YXRlX2F0dHItPmluZ3Jlc3M7DQo+ICsJdWludDMyX3QgZWdyZXNzID0gdGVtcGxhdGVfYXR0ci0+ ZWdyZXNzOw0KPiArCXVpbnQzMl90IHRyYW5zZmVyID0gdGVtcGxhdGVfYXR0ci0+dHJhbnNmZXI7 DQo+ICsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3Ry YWNlX3BvaW50X2VtaXRfcHRyKHRlbXBsYXRlX2F0dHIpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3UzMihpbmdyZXNzKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIoZWdyZXNzKTsN Cj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIodHJhbnNmZXIpOw0KPiArCXJ0ZV90cmFjZV9w b2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIobWFz a3MpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih0bXBsYXRlKTsNCj4gKykNCj4gKw0K PiArUlRFX1RSQUNFX1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVf ZGVzdHJveSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiAr CQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uc190ZW1wbGF0ZSAqYWN0aW9uc190ZW1wbGF0ZSwgaW50 DQo+IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zX3RlbXBsYXRlKTsNCj4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UKA0KPiAr CXJ0ZV9mbG93X3RyYWNlX3RlbXBsYXRlX3RhYmxlX2NyZWF0ZSwNCj4gKwlSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfdGVt cGxhdGVfdGFibGVfYXR0ciAqdGFibGVfYXR0ciwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X3BhdHRl cm5fdGVtcGxhdGUgKipwYXR0ZXJuX3RlbXBsYXRlcywNCj4gKwkJdWludDhfdCBuYl9wYXR0ZXJu X3RlbXBsYXRlcywNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbnNfdGVtcGxhdGUgKiphY3Rp b25zX3RlbXBsYXRlcywNCj4gKwkJdWludDhfdCBuYl9hY3Rpb25zX3RlbXBsYXRlcywNCj4gKwkJ c3RydWN0IHJ0ZV9mbG93X3RlbXBsYXRlX3RhYmxlICp0YWJsZSksDQo+ICsJcnRlX3RyYWNlX3Bv aW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih0YWJs ZV9hdHRyKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIodGFibGVfYXR0ci0+bmJfZmxv d3MpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihwYXR0ZXJuX3RlbXBsYXRlcyk7DQo+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTgobmJfcGF0dGVybl90ZW1wbGF0ZXMpOw0KPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zX3RlbXBsYXRlcyk7DQo+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfdTgobmJfYWN0aW9uc190ZW1wbGF0ZXMpOw0KPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3B0cih0YWJsZSk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwly dGVfZmxvd190cmFjZV90ZW1wbGF0ZV90YWJsZV9kZXN0cm95LA0KPiArCVJURV9UUkFDRV9QT0lO VF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCXN0cnVjdCBydGVfZmxvd190ZW1wbGF0ZV90 YWJsZSAqdGVtcGxhdGVfdGFibGUsIGludCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodGVtcGxhdGVfdGFi bGUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtS VEVfVFJBQ0VfUE9JTlQoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNfY3JlYXRlLA0KPiArCVJU RV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQzMl90IHF1ZXVlX2lkLA0K PiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqb3BfYXR0ciwNCj4gKwkJc3RydWN0 IHJ0ZV9mbG93X3RlbXBsYXRlX3RhYmxlICp0ZW1wbGF0ZV90YWJsZSwNCj4gKwkJY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2l0ZW0gKnBhdHRlcm4sDQo+ICsJCXVpbnQ4X3QgcGF0dGVybl90ZW1wbGF0 ZV9pbmRleCwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9ucywNCj4g KwkJdWludDhfdCBhY3Rpb25zX3RlbXBsYXRlX2luZGV4LA0KPiArCQl2b2lkICp1c2VyX2RhdGEs IHN0cnVjdCBydGVfZmxvdyAqZmxvdyksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTE2KHBv cnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UzMihxdWV1ZV9pZCk7DQo+ICsJcnRl X3RyYWNlX3BvaW50X2VtaXRfcHRyKG9wX2F0dHIpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3B0cih0ZW1wbGF0ZV90YWJsZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHBhdHRl cm4pOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3U4KHBhdHRlcm5fdGVtcGxhdGVfaW5kZXgp Ow0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihhY3Rpb25zKTsNCj4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF91OChhY3Rpb25zX3RlbXBsYXRlX2luZGV4KTsNCj4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9wdHIodXNlcl9kYXRhKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoZmxv dyk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVfZmxvd190cmFjZV9h c3luY19kZXN0cm95LA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQs IHVpbnQzMl90IHF1ZXVlX2lkLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAq b3BfYXR0ciwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93ICpmbG93LCB2b2lkICp1c2VyX2RhdGEsIGlu dCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVf dHJhY2VfcG9pbnRfZW1pdF91MzIocXVldWVfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3B0cihvcF9hdHRyKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoZmxvdyk7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKHVzZXJfZGF0YSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVf Zmxvd190cmFjZV9wdXNoLA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRf aWQsIHVpbnQzMl90IHF1ZXVlX2lkLCBpbnQNCj4gcmV0KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHF1ZXVlX2lk KTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRF X1RSQUNFX1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX3B1bGwsDQo+ICsJUlRFX1RSQUNFX1BP SU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ICsJCXN0cnVj dCBydGVfZmxvd19vcF9yZXN1bHQgKnJlcywgdWludDE2X3Qgbl9yZXMsIGludCByZXQpLA0KPiAr CXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF91MzIocXVldWVfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihyZXMpOw0K PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihuX3Jlcyk7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ICsNCj4gK1JURV9UUkFDRV9QT0lOVCgNCj4gKwlydGVf Zmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxlX2NyZWF0ZSwNCj4gKwlSVEVfVFJBQ0VfUE9J TlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gKwkJY29uc3Qg c3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKm9wX2F0dHIsDQo+ICsJCWNvbnN0IHN0cnVjdCBydGVf Zmxvd19pbmRpcl9hY3Rpb25fY29uZiAqaW5kaXJfYWN0aW9uX2NvbmYsDQo+ICsJCWNvbnN0IHN0 cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbiwNCj4gKwkJdm9pZCAqdXNlcl9kYXRhLCBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqaGFuZGxlKSwNCj4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKHF1ZXVlX2lk KTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIob3BfYXR0cik7DQo+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKGluZGlyX2FjdGlvbl9jb25mKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRf ZW1pdF9wdHIoYWN0aW9uKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIodXNlcl9kYXRh KTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoaGFuZGxlKTsNCj4gKykNCj4gKw0KPiAr UlRFX1RSQUNFX1BPSU5UKA0KPiArCXJ0ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVf ZGVzdHJveSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50 MzJfdCBxdWV1ZV9pZCwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKm9wX2F0 dHIsDQo+ICsJCXN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFuZGxlICphY3Rpb25faGFuZGxlLA0K PiArCQl2b2lkICp1c2VyX2RhdGEsIGludCByZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIocXVldWVfaWQpOw0K PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihvcF9hdHRyKTsNCj4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9wdHIoYWN0aW9uX2hhbmRsZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRy KHVzZXJfZGF0YSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICspDQo+ ICsNCj4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiAgfQ0KPiAgI2VuZGlmDQo+IGRpZmYgLS1naXQg YS9saWIvZXRoZGV2L3J0ZV9ldGhkZXZfdHJhY2VfZnAuaA0KPiBiL2xpYi9ldGhkZXYvcnRlX2V0 aGRldl90cmFjZV9mcC5oDQo+IGluZGV4IGQ0YjJlNGIzMTIuLmM1YjgwODNkZTIgMTAwNjQ0DQo+ IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldl90cmFjZV9mcC5oDQo+ICsrKyBiL2xpYi9ldGhk ZXYvcnRlX2V0aGRldl90cmFjZV9mcC5oDQo+IEBAIC02NDYsNiArNjQ2LDExOSBAQCBSVEVfVFJB Q0VfUE9JTlRfRlAoDQo+ICAJcnRlX3RyYWNlX3BvaW50X2VtaXRfaW50KHJldCk7DQo+ICApDQo+ IA0KPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0KPiArCXJ0ZV9mbG93X3RyYWNlX3F1ZXJ5LA0KPiAr CVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsIHN0cnVjdCBydGVfZmxvdyAq ZmxvdywNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9uLCB2b2lkICpk YXRhLCBpbnQgcmV0KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGZsb3cpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9l bWl0X3B0cihhY3Rpb24pOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChhY3Rpb24tPnR5 cGUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihkYXRhKTsNCj4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0K PiArCXJ0ZV9mbG93X3RyYWNlX2lzb2xhdGUsDQo+ICsJUlRFX1RSQUNFX1BPSU5UX0FSR1ModWlu dDE2X3QgcG9ydF9pZCwgaW50IHNldCwgaW50IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChzZXQpOw0KPiAr CXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0Vf UE9JTlRfRlAoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfZ2V0X3Jlc3RvcmVfaW5mbywNCj4gKwlSVEVf VFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiArCQlzdHJ1Y3QgcnRlX21idWYg Km0sIHN0cnVjdCBydGVfZmxvd19yZXN0b3JlX2luZm8gKmluZm8sDQo+ICsJCWludCByZXQpLA0K PiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9wdHIobSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGluZm8pOw0KPiAr CXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0Vf UE9JTlRfRlAoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfZ2V0X2FnZWRfZmxvd3MsDQo+ICsJUlRFX1RS QUNFX1BPSU5UX0FSR1ModWludDE2X3QgcG9ydF9pZCwgdm9pZCAqKmNvbnRleHRzLA0KPiArCQl1 aW50MzJfdCBuYl9jb250ZXh0cywgaW50IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRf dTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb250ZXh0cyk7DQo+ ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKG5iX2NvbnRleHRzKTsNCj4gKwlydGVfdHJhY2Vf cG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0K PiArCXJ0ZV9mbG93X3RyYWNlX2dldF9xX2FnZWRfZmxvd3MsDQo+ICsJUlRFX1RSQUNFX1BPSU5U X0FSR1ModWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsIHZvaWQNCj4gKipjb250 ZXh0cywNCj4gKwkJdWludDMyX3QgbmJfY29udGV4dHMsIGludCByZXQpLA0KPiArCXJ0ZV90cmFj ZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MzIo cXVldWVfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihjb250ZXh0cyk7DQo+ICsJ cnRlX3RyYWNlX3BvaW50X2VtaXRfdTMyKG5iX2NvbnRleHRzKTsNCj4gKwlydGVfdHJhY2VfcG9p bnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiArUlRFX1RSQUNFX1BPSU5UX0ZQKA0KPiAr CXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfdXBkYXRlLA0KPiArCVJURV9UUkFDRV9QT0lO VF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsDQo+ICsJCXN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFu ZGxlICpoYW5kbGUsDQo+ICsJCWNvbnN0IHZvaWQgKnVwZGF0ZSwgaW50IHJldCksDQo+ICsJcnRl X3RyYWNlX3BvaW50X2VtaXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3B0cihoYW5kbGUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cih1cGRhdGUpOw0KPiAr CXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtSVEVfVFJBQ0Vf UE9JTlRfRlAoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfYWN0aW9uX2hhbmRsZV9xdWVyeSwNCj4gKwlS VEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLA0KPiArCQljb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAqaGFuZGxlLA0KPiArCQl2b2lkICpkYXRhLCBpbnQgcmV0 KSwNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNl X3BvaW50X2VtaXRfcHRyKGhhbmRsZSk7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGRh dGEpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiArKQ0KPiArDQo+ICtS VEVfVFJBQ0VfUE9JTlRfRlAoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfcGlja190cmFuc2Zlcl9wcm94 eSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdA0K PiAqcHJveHlfcG9ydF9pZCwNCj4gKwkJaW50IHJldCksDQo+ICsJcnRlX3RyYWNlX3BvaW50X2Vt aXRfdTE2KHBvcnRfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0cihwcm94eV9wb3J0 X2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9pbnQocmV0KTsNCj4gKykNCj4gKw0KPiAr UlRFX1RSQUNFX1BPSU5UX0ZQKA0KPiArCXJ0ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5k bGVfdXBkYXRlLA0KPiArCVJURV9UUkFDRV9QT0lOVF9BUkdTKHVpbnQxNl90IHBvcnRfaWQsIHVp bnQzMl90IHF1ZXVlX2lkLA0KPiArCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqb3Bf YXR0ciwNCj4gKwkJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGUgKmFjdGlvbl9oYW5kbGUs DQo+ICsJCWNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqdXNlcl9kYXRhLCBpbnQgcmV0KSwNCj4g KwlydGVfdHJhY2VfcG9pbnRfZW1pdF91MTYocG9ydF9pZCk7DQo+ICsJcnRlX3RyYWNlX3BvaW50 X2VtaXRfdTMyKHF1ZXVlX2lkKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIob3BfYXR0 cik7DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGFjdGlvbl9oYW5kbGUpOw0KPiArCXJ0 ZV90cmFjZV9wb2ludF9lbWl0X3B0cih1cGRhdGUpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0 X3B0cih1c2VyX2RhdGEpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQpOw0KPiAr KQ0KPiArDQo+ICtSVEVfVFJBQ0VfUE9JTlRfRlAoDQo+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNf YWN0aW9uX2hhbmRsZV9xdWVyeSwNCj4gKwlSVEVfVFJBQ0VfUE9JTlRfQVJHUyh1aW50MTZfdCBw b3J0X2lkLCB1aW50MzJfdCBxdWV1ZV9pZCwNCj4gKwkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29w X2F0dHIgKm9wX2F0dHIsDQo+ICsJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25faGFuZGxl ICphY3Rpb25faGFuZGxlLA0KPiArCQl2b2lkICpkYXRhLCB2b2lkICp1c2VyX2RhdGEsIGludCBy ZXQpLA0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3UxNihwb3J0X2lkKTsNCj4gKwlydGVfdHJh Y2VfcG9pbnRfZW1pdF91MzIocXVldWVfaWQpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X3B0 cihvcF9hdHRyKTsNCj4gKwlydGVfdHJhY2VfcG9pbnRfZW1pdF9wdHIoYWN0aW9uX2hhbmRsZSk7 DQo+ICsJcnRlX3RyYWNlX3BvaW50X2VtaXRfcHRyKGRhdGEpOw0KPiArCXJ0ZV90cmFjZV9wb2lu dF9lbWl0X3B0cih1c2VyX2RhdGEpOw0KPiArCXJ0ZV90cmFjZV9wb2ludF9lbWl0X2ludChyZXQp Ow0KPiArKQ0KPiArDQo+ICAjaWZkZWYgX19jcGx1c3BsdXMNCj4gIH0NCj4gICNlbmRpZg0KPiBk aWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZmxvdy5jIGIvbGliL2V0aGRldi9ydGVfZmxvdy5j DQo+IGluZGV4IDdkMGMyNDM2NmMuLjQzZjEzZjc5YjQgMTAwNjQ0DQo+IC0tLSBhL2xpYi9ldGhk ZXYvcnRlX2Zsb3cuYw0KPiArKysgYi9saWIvZXRoZGV2L3J0ZV9mbG93LmMNCj4gQEAgLTEzLDYg KzEzLDggQEANCj4gICNpbmNsdWRlIDxydGVfc3RyaW5nX2Zucy5oPg0KPiAgI2luY2x1ZGUgPHJ0 ZV9tYnVmX2R5bi5oPg0KPiAgI2luY2x1ZGUgInJ0ZV9ldGhkZXYuaCINCj4gKyNpbmNsdWRlICJy dGVfZXRoZGV2X3RyYWNlLmgiDQo+ICsjaW5jbHVkZSAicnRlX2V0aGRldl90cmFjZV9mcC5oIg0K PiAgI2luY2x1ZGUgInJ0ZV9mbG93X2RyaXZlci5oIg0KPiAgI2luY2x1ZGUgInJ0ZV9mbG93Lmgi DQo+IA0KPiBAQCAtMjc2LDYgKzI3OCw5IEBAIHJ0ZV9mbG93X2R5bmZfbWV0YWRhdGFfcmVnaXN0 ZXIodm9pZCkNCj4gIAkJZ290byBlcnJvcjsNCj4gIAlydGVfZmxvd19keW5mX21ldGFkYXRhX29m ZnMgPSBvZmZzZXQ7DQo+ICAJcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9tYXNrID0gUlRFX0JJVDY0 KGZsYWcpOw0KPiArDQo+ICsJcnRlX2Zsb3dfdHJhY2VfZHluZl9tZXRhZGF0YV9yZWdpc3Rlcihv ZmZzZXQsIFJURV9CSVQ2NChmbGFnKSk7DQo+ICsNCj4gIAlyZXR1cm4gMDsNCj4gDQo+ICBlcnJv cjoNCj4gQEAgLTM2Miw3ICszNjcsMTEgQEAgcnRlX2Zsb3dfdmFsaWRhdGUodWludDE2X3QgcG9y dF9pZCwNCj4gIAkJZnRzX2VudGVyKGRldik7DQo+ICAJCXJldCA9IG9wcy0+dmFsaWRhdGUoZGV2 LCBhdHRyLCBwYXR0ZXJuLCBhY3Rpb25zLCBlcnJvcik7DQo+ICAJCWZ0c19leGl0KGRldik7DQo+ IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKwkJcmV0ID0gZmxv d19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwkJcnRlX2Zsb3dfdHJhY2VfdmFs aWRhdGUocG9ydF9pZCwgYXR0ciwgcGF0dGVybiwgYWN0aW9ucywgcmV0KTsNCj4gKw0KPiArCQly ZXR1cm4gcmV0Ow0KPiAgCX0NCj4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBF Tk9TWVMsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiBAQCAt Mzg5LDYgKzM5OCw5IEBAIHJ0ZV9mbG93X2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCQlm dHNfZXhpdChkZXYpOw0KPiAgCQlpZiAoZmxvdyA9PSBOVUxMKQ0KPiAgCQkJZmxvd19lcnIocG9y dF9pZCwgLXJ0ZV9lcnJubywgZXJyb3IpOw0KPiArDQo+ICsJCXJ0ZV9mbG93X3RyYWNlX2NyZWF0 ZShwb3J0X2lkLCBhdHRyLCBwYXR0ZXJuLCBhY3Rpb25zLCBmbG93KTsNCj4gKw0KPiAgCQlyZXR1 cm4gZmxvdzsNCj4gIAl9DQo+ICAJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ IFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+IEBAIC00MTIsNyArNDI0LDExIEBA IHJ0ZV9mbG93X2Rlc3Ryb3kodWludDE2X3QgcG9ydF9pZCwNCj4gIAkJZnRzX2VudGVyKGRldik7 DQo+ICAJCXJldCA9IG9wcy0+ZGVzdHJveShkZXYsIGZsb3csIGVycm9yKTsNCj4gIAkJZnRzX2V4 aXQoZGV2KTsNCj4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiAr CQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxv d190cmFjZV9kZXN0cm95KHBvcnRfaWQsIGZsb3csIHJldCk7DQo+ICsNCj4gKwkJcmV0dXJuIHJl dDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PU1lTLA0K PiAgCQkJCSAgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gQEAgLTQzNCw3ICs0 NTAsMTEgQEAgcnRlX2Zsb3dfZmx1c2godWludDE2X3QgcG9ydF9pZCwNCj4gIAkJZnRzX2VudGVy KGRldik7DQo+ICAJCXJldCA9IG9wcy0+Zmx1c2goZGV2LCBlcnJvcik7DQo+ICAJCWZ0c19leGl0 KGRldik7DQo+IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKwkJ cmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwkJcnRlX2Zsb3df dHJhY2VfZmx1c2gocG9ydF9pZCwgcmV0KTsNCj4gKw0KPiArCQlyZXR1cm4gcmV0Ow0KPiAgCX0N Cj4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ICAJCQkJICBS VEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiBAQCAtNDU5LDcgKzQ3OSwxMSBAQCBy dGVfZmxvd19xdWVyeSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCQlmdHNfZW50ZXIoZGV2KTsNCj4g IAkJcmV0ID0gb3BzLT5xdWVyeShkZXYsIGZsb3csIGFjdGlvbiwgZGF0YSwgZXJyb3IpOw0KPiAg CQlmdHNfZXhpdChkZXYpOw0KPiAtCQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJv cik7DQo+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArDQo+ICsJ CXJ0ZV9mbG93X3RyYWNlX3F1ZXJ5KHBvcnRfaWQsIGZsb3csIGFjdGlvbiwgZGF0YSwgcmV0KTsN Cj4gKw0KPiArCQlyZXR1cm4gcmV0Ow0KPiAgCX0NCj4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jf c2V0KGVycm9yLCBFTk9TWVMsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lG SUVELA0KPiBAQCAtNDgyLDcgKzUwNiwxMSBAQCBydGVfZmxvd19pc29sYXRlKHVpbnQxNl90IHBv cnRfaWQsDQo+ICAJCWZ0c19lbnRlcihkZXYpOw0KPiAgCQlyZXQgPSBvcHMtPmlzb2xhdGUoZGV2 LCBzZXQsIGVycm9yKTsNCj4gIAkJZnRzX2V4aXQoZGV2KTsNCj4gLQkJcmV0dXJuIGZsb3dfZXJy KHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQs IGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFjZV9pc29sYXRlKHBvcnRfaWQsIHNldCwg cmV0KTsNCj4gKw0KPiArCQlyZXR1cm4gcmV0Ow0KPiAgCX0NCj4gIAlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0KGVycm9yLCBFTk9TWVMsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VO U1BFQ0lGSUVELA0KPiBAQCAtMTAwMyw2ICsxMDMxLDggQEAgcnRlX2Zsb3dfY29udihlbnVtIHJ0 ZV9mbG93X2NvbnZfb3Agb3AsDQo+ICAJICAgICAgY29uc3Qgdm9pZCAqc3JjLA0KPiAgCSAgICAg IHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpDQo+ICB7DQo+ICsJcnRlX2Zsb3dfdHJhY2Vf Y29udihvcCwgZHN0LCBzaXplLCBzcmMpOw0KPiArDQo+ICAJc3dpdGNoIChvcCkgew0KPiAgCQlj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYXR0ciAqYXR0cjsNCj4gDQo+IEBAIC0xMDg3LDYgKzExMTcs OSBAQCBydGVfZmxvd19jb3B5KHN0cnVjdCBydGVfZmxvd19kZXNjICpkZXNjLCBzaXplX3QNCj4g bGVuLA0KPiAgCQkJLmFjdGlvbnMgPSBkc3Rfc2l6ZSA/IGRzdC0+YWN0aW9ucyA6IE5VTEwsDQo+ ICAJCSAgIH0pLA0KPiAgCQkgICBsZW4gPiBzaXplb2YoKmRlc2MpID8gc2l6ZW9mKCpkZXNjKSA6 IGxlbik7DQo+ICsNCj4gKwlydGVfZmxvd190cmFjZV9jb3B5KGRlc2MsIGxlbiwgYXR0ciwgaXRl bXMsIGFjdGlvbnMsIHJldCk7DQo+ICsNCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gQEAg LTExMjUsNyArMTE1OCwxMSBAQCBydGVfZmxvd19nZXRfYWdlZF9mbG93cyh1aW50MTZfdCBwb3J0 X2lkLCB2b2lkDQo+ICoqY29udGV4dHMsDQo+ICAJCWZ0c19lbnRlcihkZXYpOw0KPiAgCQlyZXQg PSBvcHMtPmdldF9hZ2VkX2Zsb3dzKGRldiwgY29udGV4dHMsIG5iX2NvbnRleHRzLA0KPiBlcnJv cik7DQo+ICAJCWZ0c19leGl0KGRldik7DQo+IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCBy ZXQsIGVycm9yKTsNCj4gKwkJcmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ ICsNCj4gKwkJcnRlX2Zsb3dfdHJhY2VfZ2V0X2FnZWRfZmxvd3MocG9ydF9pZCwgY29udGV4dHMs DQo+IG5iX2NvbnRleHRzLCByZXQpOw0KPiArDQo+ICsJCXJldHVybiByZXQ7DQo+ICAJfQ0KPiAg CXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ICAJCQkJICBSVEVf RkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiBAQCAtMTE0Nyw3ICsxMTg0LDEyIEBAIHJ0 ZV9mbG93X2dldF9xX2FnZWRfZmxvd3ModWludDE2X3QgcG9ydF9pZCwNCj4gdWludDMyX3QgcXVl dWVfaWQsIHZvaWQgKipjb250ZXh0cywNCj4gIAkJcmV0ID0gb3BzLT5nZXRfcV9hZ2VkX2Zsb3dz KGRldiwgcXVldWVfaWQsIGNvbnRleHRzLA0KPiAgCQkJCQkgICAgbmJfY29udGV4dHMsIGVycm9y KTsNCj4gIAkJZnRzX2V4aXQoZGV2KTsNCj4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJl dCwgZXJyb3IpOw0KPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4g Kw0KPiArCQlydGVfZmxvd190cmFjZV9nZXRfcV9hZ2VkX2Zsb3dzKHBvcnRfaWQsIHF1ZXVlX2lk LA0KPiBjb250ZXh0cywNCj4gKwkJCQkJCW5iX2NvbnRleHRzLCByZXQpOw0KPiArDQo+ICsJCXJl dHVybiByZXQ7DQo+ICAJfQ0KPiAgCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVO T1RTVVAsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiBAQCAt MTE3NSw2ICsxMjE3LDkgQEAgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZV9jcmVhdGUodWludDE2X3Qg cG9ydF9pZCwNCj4gIAkJCQkJICAgY29uZiwgYWN0aW9uLCBlcnJvcik7DQo+ICAJaWYgKGhhbmRs ZSA9PSBOVUxMKQ0KPiAgCQlmbG93X2Vycihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ ICsNCj4gKwlydGVfZmxvd190cmFjZV9hY3Rpb25faGFuZGxlX2NyZWF0ZShwb3J0X2lkLCBjb25m LCBhY3Rpb24sIGhhbmRsZSk7DQo+ICsNCj4gIAlyZXR1cm4gaGFuZGxlOw0KPiAgfQ0KPiANCj4g QEAgLTExOTQsNyArMTIzOSwxMSBAQCBydGVfZmxvd19hY3Rpb25faGFuZGxlX2Rlc3Ryb3kodWlu dDE2X3QNCj4gcG9ydF9pZCwNCj4gIAkJCQkJICBOVUxMLCBydGVfc3RyZXJyb3IoRU5PU1lTKSk7 DQo+ICAJcmV0ID0gb3BzLT5hY3Rpb25faGFuZGxlX2Rlc3Ryb3koJnJ0ZV9ldGhfZGV2aWNlc1tw b3J0X2lkXSwNCj4gIAkJCQkJIGhhbmRsZSwgZXJyb3IpOw0KPiAtCXJldHVybiBmbG93X2Vycihw b3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKwlyZXQgPSBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVy cm9yKTsNCj4gKw0KPiArCXJ0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfZGVzdHJveShwb3J0 X2lkLCBoYW5kbGUsIHJldCk7DQo+ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIGlu dA0KPiBAQCAtMTIxNCw3ICsxMjYzLDExIEBAIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfdXBkYXRl KHVpbnQxNl90IHBvcnRfaWQsDQo+ICAJCQkJCSAgTlVMTCwgcnRlX3N0cmVycm9yKEVOT1NZUykp Ow0KPiAgCXJldCA9IG9wcy0+YWN0aW9uX2hhbmRsZV91cGRhdGUoJnJ0ZV9ldGhfZGV2aWNlc1tw b3J0X2lkXSwNCj4gaGFuZGxlLA0KPiAgCQkJCQl1cGRhdGUsIGVycm9yKTsNCj4gLQlyZXR1cm4g Zmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsJcmV0ID0gZmxvd19lcnIocG9ydF9p ZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwlydGVfZmxvd190cmFjZV9hY3Rpb25faGFuZGxlX3Vw ZGF0ZShwb3J0X2lkLCBoYW5kbGUsIHVwZGF0ZSwNCj4gcmV0KTsNCj4gKw0KPiArCXJldHVybiBy ZXQ7DQo+ICB9DQo+IA0KPiAgaW50DQo+IEBAIC0xMjM0LDcgKzEyODcsMTEgQEAgcnRlX2Zsb3df YWN0aW9uX2hhbmRsZV9xdWVyeSh1aW50MTZfdCBwb3J0X2lkLA0KPiAgCQkJCQkgIE5VTEwsIHJ0 ZV9zdHJlcnJvcihFTk9TWVMpKTsNCj4gIAlyZXQgPSBvcHMtPmFjdGlvbl9oYW5kbGVfcXVlcnko JnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXSwgaGFuZGxlLA0KPiAgCQkJCSAgICAgICBkYXRhLCBl cnJvcik7DQo+IC0JcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArCXJl dCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArDQo+ICsJcnRlX2Zsb3dfdHJh Y2VfYWN0aW9uX2hhbmRsZV9xdWVyeShwb3J0X2lkLCBoYW5kbGUsIGRhdGEsIHJldCk7DQo+ICsN Cj4gKwlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIGludA0KPiBAQCAtMTI0NiwxNCArMTMwMywy MCBAQCBydGVfZmxvd190dW5uZWxfZGVjYXBfc2V0KHVpbnQxNl90IHBvcnRfaWQsDQo+ICB7DQo+ ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0K PiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQocG9y dF9pZCwgZXJyb3IpOw0KPiArCWludCByZXQ7DQo+IA0KPiAgCWlmICh1bmxpa2VseSghb3BzKSkN Cj4gIAkJcmV0dXJuIC1ydGVfZXJybm87DQo+ICAJaWYgKGxpa2VseSghIW9wcy0+dHVubmVsX2Rl Y2FwX3NldCkpIHsNCj4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+IC0JCQkJb3BzLT50 dW5uZWxfZGVjYXBfc2V0KGRldiwgdHVubmVsLCBhY3Rpb25zLA0KPiAtCQkJCQkJICAgICAgbnVt X29mX2FjdGlvbnMsIGVycm9yKSwNCj4gLQkJCQllcnJvcik7DQo+ICsJCXJldCA9IGZsb3dfZXJy KHBvcnRfaWQsDQo+ICsJCQkgICAgICAgb3BzLT50dW5uZWxfZGVjYXBfc2V0KGRldiwgdHVubmVs LCBhY3Rpb25zLA0KPiArCQkJCQkJICAgICBudW1fb2ZfYWN0aW9ucywgZXJyb3IpLA0KPiArCQkJ ICAgICAgIGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFjZV90dW5uZWxfZGVjYXBfc2V0 KHBvcnRfaWQsIHR1bm5lbCwgYWN0aW9ucywNCj4gKwkJCQkJCW51bV9vZl9hY3Rpb25zLCByZXQp Ow0KPiArDQo+ICsJCXJldHVybiByZXQ7DQo+ICAJfQ0KPiAgCXJldHVybiBydGVfZmxvd19lcnJv cl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BF Q0lGSUVELA0KPiBAQCAtMTI2OSwxNCArMTMzMiwyMCBAQCBydGVfZmxvd190dW5uZWxfbWF0Y2go dWludDE2X3QgcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZy dGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAq b3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50IHJldDsNCj4g DQo+ICAJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gIAlp ZiAobGlrZWx5KCEhb3BzLT50dW5uZWxfbWF0Y2gpKSB7DQo+IC0JCXJldHVybiBmbG93X2Vycihw b3J0X2lkLA0KPiAtCQkJCW9wcy0+dHVubmVsX21hdGNoKGRldiwgdHVubmVsLCBpdGVtcywNCj4g LQkJCQkJCSAgbnVtX29mX2l0ZW1zLCBlcnJvciksDQo+IC0JCQkJZXJyb3IpOw0KPiArCQlyZXQg PSBmbG93X2Vycihwb3J0X2lkLA0KPiArCQkJICAgICAgIG9wcy0+dHVubmVsX21hdGNoKGRldiwg dHVubmVsLCBpdGVtcywNCj4gKwkJCQkJCSBudW1fb2ZfaXRlbXMsIGVycm9yKSwNCj4gKwkJCSAg ICAgICBlcnJvcik7DQo+ICsNCj4gKwkJcnRlX2Zsb3dfdHJhY2VfdHVubmVsX21hdGNoKHBvcnRf aWQsIHR1bm5lbCwgaXRlbXMsDQo+IG51bV9vZl9pdGVtcywNCj4gKwkJCQkJICAgIHJldCk7DQo+ ICsNCj4gKwkJcmV0dXJuIHJldDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3Nl dChlcnJvciwgRU5PVFNVUCwNCj4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJ RUQsDQo+IEBAIC0xMjkxLDE0ICsxMzYwLDE5IEBAIHJ0ZV9mbG93X2dldF9yZXN0b3JlX2luZm8o dWludDE2X3QgcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZy dGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAq b3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50IHJldDsNCj4g DQo+ICAJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gIAlp ZiAobGlrZWx5KCEhb3BzLT5nZXRfcmVzdG9yZV9pbmZvKSkgew0KPiAtCQlyZXR1cm4gZmxvd19l cnIocG9ydF9pZCwNCj4gLQkJCQlvcHMtPmdldF9yZXN0b3JlX2luZm8oZGV2LCBtLCByZXN0b3Jl X2luZm8sDQo+IC0JCQkJCQkgICAgICBlcnJvciksDQo+IC0JCQkJZXJyb3IpOw0KPiArCQlyZXQg PSBmbG93X2Vycihwb3J0X2lkLA0KPiArCQkJICAgICAgIG9wcy0+Z2V0X3Jlc3RvcmVfaW5mbyhk ZXYsIG0sIHJlc3RvcmVfaW5mbywNCj4gKwkJCQkJCSAgICAgZXJyb3IpLA0KPiArCQkJICAgICAg IGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFjZV9nZXRfcmVzdG9yZV9pbmZvKHBvcnRf aWQsIG0sIHJlc3RvcmVfaW5mbywNCj4gcmV0KTsNCj4gKw0KPiArCQlyZXR1cm4gcmV0Ow0KPiAg CX0NCj4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiAgCQkJ CSAgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gQEAgLTEzMTMsMTUgKzEzODcs MjEgQEAgcnRlX2Zsb3dfdHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlKHVpbnQxNl90DQo+IHBv cnRfaWQsDQo+ICB7DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZp Y2VzW3BvcnRfaWRdOw0KPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9m bG93X29wc19nZXQocG9ydF9pZCwgZXJyb3IpOw0KPiArCWludCByZXQ7DQo+IA0KPiAgCWlmICh1 bmxpa2VseSghb3BzKSkNCj4gIAkJcmV0dXJuIC1ydGVfZXJybm87DQo+ICAJaWYgKGxpa2VseSgh IW9wcy0+dHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlKSkgew0KPiAtCQlyZXR1cm4gZmxvd19l cnIocG9ydF9pZCwNCj4gLQkJCQlvcHMtPnR1bm5lbF9hY3Rpb25fZGVjYXBfcmVsZWFzZShkZXYs DQo+IGFjdGlvbnMsDQo+IC0NCj4gbnVtX29mX2FjdGlvbnMsDQo+IC0JCQkJCQkJCSBlcnJvciks DQo+IC0JCQkJZXJyb3IpOw0KPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiArCQkJICAg ICAgIG9wcy0+dHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNlKGRldiwgYWN0aW9ucywNCj4gKw0K PiAJbnVtX29mX2FjdGlvbnMsDQo+ICsJCQkJCQkJCWVycm9yKSwNCj4gKwkJCSAgICAgICBlcnJv cik7DQo+ICsNCj4gKwkJcnRlX2Zsb3dfdHJhY2VfdHVubmVsX2FjdGlvbl9kZWNhcF9yZWxlYXNl KHBvcnRfaWQsDQo+IGFjdGlvbnMsDQo+ICsJCQkJCQkJICAgbnVtX29mX2FjdGlvbnMsDQo+IHJl dCk7DQo+ICsNCj4gKwkJcmV0dXJuIHJldDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vy cm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5T UEVDSUZJRUQsDQo+IEBAIC0xMzM2LDE0ICsxNDE2LDE5IEBAIHJ0ZV9mbG93X3R1bm5lbF9pdGVt X3JlbGVhc2UodWludDE2X3QgcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9m bG93X29wcyAqb3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50 IHJldDsNCj4gDQo+ICAJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAgCQlyZXR1cm4gLXJ0ZV9lcnJu bzsNCj4gIAlpZiAobGlrZWx5KCEhb3BzLT50dW5uZWxfaXRlbV9yZWxlYXNlKSkgew0KPiAtCQly ZXR1cm4gZmxvd19lcnIocG9ydF9pZCwNCj4gLQkJCQlvcHMtPnR1bm5lbF9pdGVtX3JlbGVhc2Uo ZGV2LCBpdGVtcywNCj4gLQkJCQkJCQkgbnVtX29mX2l0ZW1zLA0KPiBlcnJvciksDQo+IC0JCQkJ ZXJyb3IpOw0KPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiArCQkJICAgICAgIG9wcy0+ dHVubmVsX2l0ZW1fcmVsZWFzZShkZXYsIGl0ZW1zLA0KPiArCQkJCQkJCW51bV9vZl9pdGVtcywN Cj4gZXJyb3IpLA0KPiArCQkJICAgICAgIGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFj ZV90dW5uZWxfaXRlbV9yZWxlYXNlKHBvcnRfaWQsIGl0ZW1zLA0KPiBudW1fb2ZfaXRlbXMsIHJl dCk7DQo+ICsNCj4gKwkJcmV0dXJuIHJldDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vy cm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5T UEVDSUZJRUQsDQo+IEBAIC0xMzU2LDYgKzE0NDEsNyBAQCBydGVfZmxvd19waWNrX3RyYW5zZmVy X3Byb3h5KHVpbnQxNl90IHBvcnRfaWQsDQo+IHVpbnQxNl90ICpwcm94eV9wb3J0X2lkLA0KPiAg ew0KPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQo cG9ydF9pZCwgZXJyb3IpOw0KPiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2Ow0KPiArCWludCBy ZXQ7DQo+IA0KPiAgCWlmICh1bmxpa2VseShvcHMgPT0gTlVMTCkpDQo+ICAJCXJldHVybiAtcnRl X2Vycm5vOw0KPiBAQCAtMTM2Nyw5ICsxNDUzLDEzIEBAIHJ0ZV9mbG93X3BpY2tfdHJhbnNmZXJf cHJveHkodWludDE2X3QgcG9ydF9pZCwNCj4gdWludDE2X3QgKnByb3h5X3BvcnRfaWQsDQo+IA0K PiAgCWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+IA0KPiAtCXJldHVybiBmbG93 X2Vycihwb3J0X2lkLA0KPiAtCQkJb3BzLT5waWNrX3RyYW5zZmVyX3Byb3h5KGRldiwgcHJveHlf cG9ydF9pZCwNCj4gZXJyb3IpLA0KPiAtCQkJZXJyb3IpOw0KPiArCXJldCA9IGZsb3dfZXJyKHBv cnRfaWQsDQo+ICsJCSAgICAgICBvcHMtPnBpY2tfdHJhbnNmZXJfcHJveHkoZGV2LCBwcm94eV9w b3J0X2lkLCBlcnJvciksDQo+ICsJCSAgICAgICBlcnJvcik7DQo+ICsNCj4gKwlydGVfZmxvd190 cmFjZV9waWNrX3RyYW5zZmVyX3Byb3h5KHBvcnRfaWQsIHByb3h5X3BvcnRfaWQsIHJldCk7DQo+ ICsNCj4gKwlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIHN0cnVjdCBydGVfZmxvd19pdGVtX2Zs ZXhfaGFuZGxlICoNCj4gQEAgLTEzOTIsNiArMTQ4Miw5IEBAIHJ0ZV9mbG93X2ZsZXhfaXRlbV9j cmVhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gIAloYW5kbGUgPSBvcHMtPmZsZXhfaXRlbV9jcmVh dGUoZGV2LCBjb25mLCBlcnJvcik7DQo+ICAJaWYgKGhhbmRsZSA9PSBOVUxMKQ0KPiAgCQlmbG93 X2Vycihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ICsNCj4gKwlydGVfZmxvd190cmFj ZV9mbGV4X2l0ZW1fY3JlYXRlKHBvcnRfaWQsIGNvbmYsIGhhbmRsZSk7DQo+ICsNCj4gIAlyZXR1 cm4gaGFuZGxlOw0KPiAgfQ0KPiANCj4gQEAgLTE0MDksNyArMTUwMiwxMSBAQCBydGVfZmxvd19m bGV4X2l0ZW1fcmVsZWFzZSh1aW50MTZfdCBwb3J0X2lkLA0KPiANCj4gUlRFX0ZMT1dfRVJST1Jf VFlQRV9VTlNQRUNJRklFRCwNCj4gIAkJCQkJICBOVUxMLCBydGVfc3RyZXJyb3IoRU5PVFNVUCkp Ow0KPiAgCXJldCA9IG9wcy0+ZmxleF9pdGVtX3JlbGVhc2UoZGV2LCBoYW5kbGUsIGVycm9yKTsN Cj4gLQlyZXR1cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsJcmV0ID0gZmxv d19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwlydGVfZmxvd190cmFjZV9mbGV4 X2l0ZW1fcmVsZWFzZShwb3J0X2lkLCBoYW5kbGUsIHJldCk7DQo+ICsNCj4gKwlyZXR1cm4gcmV0 Ow0KPiAgfQ0KPiANCj4gIGludA0KPiBAQCAtMTQyMCw2ICsxNTE3LDcgQEAgcnRlX2Zsb3dfaW5m b19nZXQodWludDE2X3QgcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93 X29wcyAqb3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50IHJl dDsNCj4gDQo+ICAJaWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsN Cj4gQEAgLTE0MzQsOSArMTUzMiwxMyBAQCBydGVfZmxvd19pbmZvX2dldCh1aW50MTZfdCBwb3J0 X2lkLA0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gIAl9DQo+ICAJaWYgKGxpa2VseSghIW9wcy0+ aW5mb19nZXQpKSB7DQo+IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLA0KPiAtCQkJCW9wcy0+ aW5mb19nZXQoZGV2LCBwb3J0X2luZm8sIHF1ZXVlX2luZm8sDQo+IGVycm9yKSwNCj4gLQkJCQll cnJvcik7DQo+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ICsJCQkgICAgICAgb3BzLT5p bmZvX2dldChkZXYsIHBvcnRfaW5mbywgcXVldWVfaW5mbywNCj4gZXJyb3IpLA0KPiArCQkJICAg ICAgIGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFjZV9pbmZvX2dldChwb3J0X2lkLCBw b3J0X2luZm8sIHF1ZXVlX2luZm8sDQo+IHJldCk7DQo+ICsNCj4gKwkJcmV0dXJuIHJldDsNCj4g IAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gIAkJ CQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsDQo+IEBAIC0xNDgwLDcgKzE1ODIs MTEgQEAgcnRlX2Zsb3dfY29uZmlndXJlKHVpbnQxNl90IHBvcnRfaWQsDQo+ICAJCXJldCA9IG9w cy0+Y29uZmlndXJlKGRldiwgcG9ydF9hdHRyLCBuYl9xdWV1ZSwgcXVldWVfYXR0ciwNCj4gZXJy b3IpOw0KPiAgCQlpZiAocmV0ID09IDApDQo+ICAJCQlkZXYtPmRhdGEtPmZsb3dfY29uZmlndXJl ZCA9IDE7DQo+IC0JCXJldHVybiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKwkJ cmV0ID0gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwkJcnRlX2Zsb3df dHJhY2VfY29uZmlndXJlKHBvcnRfaWQsIHBvcnRfYXR0ciwgbmJfcXVldWUsDQo+IHF1ZXVlX2F0 dHIsIHJldCk7DQo+ICsNCj4gKwkJcmV0dXJuIHJldDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9m bG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZ UEVfVU5TUEVDSUZJRUQsDQo+IEBAIC0xNTMxLDYgKzE2MzcsMTAgQEAgcnRlX2Zsb3dfcGF0dGVy bl90ZW1wbGF0ZV9jcmVhdGUodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gIAkJCQkJCQlwYXR0ZXJu LCBlcnJvcik7DQo+ICAJCWlmICh0ZW1wbGF0ZSA9PSBOVUxMKQ0KPiAgCQkJZmxvd19lcnIocG9y dF9pZCwgLXJ0ZV9lcnJubywgZXJyb3IpOw0KPiArDQo+ICsJCXJ0ZV9mbG93X3RyYWNlX3BhdHRl cm5fdGVtcGxhdGVfY3JlYXRlKHBvcnRfaWQsDQo+IHRlbXBsYXRlX2F0dHIsDQo+ICsJCQkJCQkg ICAgICAgcGF0dGVybiwgdGVtcGxhdGUpOw0KPiArDQo+ICAJCXJldHVybiB0ZW1wbGF0ZTsNCj4g IAl9DQo+ICAJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiBAQCAtMTU0Niwx NyArMTY1NiwyMyBAQCBydGVfZmxvd19wYXR0ZXJuX3RlbXBsYXRlX2Rlc3Ryb3kodWludDE2X3QN Cj4gcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiA9ICZydGVfZXRo X2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wcyAqb3BzID0g cnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50IHJldDsNCj4gDQo+ICAJ aWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gIAlpZiAodW5s aWtlbHkocGF0dGVybl90ZW1wbGF0ZSA9PSBOVUxMKSkNCj4gIAkJcmV0dXJuIDA7DQo+ICAJaWYg KGxpa2VseSghIW9wcy0+cGF0dGVybl90ZW1wbGF0ZV9kZXN0cm95KSkgew0KPiAtCQlyZXR1cm4g Zmxvd19lcnIocG9ydF9pZCwNCj4gLQkJCQlvcHMtPnBhdHRlcm5fdGVtcGxhdGVfZGVzdHJveShk ZXYsDQo+IC0JCQkJCQkJICAgICAgcGF0dGVybl90ZW1wbGF0ZSwNCj4gLQkJCQkJCQkgICAgICBl cnJvciksDQo+IC0JCQkJZXJyb3IpOw0KPiArCQlyZXQgPSBmbG93X2Vycihwb3J0X2lkLA0KPiAr CQkJICAgICAgIG9wcy0+cGF0dGVybl90ZW1wbGF0ZV9kZXN0cm95KGRldiwNCj4gKwkJCQkJCQkg ICAgIHBhdHRlcm5fdGVtcGxhdGUsDQo+ICsJCQkJCQkJICAgICBlcnJvciksDQo+ICsJCQkgICAg ICAgZXJyb3IpOw0KPiArDQo+ICsJCXJ0ZV9mbG93X3RyYWNlX3BhdHRlcm5fdGVtcGxhdGVfZGVz dHJveShwb3J0X2lkLA0KPiBwYXR0ZXJuX3RlbXBsYXRlLA0KPiArCQkJCQkJCXJldCk7DQo+ICsN Cj4gKwkJcmV0dXJuIHJldDsNCj4gIAl9DQo+ICAJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChl cnJvciwgRU5PVFNVUCwNCj4gIAkJCQkgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQs DQo+IEBAIC0xNjE3LDYgKzE3MzMsMTAgQEAgcnRlX2Zsb3dfYWN0aW9uc190ZW1wbGF0ZV9jcmVh dGUodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gIAkJCQkJCQlhY3Rpb25zLCBtYXNrcywNCj4gZXJy b3IpOw0KPiAgCQlpZiAodGVtcGxhdGUgPT0gTlVMTCkNCj4gIAkJCWZsb3dfZXJyKHBvcnRfaWQs IC1ydGVfZXJybm8sIGVycm9yKTsNCj4gKw0KPiArCQlydGVfZmxvd190cmFjZV9hY3Rpb25zX3Rl bXBsYXRlX2NyZWF0ZShwb3J0X2lkLA0KPiB0ZW1wbGF0ZV9hdHRyLCBhY3Rpb25zLA0KPiArCQkJ CQkJICAgICAgIG1hc2tzLCB0ZW1wbGF0ZSk7DQo+ICsNCj4gIAkJcmV0dXJuIHRlbXBsYXRlOw0K PiAgCX0NCj4gIAlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1RTVVAsDQo+IEBAIC0xNjMy LDE3ICsxNzUyLDIzIEBAIHJ0ZV9mbG93X2FjdGlvbnNfdGVtcGxhdGVfZGVzdHJveSh1aW50MTZf dA0KPiBwb3J0X2lkLA0KPiAgew0KPiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9l dGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMg PSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gKwlpbnQgcmV0Ow0KPiANCj4g IAlpZiAodW5saWtlbHkoIW9wcykpDQo+ICAJCXJldHVybiAtcnRlX2Vycm5vOw0KPiAgCWlmICh1 bmxpa2VseShhY3Rpb25zX3RlbXBsYXRlID09IE5VTEwpKQ0KPiAgCQlyZXR1cm4gMDsNCj4gIAlp ZiAobGlrZWx5KCEhb3BzLT5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3kpKSB7DQo+IC0JCXJldHVy biBmbG93X2Vycihwb3J0X2lkLA0KPiAtCQkJCW9wcy0+YWN0aW9uc190ZW1wbGF0ZV9kZXN0cm95 KGRldiwNCj4gLQkJCQkJCQkgICAgICBhY3Rpb25zX3RlbXBsYXRlLA0KPiAtCQkJCQkJCSAgICAg IGVycm9yKSwNCj4gLQkJCQllcnJvcik7DQo+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ ICsJCQkgICAgICAgb3BzLT5hY3Rpb25zX3RlbXBsYXRlX2Rlc3Ryb3koZGV2LA0KPiArCQkJCQkJ CSAgICAgYWN0aW9uc190ZW1wbGF0ZSwNCj4gKwkJCQkJCQkgICAgIGVycm9yKSwNCj4gKwkJCSAg ICAgICBlcnJvcik7DQo+ICsNCj4gKwkJcnRlX2Zsb3dfdHJhY2VfYWN0aW9uc190ZW1wbGF0ZV9k ZXN0cm95KHBvcnRfaWQsDQo+IGFjdGlvbnNfdGVtcGxhdGUsDQo+ICsJCQkJCQkJcmV0KTsNCj4g Kw0KPiArCQlyZXR1cm4gcmV0Ow0KPiAgCX0NCj4gIAlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0 KGVycm9yLCBFTk9UU1VQLA0KPiAgCQkJCSAgUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQRUNJRklF RCwNCj4gQEAgLTE3MDcsNiArMTgzMywxMyBAQCBydGVfZmxvd190ZW1wbGF0ZV90YWJsZV9jcmVh dGUodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gIAkJCQkJZXJyb3IpOw0KPiAgCQlpZiAodGFibGUg PT0gTlVMTCkNCj4gIAkJCWZsb3dfZXJyKHBvcnRfaWQsIC1ydGVfZXJybm8sIGVycm9yKTsNCj4g Kw0KPiArCQlydGVfZmxvd190cmFjZV90ZW1wbGF0ZV90YWJsZV9jcmVhdGUocG9ydF9pZCwgdGFi bGVfYXR0ciwNCj4gKwkJCQkJCSAgICAgcGF0dGVybl90ZW1wbGF0ZXMsDQo+ICsJCQkJCQkgICAg IG5iX3BhdHRlcm5fdGVtcGxhdGVzLA0KPiArCQkJCQkJICAgICBhY3Rpb25zX3RlbXBsYXRlcywN Cj4gKwkJCQkJCSAgICAgbmJfYWN0aW9uc190ZW1wbGF0ZXMsDQo+IHRhYmxlKTsNCj4gKw0KPiAg CQlyZXR1cm4gdGFibGU7DQo+ICAJfQ0KPiAgCXJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5P VFNVUCwNCj4gQEAgLTE3MjIsMTcgKzE4NTUsMjMgQEAgcnRlX2Zsb3dfdGVtcGxhdGVfdGFibGVf ZGVzdHJveSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiAgew0KPiAgCXN0cnVjdCBydGVfZXRoX2Rl diAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsNCj4gIAljb25zdCBzdHJ1Y3QgcnRl X2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBvcnRfaWQsIGVycm9yKTsNCj4gKwlp bnQgcmV0Ow0KPiANCj4gIAlpZiAodW5saWtlbHkoIW9wcykpDQo+ICAJCXJldHVybiAtcnRlX2Vy cm5vOw0KPiAgCWlmICh1bmxpa2VseSh0ZW1wbGF0ZV90YWJsZSA9PSBOVUxMKSkNCj4gIAkJcmV0 dXJuIDA7DQo+ICAJaWYgKGxpa2VseSghIW9wcy0+dGVtcGxhdGVfdGFibGVfZGVzdHJveSkpIHsN Cj4gLQkJcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+IC0JCQkJb3BzLT50ZW1wbGF0ZV90YWJs ZV9kZXN0cm95KGRldiwNCj4gLQkJCQkJCQkgICAgdGVtcGxhdGVfdGFibGUsDQo+IC0JCQkJCQkJ ICAgIGVycm9yKSwNCj4gLQkJCQllcnJvcik7DQo+ICsJCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQs DQo+ICsJCQkgICAgICAgb3BzLT50ZW1wbGF0ZV90YWJsZV9kZXN0cm95KGRldiwNCj4gKwkJCQkJ CQkgICB0ZW1wbGF0ZV90YWJsZSwNCj4gKwkJCQkJCQkgICBlcnJvciksDQo+ICsJCQkgICAgICAg ZXJyb3IpOw0KPiArDQo+ICsJCXJ0ZV9mbG93X3RyYWNlX3RlbXBsYXRlX3RhYmxlX2Rlc3Ryb3ko cG9ydF9pZCwNCj4gdGVtcGxhdGVfdGFibGUsDQo+ICsJCQkJCQkgICAgICByZXQpOw0KPiArDQo+ ICsJCXJldHVybiByZXQ7DQo+ICAJfQ0KPiAgCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJy b3IsIEVOT1RTVVAsDQo+ICAJCQkJICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0K PiBAQCAtMTc2Miw2ICsxOTAxLDExIEBAIHJ0ZV9mbG93X2FzeW5jX2NyZWF0ZSh1aW50MTZfdCBw b3J0X2lkLA0KPiAgCQkJCSB1c2VyX2RhdGEsIGVycm9yKTsNCj4gIAlpZiAoZmxvdyA9PSBOVUxM KQ0KPiAgCQlmbG93X2Vycihwb3J0X2lkLCAtcnRlX2Vycm5vLCBlcnJvcik7DQo+ICsNCj4gKwly dGVfZmxvd190cmFjZV9hc3luY19jcmVhdGUocG9ydF9pZCwgcXVldWVfaWQsIG9wX2F0dHIsDQo+ IHRlbXBsYXRlX3RhYmxlLA0KPiArCQkJCSAgICBwYXR0ZXJuLCBwYXR0ZXJuX3RlbXBsYXRlX2lu ZGV4LCBhY3Rpb25zLA0KPiArCQkJCSAgICBhY3Rpb25zX3RlbXBsYXRlX2luZGV4LCB1c2VyX2Rh dGEsIGZsb3cpOw0KPiArDQo+ICAJcmV0dXJuIGZsb3c7DQo+ICB9DQo+IA0KPiBAQCAtMTc3NSwx MiArMTkxOSwxOCBAQCBydGVfZmxvd19hc3luY19kZXN0cm95KHVpbnQxNl90IHBvcnRfaWQsDQo+ ICB7DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRf aWRdOw0KPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19n ZXQocG9ydF9pZCwgZXJyb3IpOw0KPiArCWludCByZXQ7DQo+IA0KPiAtCXJldHVybiBmbG93X2Vy cihwb3J0X2lkLA0KPiAtCQkJb3BzLT5hc3luY19kZXN0cm95KGRldiwgcXVldWVfaWQsDQo+IC0J CQkJCSAgIG9wX2F0dHIsIGZsb3csDQo+IC0JCQkJCSAgIHVzZXJfZGF0YSwgZXJyb3IpLA0KPiAt CQkJZXJyb3IpOw0KPiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsDQo+ICsJCSAgICAgICBvcHMt PmFzeW5jX2Rlc3Ryb3koZGV2LCBxdWV1ZV9pZCwNCj4gKwkJCQkJICBvcF9hdHRyLCBmbG93LA0K PiArCQkJCQkgIHVzZXJfZGF0YSwgZXJyb3IpLA0KPiArCQkgICAgICAgZXJyb3IpOw0KPiArDQo+ ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNfZGVzdHJveShwb3J0X2lkLCBxdWV1ZV9pZCwgb3BfYXR0 ciwgZmxvdywNCj4gKwkJCQkgICAgIHVzZXJfZGF0YSwgcmV0KTsNCj4gKw0KPiArCXJldHVybiBy ZXQ7DQo+ICB9DQo+IA0KPiAgaW50DQo+IEBAIC0xNzkwLDEwICsxOTQwLDE1IEBAIHJ0ZV9mbG93 X3B1c2godWludDE2X3QgcG9ydF9pZCwNCj4gIHsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ICAJY29uc3Qgc3RydWN0IHJ0ZV9mbG93 X29wcyAqb3BzID0gcnRlX2Zsb3dfb3BzX2dldChwb3J0X2lkLCBlcnJvcik7DQo+ICsJaW50IHJl dDsNCj4gDQo+IC0JcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsDQo+IC0JCQlvcHMtPnB1c2goZGV2 LCBxdWV1ZV9pZCwgZXJyb3IpLA0KPiAtCQkJZXJyb3IpOw0KPiArCXJldCA9IGZsb3dfZXJyKHBv cnRfaWQsDQo+ICsJCSAgICAgICBvcHMtPnB1c2goZGV2LCBxdWV1ZV9pZCwgZXJyb3IpLA0KPiAr CQkgICAgICAgZXJyb3IpOw0KPiArDQo+ICsJcnRlX2Zsb3dfdHJhY2VfcHVzaChwb3J0X2lkLCBx dWV1ZV9pZCwgcmV0KTsNCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICB9DQo+IA0KPiAgaW50DQo+ IEBAIC0xODA2LDkgKzE5NjEsMTQgQEAgcnRlX2Zsb3dfcHVsbCh1aW50MTZfdCBwb3J0X2lkLA0K PiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsN Cj4gIAljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVfZmxvd19vcHNfZ2V0KHBv cnRfaWQsIGVycm9yKTsNCj4gIAlpbnQgcmV0Ow0KPiArCWludCByYzsNCj4gDQo+ICAJcmV0ID0g b3BzLT5wdWxsKGRldiwgcXVldWVfaWQsIHJlcywgbl9yZXMsIGVycm9yKTsNCj4gLQlyZXR1cm4g cmV0ID8gcmV0IDogZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsJcmMgPSByZXQg PyByZXQgOiBmbG93X2Vycihwb3J0X2lkLCByZXQsIGVycm9yKTsNCj4gKw0KPiArCXJ0ZV9mbG93 X3RyYWNlX3B1bGwocG9ydF9pZCwgcXVldWVfaWQsIHJlcywgbl9yZXMsIHJjKTsNCj4gKw0KPiAr CXJldHVybiByYzsNCj4gIH0NCj4gDQo+ICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2hhbmRsZSAq DQo+IEBAIC0xODI4LDYgKzE5ODgsMTEgQEAgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9j cmVhdGUodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gIAkJCQkJICAgICBpbmRpcl9hY3Rpb25fY29u ZiwgYWN0aW9uLA0KPiB1c2VyX2RhdGEsIGVycm9yKTsNCj4gIAlpZiAoaGFuZGxlID09IE5VTEwp DQo+ICAJCWZsb3dfZXJyKHBvcnRfaWQsIC1ydGVfZXJybm8sIGVycm9yKTsNCj4gKw0KPiArCXJ0 ZV9mbG93X3RyYWNlX2FzeW5jX2FjdGlvbl9oYW5kbGVfY3JlYXRlKHBvcnRfaWQsIHF1ZXVlX2lk LA0KPiBvcF9hdHRyLA0KPiArCQkJCQkJICBpbmRpcl9hY3Rpb25fY29uZiwgYWN0aW9uLA0KPiAr CQkJCQkJICB1c2VyX2RhdGEsIGhhbmRsZSk7DQo+ICsNCj4gIAlyZXR1cm4gaGFuZGxlOw0KPiAg fQ0KPiANCj4gQEAgLTE4NDUsNyArMjAxMCwxMiBAQCBydGVfZmxvd19hc3luY19hY3Rpb25faGFu ZGxlX2Rlc3Ryb3kodWludDE2X3QNCj4gcG9ydF9pZCwNCj4gDQo+ICAJcmV0ID0gb3BzLT5hc3lu Y19hY3Rpb25faGFuZGxlX2Rlc3Ryb3koZGV2LCBxdWV1ZV9pZCwgb3BfYXR0ciwNCj4gIAkJCQkJ ICAgYWN0aW9uX2hhbmRsZSwgdXNlcl9kYXRhLCBlcnJvcik7DQo+IC0JcmV0dXJuIGZsb3dfZXJy KHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwg ZXJyb3IpOw0KPiArDQo+ICsJcnRlX2Zsb3dfdHJhY2VfYXN5bmNfYWN0aW9uX2hhbmRsZV9kZXN0 cm95KHBvcnRfaWQsIHF1ZXVlX2lkLA0KPiBvcF9hdHRyLA0KPiArCQkJCQkJICAgYWN0aW9uX2hh bmRsZSwgdXNlcl9kYXRhLA0KPiByZXQpOw0KPiArDQo+ICsJcmV0dXJuIHJldDsNCj4gIH0NCj4g DQo+ICBpbnQNCj4gQEAgLTE4NjMsNyArMjAzMywxMyBAQCBydGVfZmxvd19hc3luY19hY3Rpb25f aGFuZGxlX3VwZGF0ZSh1aW50MTZfdA0KPiBwb3J0X2lkLA0KPiANCj4gIAlyZXQgPSBvcHMtPmFz eW5jX2FjdGlvbl9oYW5kbGVfdXBkYXRlKGRldiwgcXVldWVfaWQsIG9wX2F0dHIsDQo+ICAJCQkJ CSAgYWN0aW9uX2hhbmRsZSwgdXBkYXRlLCB1c2VyX2RhdGEsDQo+IGVycm9yKTsNCj4gLQlyZXR1 cm4gZmxvd19lcnIocG9ydF9pZCwgcmV0LCBlcnJvcik7DQo+ICsJcmV0ID0gZmxvd19lcnIocG9y dF9pZCwgcmV0LCBlcnJvcik7DQo+ICsNCj4gKwlydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25f aGFuZGxlX3VwZGF0ZShwb3J0X2lkLCBxdWV1ZV9pZCwNCj4gb3BfYXR0ciwNCj4gKwkJCQkJCSAg YWN0aW9uX2hhbmRsZSwgdXBkYXRlLA0KPiArCQkJCQkJICB1c2VyX2RhdGEsIHJldCk7DQo+ICsN Cj4gKwlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gIGludA0KPiBAQCAtMTg4MSw1ICsyMDU3LDEx IEBAIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9oYW5kbGVfcXVlcnkodWludDE2X3QNCj4gcG9ydF9p ZCwNCj4gDQo+ICAJcmV0ID0gb3BzLT5hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5KGRldiwgcXVl dWVfaWQsIG9wX2F0dHIsDQo+ICAJCQkJCSAgYWN0aW9uX2hhbmRsZSwgZGF0YSwgdXNlcl9kYXRh LA0KPiBlcnJvcik7DQo+IC0JcmV0dXJuIGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0K PiArCXJldCA9IGZsb3dfZXJyKHBvcnRfaWQsIHJldCwgZXJyb3IpOw0KPiArDQo+ICsJcnRlX2Zs b3dfdHJhY2VfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVyeShwb3J0X2lkLCBxdWV1ZV9pZCwNCj4g b3BfYXR0ciwNCj4gKwkJCQkJCSBhY3Rpb25faGFuZGxlLCBkYXRhLA0KPiB1c2VyX2RhdGEsDQo+ ICsJCQkJCQkgcmV0KTsNCj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICB9DQo+IGRpZmYgLS1naXQg YS9saWIvZXRoZGV2L3ZlcnNpb24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiBpbmRl eCBjN2M2YmNkNDJiLi4wY2I4MjIyYWQ5IDEwMDY0NA0KPiAtLS0gYS9saWIvZXRoZGV2L3ZlcnNp b24ubWFwDQo+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gQEAgLTQ0NSw2ICs0NDUs NDMgQEAgRVhQRVJJTUVOVEFMIHsNCj4gIAlfX3J0ZV9ldGhkZXZfdHJhY2VfdWRwX3R1bm5lbF9w b3J0X2FkZDsNCj4gIAlfX3J0ZV9ldGhkZXZfdHJhY2VfdWRwX3R1bm5lbF9wb3J0X2RlbGV0ZTsN Cj4gIAlfX3J0ZV9ldGhkZXZfdHJhY2Vfdmxhbl9maWx0ZXI7DQo+ICsJX19ydGVfZmxvd190cmFj ZV9hY3Rpb25faGFuZGxlX2NyZWF0ZTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5k bGVfZGVzdHJveTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2FjdGlvbl9oYW5kbGVfcXVlcnk7DQo+ ICsJX19ydGVfZmxvd190cmFjZV9hY3Rpb25faGFuZGxlX3VwZGF0ZTsNCj4gKwlfX3J0ZV9mbG93 X3RyYWNlX2FjdGlvbnNfdGVtcGxhdGVfY3JlYXRlOw0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfYWN0 aW9uc190ZW1wbGF0ZV9kZXN0cm95Ow0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfYXN5bmNfYWN0aW9u X2hhbmRsZV9jcmVhdGU7DQo+ICsJX19ydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxl X2Rlc3Ryb3k7DQo+ICsJX19ydGVfZmxvd190cmFjZV9hc3luY19hY3Rpb25faGFuZGxlX3VwZGF0 ZTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2FzeW5jX2NyZWF0ZTsNCj4gKwlfX3J0ZV9mbG93X3Ry YWNlX2FzeW5jX2Rlc3Ryb3k7DQo+ICsJX19ydGVfZmxvd190cmFjZV9jb252Ow0KPiArCV9fcnRl X2Zsb3dfdHJhY2VfY29uZmlndXJlOw0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfY29weTsNCj4gKwlf X3J0ZV9mbG93X3RyYWNlX2NyZWF0ZTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2Rlc3Ryb3k7DQo+ ICsJX19ydGVfZmxvd190cmFjZV9keW5mX21ldGFkYXRhX3JlZ2lzdGVyOw0KPiArCV9fcnRlX2Zs b3dfdHJhY2VfZmxleF9pdGVtX2NyZWF0ZTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2ZsZXhfaXRl bV9yZWxlYXNlOw0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfZmx1c2g7DQo+ICsJX19ydGVfZmxvd190 cmFjZV9nZXRfYWdlZF9mbG93czsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX2dldF9yZXN0b3JlX2lu Zm87DQo+ICsJX19ydGVfZmxvd190cmFjZV9pbmZvX2dldDsNCj4gKwlfX3J0ZV9mbG93X3RyYWNl X2lzb2xhdGU7DQo+ICsJX19ydGVfZmxvd190cmFjZV9wYXR0ZXJuX3RlbXBsYXRlX2NyZWF0ZTsN Cj4gKwlfX3J0ZV9mbG93X3RyYWNlX3BhdHRlcm5fdGVtcGxhdGVfZGVzdHJveTsNCj4gKwlfX3J0 ZV9mbG93X3RyYWNlX3BpY2tfdHJhbnNmZXJfcHJveHk7DQo+ICsJX19ydGVfZmxvd190cmFjZV9w dXNoOw0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfcHVsbDsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX3F1 ZXJ5Ow0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfdGVtcGxhdGVfdGFibGVfY3JlYXRlOw0KPiArCV9f cnRlX2Zsb3dfdHJhY2VfdGVtcGxhdGVfdGFibGVfZGVzdHJveTsNCj4gKwlfX3J0ZV9mbG93X3Ry YWNlX3R1bm5lbF9hY3Rpb25fZGVjYXBfcmVsZWFzZTsNCj4gKwlfX3J0ZV9mbG93X3RyYWNlX3R1 bm5lbF9kZWNhcF9zZXQ7DQo+ICsJX19ydGVfZmxvd190cmFjZV90dW5uZWxfaXRlbV9yZWxlYXNl Ow0KPiArCV9fcnRlX2Zsb3dfdHJhY2VfdHVubmVsX21hdGNoOw0KPiArCV9fcnRlX2Zsb3dfdHJh Y2VfdmFsaWRhdGU7DQo+ICB9Ow0KPiANCj4gIElOVEVSTkFMIHsNCj4gLS0NCj4gMi4yNS4xDQoN Cg==