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 CA92745C91; Wed, 6 Nov 2024 09:31:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6F442427A9; Wed, 6 Nov 2024 09:31:57 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 3507E40265 for ; Wed, 6 Nov 2024 09:31:55 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4A64KO4Q027114 for ; Wed, 6 Nov 2024 00:31:53 -0800 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 42r1b20e2a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 06 Nov 2024 00:31:52 -0800 (PST) Received: from m0045849.ppops.net (m0045849.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 4A68Q4Tx032066 for ; Wed, 6 Nov 2024 00:31:52 -0800 Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2172.outbound.protection.outlook.com [104.47.56.172]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 42r1b20e21-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 06 Nov 2024 00:31:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xIGe1mvoBhIykpqFv7vZo6fx0Xm6/XsIA5EuRUmdtlZ0dU5G0FQA9Phz2q430QnAsqFHzL/hXkwVzmN97EsX2WtdXpLEheYZhcCZYrhnKf56znDYkDxCL+ZdrpL3HXgnXtugiIGFJqwxrZpsjq+ptDKfX6WD3qtKy5je9jzY+1DGT9SyU40AscKhA3VbM+OtYjUPx9ujG4MIi8wyFdqS7EkcbtW9aNBUGiKbhVDVEetlPrzLIBYDpy5boz9V3gs1LR/+ImSXQG4viSZj3DGSFm/GoujLtVzS06+MbLd+bFUu+x9MnmBcezeK8Uq8WDBvrPnMD2m0GgQNyIRSvFatoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=2D7OCjW7w774953IUI+fOoyXXhIKaxOXLkwv0ONQVd0=; b=KXe9hTjYqdOoTkN3qjpTV95mrZquM+tG1iVAZ2bWjFU9sPM7JV/iTK/cz96K/kjm9Od+zMI5lkQn7UqJX1ITLEg/5cqwRS91IGNdOycwYaxHapAETL/BJeingWkr52YUwQMbfLYCdNlxIchl1Ogr3kXZuH9d5/VzQ5Cz4Lvyl0Q4SGmbilwVChrT7Y9gMPhlNAO3tjgqDQbVzLz9gTL5FjVNqxgNPYgEGMZCxVYy6XklsbGhwP6iZK6YBqrFm2R43ZmMusZ7KVXaNXWa5QcOaEEvVRDmjy0X+0sdhwxcFs7ZS0S18xudRh8PUqOUVBHX/Ar9rWN9pj7qevB6o/gcsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2D7OCjW7w774953IUI+fOoyXXhIKaxOXLkwv0ONQVd0=; b=IltsxImkqC4FbQxX9SJef7zNj/C+I9lP30j486y1aqdZtDWzLTyye88ehTLyoniaTYdM55TkcDOHSqhvEk8JGJfF+FYrU7x+bV5kQuoQzhlQa6VLjC9VQRTB7JV1EY7Q2vJfGXrFN2zSFsgt+BNOyC3Oh1bPfEdG9HpsaXaVeNs= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by CH4PR18MB6308.namprd18.prod.outlook.com (2603:10b6:610:223::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.19; Wed, 6 Nov 2024 08:31:46 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d%4]) with mapi id 15.20.8114.028; Wed, 6 Nov 2024 08:31:46 +0000 From: Akhil Goyal To: Hanxiao Li , "dev@dpdk.org" CC: "wang.yong19@zte.com.cn" Subject: RE: [EXTERNAL] [PATCH v18 11/15] crypto/zsda: initialize cryptodev of zsda Thread-Topic: [EXTERNAL] [PATCH v18 11/15] crypto/zsda: initialize cryptodev of zsda Thread-Index: AQHbKRHrI2PhLLaFAkSoDEQ8BnGF6LKp8h6g Date: Wed, 6 Nov 2024 08:31:46 +0000 Message-ID: References: <20241028080919.2434886-2-li.hanxiao@zte.com.cn> <20241028081218.2435034-1-li.hanxiao@zte.com.cn> <20241028081218.2435034-10-li.hanxiao@zte.com.cn> In-Reply-To: <20241028081218.2435034-10-li.hanxiao@zte.com.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CH4PR18MB6308:EE_ x-ms-office365-filtering-correlation-id: f44c8eba-a4d5-42a9-5667-08dcfe3d73a1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?d2NjRnlYdnB2MjhicjZtYzRoMXVnOVJFWThHSjBrUWNRR1puTGVjakhSdFpa?= =?utf-8?B?WTFhUGNRMGhid2dWRFRTYXlNMUdvMEVPenkzSlVsLy9lZEZGQSs5MFk5SVZk?= =?utf-8?B?UXZjOHpQOVYrd3VWS1JlWStRMTl4eG9yWUNSdFNkd1BiTjVqcWFjbmE4TVox?= =?utf-8?B?ZnN0eFFlaEFvMklOWHdwQmY1ZUhoNzgzcmltbzhrUDRLb1MwaUkzekQ5U1BH?= =?utf-8?B?YkU3LzJrSWQ1dUp5SFRpNFp6U2xPUGpleEFQWU1rYXhYWUgwdmo2b1ZZcTc3?= =?utf-8?B?L2U1WG43cDVVeGx0SlJoT2xpN2x3c2ZqcXBaMmNNZmtJUUNhbisxV1UvajRS?= =?utf-8?B?cnI5TWEwL1AxbU5NajVKVlR1NGtLT2VySjRpaGhHUU5FcVRIQXVVOE8rNEpQ?= =?utf-8?B?a0ZEUlFZZkdKQ2FCdEtLWFJiSmhLQ2N1cHI5N2xYVFg0b0JZeDhDSVQ4aUdO?= =?utf-8?B?Wm1oNzlxZWpYdjlzbGR2bHQvajcyaENrTTRSWjZHczE1enN6UWl5eDdsZjBM?= =?utf-8?B?VzBzY0tBTUhvR0xQc2JTUXVYeVlpcDQ1RGtMTCtKbHdxNUQ1TFB0Nmd1M2Rl?= =?utf-8?B?RkU4R2dyUHRSUHhHcUhiekxjSExZdE9sa29wbTB3Zms2QU1odkEvdmVVWktk?= =?utf-8?B?cnJqRkJvYmZzK2MxTFZGdWdZUXJ5TDZGVUt2ZFZvTkIvQlpmQWJ1UmVkbEFm?= =?utf-8?B?aEhCdXZLdTF1T0Z6UUtRYktocm1UL0lBb0ZDdjlYdHlQdmdrVXNBWmxaTWN0?= =?utf-8?B?RzFvcVlJTE9ISnlmVHJYZmF2TEN5UEtyWS80d2hadTdyMG5COTZEOWx3ZXAr?= =?utf-8?B?Rmhnb215YkRhVWN0STFuak9kbVAyNlJBZDZZcll2VkI4WXl5U0tQWHlEaEpL?= =?utf-8?B?YXhBV2ZBNWtJdllVTjRnblV3bG8zWkJFOC9LZE10RDlWcXR2UXhuQmU4Uy9K?= =?utf-8?B?ZHJ2S1ZsWTF3MnVTajJ0RHorNDdldWhLSUFuRUM3RmtOTWR5OVNTNGNQMUxZ?= =?utf-8?B?MHc2L3JHVitPV1VoS3QzUWxVLzM0clMvd2FkSG5GNE04aDZSL3NBWTNnY0J0?= =?utf-8?B?TVc2Qzd6ZGNiMDNjM09sSDVNenhhYTYvOGgzZjdUZmhkV2gxQ3M4bGk0cE9R?= =?utf-8?B?aVhiUXRyd2FDaDJBTmh6Z2VNd2l3RWc2QVg1TWZaR3V6aG50RGovMXVuWjNh?= =?utf-8?B?M05iSHVnYmw3bGtmK2ZvNDU5TzBIVFhHZXRYQnRDenZua05ZRGJWaDNpeG11?= =?utf-8?B?UjZSbjhzMnYrWWY4TnVNMFpsYnUrRk1iQ0dMN3RwTXptTmFLZmozTCs1MmFU?= =?utf-8?B?Y1dlMzNPZERreWpHMnRlbThkQmRIelFUTXhvM21pZ1RQUFdwMlh5U3pUSGJR?= =?utf-8?B?NjlVdVI0Vm92OWNvM0M4SU1KMk00SGNRNElqSXVCb3pIZXNPa1Z3T3puMnJx?= =?utf-8?B?aHl6dUZwNFB6S1VtVlFxWnBXN0tKRU9TRTZrc3hMUzV3NGtzV1c3STB5SWlZ?= =?utf-8?B?emRYK3BpOTZYZEJRMlNlYWk3QmFJWnFZNHpXUlkxNGhMOWZxbGVGSWJZWVY4?= =?utf-8?B?MDVNbTRwZDFsdDM2V01vcG9GTmVWbUxJejhzZ0FySjhtMDlKWHhGQVcvVGNR?= =?utf-8?B?MHhCM2E0Uk50VlcvVDlla2tJcEliUTlWQmVGamdpci9nYXBObHdTYzRDaGtw?= =?utf-8?B?T0hxalZGNUEvVzFOU20rbXk5UTNGU0wwaUM5aFFNQzE0M2tnSFpObGhONFlj?= =?utf-8?B?QmxPS0lSc3VYb3oxU3BRN1Vac00vd3lHamZlRGpkNzhFYlJIN00zMk4xbmhs?= =?utf-8?B?NFdhTlZITDBqenVjWTRRQT09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Wk8wTUhGTE5ySXY0QUQ2MlJJUFJEVTQ5NTUrNnBvYUdqZmdYcDBIUEhrV2Zk?= =?utf-8?B?T3VQK3Z5aHdmaDVnemRuc0JRSWp2WWxINS94M2VYODYrUlZHUGk4VVlkZHJq?= =?utf-8?B?UkdPYzZOU0YxZ2tPYlBNeHIzMCtrazN1WHVMMC9GNnY4RHBqa0REdU5kVWdM?= =?utf-8?B?NFhNUWJJQkhWcklGY05XR3AwcHpIUnlLaEIyK20xeHV5eERqN3BtVnJhaUVB?= =?utf-8?B?THJuU29RNFB3aDFjN052cSt2VWFLdDhJbmRPWUVLNHd1VDFqVk01Y25HalBQ?= =?utf-8?B?SXpuZjZNQTExdzJoOTQ4bXVNY01BTTNtUE5ZNXhlYnM4eCtxeHJ4UVluQVl6?= =?utf-8?B?QkwyWHN6UmlFcFhDTVk3OUNoS1c3N0ZETjBvNnlIek1WbDZrcFZscmJmUVM1?= =?utf-8?B?TWhhd1JNRU04QmphdHl6R09TYk1HZUdKMzZzT0J6VmxHLzZkTUxncjl1WEtP?= =?utf-8?B?dHhuZnRHU3dtTTdPcEVoK0NVVVdXUFJtbGhiWG5RVXZoYS81QXNhVm42YS9o?= =?utf-8?B?MXozQm15Uk1Ld3NuOXA5cmdtK3kxM1U3aTBBU2M2Z3NWMG14M2JGYkcyQytW?= =?utf-8?B?R3hnUlpGeVZxQ2kzN1hYTnVrZ3JUYUFzeGxrMGFNUEwrb1hxSmdNaCtLVVBS?= =?utf-8?B?dEVvU3NwNUhMSm5kK0xEOXYzbnBEYVRFOG9McTlYQlJoa0UvYUt0TXh4NFpu?= =?utf-8?B?d29xbWVsWkJzS0xSeVRYaUpSajZBQzFreHFyRjh2VWJoUk1SR01VRURZdmNu?= =?utf-8?B?TnZwNDlPSXdzK2J0TWR3eWdxSHpSWUZKODQ3c1owMHlqcE9ad0hsU1pTdlNR?= =?utf-8?B?QkdJcklKYi9ScDZOMXN3aEwxYThsZkxGWDRyNDRqaFhiKzlOQ3pOa01IbnNN?= =?utf-8?B?MVRRSXZQdG1YQmFVcUczMlNFc1RCQkRKSTRYcGdjaURiQW1Obmp0QnV6T08x?= =?utf-8?B?NGZXb0VRK292Z2hOYjFOd1dIOHFPelRlNHkrTHZIM2JVOEtadmdwWE1Oc2FK?= =?utf-8?B?VFZxdStJR3lUY1kyRWE2Nk0rVEtDemxBZmlFK2xTd1RlRmk3Y1RLdVhEVWZL?= =?utf-8?B?YzRnaXFuNU1TNWVHZy9sa2hGMkQwdlg4aHpXRVJza00zYldkUmpvbWxxY0ho?= =?utf-8?B?UzRkOXRQZmwrVEdCZWFRbGxjWitmam9DZ3JpUzlKTGI3YnV3MW5pbUgyN3FJ?= =?utf-8?B?TkpxclpGYjdDazkwblBhUk54WHpMbnBJUktXWGRsams1aEhsbzZIOURKbnRR?= =?utf-8?B?OXlkL3J5V1czQzFBOGM4VnVVSEVFanA1dUk4Zk5yZkQrdVNRc3M2alpRZE1h?= =?utf-8?B?QXZPUUNVU0dYeVVUK2ZrTW5pUGYxdFczbWJpNXhFM3FGU2tnZVFDVXZjdzF2?= =?utf-8?B?SkdYNUxDVmd1SE9za01YRmtoc0dZd0FjazFwZ0JqdVlSRm83S3Q2QTc4UFMz?= =?utf-8?B?eHhya0F5dVNZQnA1T2o4c1FvUHA5OURyRitTR0ZxSGNDNlZtUjdKQ05iODBz?= =?utf-8?B?NFBYZk5zV1NKU0J0Zy81K0l5ald2V1I3YmQ4U1FObkNFNnZyU0lwQkRzdTd0?= =?utf-8?B?YkJOdkY3WUtqMEpiTENrMkNzTkl2TFJieUVWbGM3cUhJMFdzUHVDTjM3bG1P?= =?utf-8?B?TmFkemdveGdsODcyejZXTVZXSWlPd2tpUlltaTNXSEdWY3RmcEF5aW02UDdG?= =?utf-8?B?N0ZEUVZoeEVzVFVrSTF6YWZLZUdBcGpIQ2hjS1BxYm5DUm15dFBidjFTUnFG?= =?utf-8?B?Z2lKdjhjK3RXLzRya3hSZVdoNmlMNzNiVVpaaUhITjM2OFQ2OThpYlVrNUo1?= =?utf-8?B?b1JPbG5sekhLS1ZKcXkzdUpnTmpLNW8zUjFqaGNOYXVvZHorMEFhMWhoUGsv?= =?utf-8?B?MXhRRTBYdUpnZFdPaTJLNzcyNW8vNTlHQ3lBd2lwalpXOFdhaEowRlhZclBy?= =?utf-8?B?aUJIOVIvNDYrYXJ2bXR6b1pXR2QvZE52dzBXWG90eEhSY2JYNWhmc25KNllY?= =?utf-8?B?aVh0NklqMTBEZFV4WW1ycEMzdVZ4Q3YzaTlMYkhmUHNvMEhPMjJ3dUEydjI0?= =?utf-8?B?VTlyZEtFc1U2TGIrNlp4MG8ybnpNNStaRGpLT1g3S1VPdmNLa1I3SW1pN21s?= =?utf-8?Q?DUNg=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f44c8eba-a4d5-42a9-5667-08dcfe3d73a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2024 08:31:46.5561 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: frsoqYwA1ljNuOn3ILDutmbJSFz+OnKp4TIdrECSjxgy48mLE+gfGsch3hxKptNV/7paxwqZRywKc4nWeYncEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH4PR18MB6308 X-Proofpoint-ORIG-GUID: eiWYgbZWwpKtnjXbvlIDMqUW4KDBhUGd X-Proofpoint-GUID: uIQlGHZHswIA9-DlFtA-Rcsf6jCI78v0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01 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 PiBJbml0aWFsaXplIGNyeXB0b2RldiBvZiB6c2RhIGFuZCBhZGQgY2FwYWJpbGl0aWVzLg0KPiAN Cj4gU2lnbmVkLW9mZi1ieTogSGFueGlhbyBMaSA8bGkuaGFueGlhb0B6dGUuY29tLmNuPg0KPiAt LS0NCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg Kw0KPiAgZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2ZlYXR1cmVzL3pzZGEuaW5pICAgICB8ICA0NCAr Kw0KPiAgZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3pzZGEucnN0ICAgICAgICAgICAgICB8ICAyMiAr DQo+ICBkb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzI0XzExLnJzdCAgICAgIHwgICA1ICsN Cj4gIGRyaXZlcnMvY29tbW9uL3pzZGEvbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgMTQgKy0N Cj4gIGRyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fY2FwYWJpbGl0aWVzLmggfCAxMTEgKysr KysNCj4gIGRyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmMgICAgICAgICAgfCA0MzQg KysrKysrKysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1k LmggICAgICAgICAgfCAxMDUgKysrKysNCj4gIDggZmlsZXMgY2hhbmdlZCwgNzM1IGluc2VydGlv bnMoKyksIDEgZGVsZXRpb24oLSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2NyeXB0 by96c2RhL3pzZGFfc3ltX2NhcGFiaWxpdGllcy5oDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9jcnlwdG8venNkYS96c2RhX3N5bV9wbWQuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmgNCj4gDQo+IGRpZmYgLS1naXQgYS9NQUlO VEFJTkVSUyBiL01BSU5UQUlORVJTDQo+IGluZGV4IGNhZDgwYjY2ZWYuLmZhZTY0YWU2ODAgMTAw NjQ0DQo+IC0tLSBhL01BSU5UQUlORVJTDQo+ICsrKyBiL01BSU5UQUlORVJTDQo+IEBAIC0xMjI0 LDYgKzEyMjQsNyBAQCBGOiBkb2MvZ3VpZGVzL2NyeXB0b2RldnMvZmVhdHVyZXMvdmlydGlvLmlu aQ0KPiAgWlRFIFN0b3JhZ2UgRGF0YSBBY2NlbGVyYXRvcihaU0RBKQ0KPiAgTTogSGFueGlhbyBM aSA8bGkuaGFueGlhb0B6dGUuY29tLmNuPg0KPiAgRjogZHJpdmVycy9jb21tb24venNkYS8NCj4g K0Y6IGRyaXZlcnMvY29tcHJlc3MvenNkYS8NCg0KQ29tcHJlc3M/DQoNCj4gIEY6IGRvYy9ndWlk ZXMvY3J5cHRvZGV2cy96c2RhLnJzdA0KPiAgRjogZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2ZlYXR1 cmVzL3pzZGEuaW5pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2Zl YXR1cmVzL3pzZGEuaW5pDQo+IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL2ZlYXR1cmVzL3pzZGEu aW5pDQo+IGluZGV4IDg3YzEyNWI4YjYuLjM1Y2VmMWVkMTIgMTAwNjQ0DQo+IC0tLSBhL2RvYy9n dWlkZXMvY3J5cHRvZGV2cy9mZWF0dXJlcy96c2RhLmluaQ0KPiArKysgYi9kb2MvZ3VpZGVzL2Ny eXB0b2RldnMvZmVhdHVyZXMvenNkYS5pbmkNCj4gQEAgLTUsMyArNSw0NyBAQA0KPiAgOw0KPiAg W0ZlYXR1cmVzXQ0KPiAgSFcgQWNjZWxlcmF0ZWQgICAgICAgICA9IFkNCj4gK1N5bW1ldHJpYyBj cnlwdG8gICAgICAgPSBZDQo+ICtQcm90b2NvbCBvZmZsb2FkICAgICAgID0gWQ0KPiArSW4gUGxh Y2UgU0dMICAgICAgICAgICA9IFkNCj4gK09PUCBTR0wgSW4gU0dMIE91dCAgICAgPSBZDQo+ICtP T1AgU0dMIEluIExCICBPdXQgICAgID0gWQ0KPiArT09QIExCICBJbiBTR0wgT3V0ICAgICA9IFkN Cj4gK09PUCBMQiAgSW4gTEIgIE91dCAgICAgPSBZDQo+ICtEaWdlc3QgZW5jcnlwdGVkICAgICAg ID0gWQ0KPiArU3ltIHJhdyBkYXRhIHBhdGggQVBJICA9IFkNCg0KSSBkb27igJl0IHNlZSBjb2Rl IGZvciByYXcgZGF0YSBwYXRoLg0KRXZlbiBkaWdlc3QgZW5jcnlwdGVkLg0KUHJvdG9jb2wgb2Zm bG9hZCBpcyBhbHNvIG5vdCB0aGVyZS4NCg0KVXBkYXRlIHRvIGZlYXR1cmUgbGlzdCBzaG91bGQg YmUgaW4gc2FtZSBwYXRjaCBhcyB0aGUgZmVhdHVyZSBmbGFnIGlzIGFkZGVkIGluIGNvZGUuIA0K SSBzZWUgYSBsb3Qgb2YgbWlzbWF0Y2hlcyBpbiB0aGUgZmxhZ3Mgc3VwcG9ydGVkLg0KSSBzZWUg dGhhdCBzY2F0dGVyIGdhdGhlciBjb2RlIGlzIGFsc28gYWRkZWQgaW4gbGF0ZXIgcGF0Y2ggYXMg d2VsbC4NCg0KDQo+ICsNCj4gKzsNCj4gKzsgU3VwcG9ydGVkIGNyeXB0byBhbGdvcml0aG1zIG9m IHRoZSAnenNkYScgY3J5cHRvIGRyaXZlci4NCj4gKzsNCj4gK1tDaXBoZXJdDQo+ICtBRVMgWFRT ICgxMjgpICA9IFkNCj4gK0FFUyBYVFMgKDI1NikgID0gWQ0KPiArU000IFhUUyAgICAgICAgPSBZ DQo+ICs7DQo+ICs7IFN1cHBvcnRlZCBhdXRoZW50aWNhdGlvbiBhbGdvcml0aG1zIG9mIHRoZSAn enNkYScgY3J5cHRvIGRyaXZlci4NCj4gKzsNCj4gK1tBdXRoXQ0KPiArU0hBMSAgICAgICAgID0g WQ0KPiArU0hBMjI0ICAgICAgID0gWQ0KPiArU0hBMjU2ICAgICAgID0gWQ0KPiArU0hBMzg0ICAg ICAgID0gWQ0KPiArU0hBNTEyICAgICAgID0gWQ0KPiArU00zICAgICAgICAgID0gWQ0KPiArDQo+ ICs7DQo+ICs7IFN1cHBvcnRlZCBBRUFEIGFsZ29yaXRobXMgb2YgdGhlICd6c2RhJyBjcnlwdG8g ZHJpdmVyLg0KPiArOw0KPiArW0FFQURdDQo+ICsNCj4gKw0KPiArOw0KPiArOyBTdXBwb3J0ZWQg QXN5bW1ldHJpYyBhbGdvcml0aG1zIG9mIHRoZSAnenNkYScgY3J5cHRvIGRyaXZlci4NCj4gKzsN Cj4gK1tBc3ltbWV0cmljXQ0KPiArDQo+ICs7DQo+ICs7IFN1cHBvcnRlZCBPcGVyYXRpbmcgc3lz dGVtcyBvZiB0aGUgJ3pzZGEnIGNyeXB0byBkcml2ZXIuDQo+ICs7DQo+ICtbT1NdDQo+ICtMaW51 eCA9IFkNCj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy96c2RhLnJzdCBiL2Rv Yy9ndWlkZXMvY3J5cHRvZGV2cy96c2RhLnJzdA0KPiBpbmRleCAwMmUzMGQ0ZmM3Li4yNGJmNDg0 NGUzIDEwMDY0NA0KPiAtLS0gYS9kb2MvZ3VpZGVzL2NyeXB0b2RldnMvenNkYS5yc3QNCj4gKysr IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZzL3pzZGEucnN0DQo+IEBAIC0xOSwxMSArMTksMzMgQEAg c3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBoYXJkd2FyZSBhY2NlbGVyYXRvciBkZXZpY2VzOg0K PiAgRmVhdHVyZXMNCj4gIH5+fn5+fn5+DQo+IA0KPiArVGhlIFpTREEgU1lNIFBNRCBoYXMgc3Vw cG9ydCBmb3I6DQo+ICsNCj4gK0NpcGhlciBhbGdvcml0aG1zOg0KPiArDQo+ICsqIGBgUlRFX0NS WVBUT19DSVBIRVJfQUVTX1hUU2BgDQo+ICsqIGBgUlRFX0NSWVBUT19DSVBIRVJfU000X1hUU2Bg DQo+ICsNCj4gK0hhc2ggYWxnb3JpdGhtczoNCj4gKw0KPiArKiBgYFJURV9DUllQVE9fQVVUSF9T SEExYGANCj4gKyogYGBSVEVfQ1JZUFRPX0FVVEhfU0hBMjI0YGANCj4gKyogYGBSVEVfQ1JZUFRP X0FVVEhfU0hBMjU2YGANCj4gKyogYGBSVEVfQ1JZUFRPX0FVVEhfU0hBMzg0YGANCj4gKyogYGBS VEVfQ1JZUFRPX0FVVEhfU0hBNTEyYGANCj4gKyogYGBSVEVfQ1JZUFRPX0FVVEhfU00zYGANCj4g DQo+IA0KPiAgTGltaXRhdGlvbnMNCj4gIH5+fn5+fn5+fn5+DQo+IA0KPiArKiBPbmx5IHN1cHBv cnRzIHRoZSBzZXNzaW9uLW9yaWVudGVkIEFQSSBpbXBsZW1lbnRhdGlvbiAoc2Vzc2lvbi1sZXNz IEFQSXMgYXJlDQo+IG5vdCBzdXBwb3J0ZWQpLg0KPiArKiBObyBCU0Qgc3VwcG9ydCBhcyBCU0Qg WlNEQSBrZXJuZWwgZHJpdmVyIG5vdCBhdmFpbGFibGUuDQo+ICsNCj4gKyogUXVldWUtcGFpcnMg YXJlIHRocmVhZC1zYWZlIG9uIEludGVsIENQVXMgYnV0IFF1ZXVlcyBhcmUgbm90ICh0aGF0IGlz LCB3aXRoaW4NCj4gYSBzaW5nbGUNCj4gKyAgcXVldWUtcGFpciBhbGwgZW5xdWV1ZXMgdG8gdGhl IFRYIHF1ZXVlIG11c3QgYmUgZG9uZSBmcm9tIG9uZSB0aHJlYWQgYW5kIGFsbA0KPiBkZXF1ZXVl cw0KPiArICBmcm9tIHRoZSBSWCBxdWV1ZSBtdXN0IGJlIGRvbmUgZnJvbSBvbmUgdGhyZWFkLCBi dXQgZW5xdWV1ZXMgYW5kIGRlcXVldWVzDQo+IG1heSBiZSBkb25lDQo+ICsgIGluIGRpZmZlcmVu dCB0aHJlYWRzLikNCj4gDQo+IA0KPiAgLi4gX2J1aWxkaW5nX3pzZGE6DQo+IGRpZmYgLS1naXQg YS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzI0XzExLnJzdA0KPiBiL2RvYy9ndWlkZXMv cmVsX25vdGVzL3JlbGVhc2VfMjRfMTEucnN0DQo+IGluZGV4IDU4M2U1MDlhNDUuLmY1Y2FkMTlh YzIgMTAwNjQ0DQo+IC0tLSBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjRfMTEucnN0 DQo+ICsrKyBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjRfMTEucnN0DQo+IEBAIC0z MSw2ICszMSwxMSBAQCBOZXcgRmVhdHVyZXMNCj4gDQo+ICAgICAgU2VlIHRoZSA6ZG9jOmAuLi9j b21wcmVzc2RldnMvenNkYWAgZ3VpZGUgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgbmV3IGRyaXZl ci4NCj4gDQo+ICsgICogQWRkZWQgYSBuZXcgY3J5cHRvIGRyaXZlciBmb3IgWlNEQSBkZXZpY2Vz IHRvIHN1cHBvcnQNCj4gKyAgICBkaWZmZXJlbnQgYWxnb3JpdGhtIG9mIGVuY3J5cHRpb24sIGRl Y3J5cHRpb24gYW5kIGhhc2guDQo+ICsNCj4gKyAgICBTZWUgdGhlIDpkb2M6YC4uL2NyeXB0b2Rl dnMvenNkYWAgZ3VpZGUgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgbmV3IGRyaXZlci4NCj4gKw0K PiAgLi4gVGhpcyBzZWN0aW9uIHNob3VsZCBjb250YWluIG5ldyBmZWF0dXJlcyBhZGRlZCBpbiB0 aGlzIHJlbGVhc2UuDQo+ICAgICBTYW1wbGUgZm9ybWF0Og0KPiANCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvY29tbW9uL3pzZGEvbWVzb24uYnVpbGQNCj4gYi9kcml2ZXJzL2NvbW1vbi96c2RhL21l c29uLmJ1aWxkDQo+IGluZGV4IDRkMjQ5NTFjZGQuLjEwZjk5MjA3NjIgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvY29tbW9uL3pzZGEvbWVzb24uYnVpbGQNCj4gKysrIGIvZHJpdmVycy9jb21tb24v enNkYS9tZXNvbi5idWlsZA0KPiBAQCAtNyw3ICs3LDcgQEAgaWYgaXNfd2luZG93cw0KPiAgICAg IHN1YmRpcl9kb25lKCkNCj4gIGVuZGlmDQo+IA0KPiAtZGVwcyArPSBbJ2J1c19wY2knLCAnbWJ1 ZicsICdjb21wcmVzc2RldiddDQo+ICtkZXBzICs9IFsnYnVzX3BjaScsICdtYnVmJywgJ2NvbXBy ZXNzZGV2JywgJ2NyeXByb2RldiddDQoNCidjcnlwcm9kZXYnIHR5cG8/Pz8NCg0KPiAgc291cmNl cyArPSBmaWxlcygNCj4gICAgICAgICAgJ3pzZGFfbG9ncy5jJywNCj4gICAgICAgICAgJ3pzZGFf Y29tbW9uLmMnLA0KPiBAQCAtMjQsMyArMjQsMTUgQEAgaWYgenNkYV9jb21wcmVzcw0KPiAgICAg ICAgICBzb3VyY2VzICs9IGZpbGVzKGpvaW5fcGF0aHMoenNkYV9jb21wcmVzc19yZWxwYXRoLCBm KSkNCj4gICAgICBlbmRmb3JlYWNoDQo+ICBlbmRpZg0KPiArDQo+ICt6c2RhX2NyeXB0byA9IHRy dWUNCj4gK3pzZGFfY3J5cHRvX3BhdGggPSAnY3J5cHRvL3pzZGEnDQo+ICt6c2RhX2NyeXB0b19y ZWxwYXRoID0gJy4uLy4uLycgKyB6c2RhX2NyeXB0b19wYXRoDQo+ICtpZiB6c2RhX2NyeXB0bw0K PiArICAgIGxpYmNyeXB0byA9IGRlcGVuZGVuY3koJ2xpYmNyeXB0bycsIHJlcXVpcmVkOiBmYWxz ZSwgbWV0aG9kOiAncGtnLWNvbmZpZycpDQo+ICsgICAgZm9yZWFjaCBmOiBbJ3pzZGFfc3ltX3Bt ZC5jJ10NCj4gKyAgICAgICAgc291cmNlcyArPSBmaWxlcyhqb2luX3BhdGhzKHpzZGFfY3J5cHRv X3JlbHBhdGgsIGYpKQ0KPiArICAgIGVuZGZvcmVhY2gNCj4gKyAgICBleHRfZGVwcyArPSBsaWJj cnlwdG8NCj4gKyAgICBjZmxhZ3MgKz0gWyctREJVSUxEX1pTREFfU1lNJ10NCj4gK2VuZGlmDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX2NhcGFiaWxpdGllcy5o DQo+IGIvZHJpdmVycy9jcnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRpZXMuaA0KPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwLi5kOWU2ZGM0YjQwDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy9jcnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRp ZXMuaA0KPiBAQCAtMCwwICsxLDExMSBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJpZ2h0KGMpIDIwMjQgWlRFIENvcnBvcmF0aW9uDQo+ ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfWlNEQV9TWU1fQ0FQQUJJTElUSUVTX0hfDQo+ICsjZGVm aW5lIF9aU0RBX1NZTV9DQVBBQklMSVRJRVNfSF8NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVj dCBydGVfY3J5cHRvZGV2X2NhcGFiaWxpdGllcyB6c2RhX2NyeXB0b19zeW1fY2FwYWJpbGl0aWVz W10gPSB7DQo+ICsgICAgey8qIFNIQTEgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19P UF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gey54Zm9ybV90eXBlID0gUlRF X0NSWVBUT19TWU1fWEZPUk1fQVVUSCwNCj4gKyAgICAgICAgICAgIHsgLmF1dGggPSB7DQo+ICsg ICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0FVVEhfU0hBMSwNCj4gKyAgICAgICAg ICAgICAgICAuYmxvY2tfc2l6ZSA9IDY0LA0KPiArICAgICAgICAgICAgICAgIC5rZXlfc2l6ZSA9 IHsubWluID0gMCwgLm1heCA9IDAsIC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAg ICAuZGlnZXN0X3NpemUgPSB7Lm1pbiA9IDIwLCAubWF4ID0gMjAsIC5pbmNyZW1lbnQgPSAyfSwN Cj4gKyAgICAgICAgICAgICAgICAuaXZfc2l6ZSA9IHswfSB9LA0KPiArICAgICAgICAgICAgfSAg ICB9LA0KPiArICAgICAgICB9DQo+ICsgICAgfSwNCj4gKyAgICB7LyogU0hBMjI0ICovDQo+ICsg ICAgICAgIC5vcCA9IFJURV9DUllQVE9fT1BfVFlQRV9TWU1NRVRSSUMsDQo+ICsgICAgICAgIHsg LnN5bSA9IHsNCj4gKyAgICAgICAgICAgIC54Zm9ybV90eXBlID0gUlRFX0NSWVBUT19TWU1fWEZP Uk1fQVVUSCwNCj4gKyAgICAgICAgICAgIHsgLmF1dGggPSB7DQo+ICsgICAgICAgICAgICAgICAg LmFsZ28gPSBSVEVfQ1JZUFRPX0FVVEhfU0hBMjI0LA0KPiArICAgICAgICAgICAgICAgIC5ibG9j a19zaXplID0gNjQsDQo+ICsgICAgICAgICAgICAgICAgLmtleV9zaXplID0gey5taW4gPSAwLCAu bWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAgICAgIC5kaWdlc3Rfc2l6 ZSA9IHsubWluID0gMjgsIC5tYXggPSAyOCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAg ICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ICsgICAgICAgICAgICB9ICAgIH0sDQo+ICsgICAg ICAgIH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBTSEEyNTYgKi8NCj4gKyAgICAgICAgLm9wID0g UlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiAr ICAgICAgICAgICAgLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9BVVRILA0KPiAr ICAgICAgICAgICAgeyAuYXV0aCA9IHsNCj4gKyAgICAgICAgICAgICAgICAuYWxnbyA9IFJURV9D UllQVE9fQVVUSF9TSEEyNTYsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2NrX3NpemUgPSA2NCwN Cj4gKyAgICAgICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5tYXggPSAwLCAuaW5j cmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXplID0gey5taW4gPSAz MiwgLm1heCA9IDMyLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3Np emUgPSB7MH0gfSwNCj4gKyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAgIH0s DQo+ICsgICAgey8qIFNIQTM4NCAqLw0KPiArICAgICAgICAub3AgPSBSVEVfQ1JZUFRPX09QX1RZ UEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0gPSB7DQo+ICsgICAgICAgICAgICAueGZv cm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0FVVEgsDQo+ICsgICAgICAgICAgICB7IC5h dXRoID0gew0KPiArICAgICAgICAgICAgICAgIC5hbGdvID0gUlRFX0NSWVBUT19BVVRIX1NIQTM4 NCwNCj4gKyAgICAgICAgICAgICAgICAuYmxvY2tfc2l6ZSA9IDEyOCwNCj4gKyAgICAgICAgICAg ICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5tYXggPSAwLCAuaW5jcmVtZW50ID0gMH0sDQo+ ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXplID0gey5taW4gPSA0OCwgLm1heCA9IDQ4LCAu aW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7MH0gfSwNCj4g KyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAgIH0sDQo+ICsgICAgey8qIFNI QTUxMiAqLw0KPiArICAgICAgICAub3AgPSBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLA0K PiArICAgICAgICB7IC5zeW0gPSB7DQo+ICsgICAgICAgICAgICAueGZvcm1fdHlwZSA9IFJURV9D UllQVE9fU1lNX1hGT1JNX0FVVEgsDQo+ICsgICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAg ICAgICAgICAgICAgIC5hbGdvID0gUlRFX0NSWVBUT19BVVRIX1NIQTUxMiwNCj4gKyAgICAgICAg ICAgICAgICAuYmxvY2tfc2l6ZSA9IDEyOCwNCj4gKyAgICAgICAgICAgICAgICAua2V5X3NpemUg PSB7Lm1pbiA9IDAsIC5tYXggPSAwLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAg ICAgLmRpZ2VzdF9zaXplID0gey5taW4gPSA2NCwgLm1heCA9IDY0LCAuaW5jcmVtZW50ID0gMH0s DQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7MH0gfSwNCj4gKyAgICAgICAgICAgIH0g fSwNCj4gKyAgICAgICAgfQ0KPiArICAgIH0sDQo+ICsgICAgey8qIFNNMyAqLw0KPiArICAgICAg ICAub3AgPSBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0g PSB7DQo+ICsgICAgICAgICAgICAueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0FV VEgsDQo+ICsgICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAgICAgICAgICAgICAgIC5hbGdv ID0gUlRFX0NSWVBUT19BVVRIX1NNMywNCj4gKyAgICAgICAgICAgICAgICAuYmxvY2tfc2l6ZSA9 IDY0LA0KPiArICAgICAgICAgICAgICAgIC5rZXlfc2l6ZSA9IHsubWluID0gMCwgLm1heCA9IDAs IC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuZGlnZXN0X3NpemUgPSB7Lm1p biA9IDMyLCAubWF4ID0gMzIsIC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAu aXZfc2l6ZSA9IHswfSB9LA0KPiArICAgICAgICAgICAgfSB9LA0KPiArICAgICAgICB9DQo+ICsg ICAgfSwNCj4gKyAgICB7LyogQUVTIFhUUyAqLw0KPiArICAgICAgICAub3AgPSBSVEVfQ1JZUFRP X09QX1RZUEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0gPSB7DQo+ICsgICAgICAgICAg ICAueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0NJUEhFUiwNCj4gKyAgICAgICAg ICAgIHsgLmNpcGhlciA9IHsNCj4gKyAgICAgICAgICAgICAgICAuYWxnbyA9IFJURV9DUllQVE9f Q0lQSEVSX0FFU19YVFMsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2NrX3NpemUgPSAxNiwNCj4g KyAgICAgICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDE2LCAubWF4ID0gMzIsIC5pbmNy ZW1lbnQgPSAxNn0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7Lm1pbiA9IDE2LCAu bWF4ID0gMTYsIC5pbmNyZW1lbnQgPSAwfSB9LA0KPiArICAgICAgICAgICAgfSB9LA0KPiArICAg ICAgICB9DQo+ICsgICAgfSwNCj4gKyAgICB7LyogU000IFhUUyAqLw0KPiArICAgICAgICAub3Ag PSBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0gPSB7DQo+ ICsgICAgICAgICAgICAueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0NJUEhFUiwN Cj4gKyAgICAgICAgICAgIHsgLmNpcGhlciA9IHsNCj4gKyAgICAgICAgICAgICAgICAuYWxnbyA9 IFJURV9DUllQVE9fQ0lQSEVSX1NNNF9YVFMsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2NrX3Np emUgPSAxNiwNCj4gKyAgICAgICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDMyLCAubWF4 ID0gMzIsIC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuaXZfc2l6ZSA9IHsu bWluID0gMTYsIC5tYXggPSAxNiwgLmluY3JlbWVudCA9IDB9IH0sDQo+ICsgICAgICAgICAgICB9 IH0sDQo+ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICt9Ow0KPiArI2VuZGlmIC8qIF9aU0RBX1NZ TV9DQVBBQklMSVRJRVNfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3pzZGEv enNkYV9zeW1fcG1kLmMNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmNiZjM0YTQ2ZjkNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5j DQo+IEBAIC0wLDAgKzEsNDM0IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTMtQ2xhdXNlDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyNCBaVEUgQ29ycG9yYXRpb24NCj4gKyAq Lw0KPiArDQo+ICsjaW5jbHVkZSA8cnRlX2NyeXB0b2Rldi5oPg0KPiArDQo+ICsjaW5jbHVkZSAi enNkYV9zeW1fcG1kLmgiDQo+ICsjaW5jbHVkZSAienNkYV9zeW1fY2FwYWJpbGl0aWVzLmgiDQo+ ICsNCj4gK3VpbnQ4X3QgenNkYV9zeW1fZHJpdmVyX2lkOw0KPiArDQo+ICtzdGF0aWMgaW50DQo+ ICt6c2RhX3N5bV9kZXZfY29uZmlnKF9fcnRlX3VudXNlZCBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq ZGV2LA0KPiArICAgICAgICAgICAgX19ydGVfdW51c2VkIHN0cnVjdCBydGVfY3J5cHRvZGV2X2Nv bmZpZyAqY29uZmlnKQ0KPiArew0KPiArICAgIHJldHVybiBaU0RBX1NVQ0NFU1M7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2NyeXB0 b2RldiAqZGV2KQ0KPiArew0KPiArICAgIHN0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSAqc3lt X2RldiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ICsgICAgaW50IHJldDsNCj4gKw0KPiAr ICAgIHJldCA9IHpzZGFfcXVldWVfc3RhcnQoc3ltX2Rldi0+enNkYV9wY2lfZGV2LT5wY2lfZGV2 KTsNCj4gKw0KPiArICAgIGlmIChyZXQpDQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgRV9TVEFS VF9RKTsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiAr enNkYV9zeW1fZGV2X3N0b3Aoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldikNCj4gK3sNCj4gKyAg ICBzdHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZhdGUgKnN5bV9kZXYgPSBkZXYtPmRhdGEtPmRldl9w cml2YXRlOw0KPiArDQo+ICsgICAgenNkYV9xdWV1ZV9zdG9wKHN5bV9kZXYtPnpzZGFfcGNpX2Rl di0+cGNpX2Rldik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX3FwX3Jl bGVhc2Uoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfcGFpcl9pZCkN Cj4gK3sNCj4gKyAgICBaU0RBX0xPRyhERUJVRywgIlJlbGVhc2Ugc3ltIHFwICV1IG9uIGRldmlj ZSAlZCIsIHF1ZXVlX3BhaXJfaWQsDQo+ICsgICAgICAgICBkZXYtPmRhdGEtPmRldl9pZCk7DQo+ ICsNCj4gKyAgICByZXR1cm4genNkYV9xdWV1ZV9wYWlyX3JlbGVhc2UoDQo+ICsgICAgICAgIChz dHJ1Y3QgenNkYV9xcCAqKikmKGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXVldWVfcGFpcl9pZF0p KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9zeW1fZGV2X2Nsb3NlKHN0cnVj dCBydGVfY3J5cHRvZGV2ICpkZXYpDQo+ICt7DQo+ICsgICAgaW50IHJldCA9IFpTREFfU1VDQ0VT UzsNCj4gKyAgICB1aW50MTZfdCBpOw0KPiArDQo+ICsgICAgZm9yIChpID0gMDsgaSA8IGRldi0+ ZGF0YS0+bmJfcXVldWVfcGFpcnM7IGkrKykNCj4gKyAgICAgICAgcmV0IHw9IHpzZGFfc3ltX3Fw X3JlbGVhc2UoZGV2LCBpKTsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyB1aW50MTZfdA0KPiArenNkYV9zeW1fbWF4X25iX3Fwcyh2b2lkKQ0KPiArew0KPiAr ICAgIHVpbnQxNl90IGVuY3J5cHQgPSB6c2RhX25iX3Fwcy5lbmNyeXB0Ow0KPiArICAgIHVpbnQx Nl90IGRlY3J5cHQgPSB6c2RhX25iX3Fwcy5kZWNyeXB0Ow0KPiArICAgIHVpbnQxNl90IGhhc2gg PSB6c2RhX25iX3Fwcy5oYXNoOw0KPiArICAgIHVpbnQxNl90IG1pbiA9IDA7DQo+ICsNCj4gKyAg ICBpZiAoKGVuY3J5cHQgPT0gTUFYX1FQU19PTl9GVU5DVElPTikgfHwNCj4gKyAgICAgICAgKGRl Y3J5cHQgPT0gTUFYX1FQU19PTl9GVU5DVElPTikgfHwNCj4gKyAgICAgICAgKGhhc2ggPT0gTUFY X1FQU19PTl9GVU5DVElPTikpDQo+ICsgICAgICAgIG1pbiA9IE1BWF9RUFNfT05fRlVOQ1RJT047 DQo+ICsgICAgZWxzZSB7DQo+ICsgICAgICAgIG1pbiA9IChlbmNyeXB0IDwgZGVjcnlwdCkgPyBl bmNyeXB0IDogZGVjcnlwdDsNCj4gKyAgICAgICAgbWluID0gKG1pbiA8IGhhc2gpID8gbWluIDog aGFzaDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBpZiAobWluID09IDApDQo+ICsgICAgICAgIHJl dHVybiBNQVhfUVBTX09OX0ZVTkNUSU9OOw0KPiArICAgIHJldHVybiBtaW47DQo+ICt9DQo+ICsN Cj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3pzZGFfc3ltX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRl X2NyeXB0b2RldiAqZGV2LA0KPiArICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9p bmZvICppbmZvKQ0KPiArew0KPiArICAgIHN0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSAqc3lt X3ByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiArDQo+ICsgICAgaWYgKGluZm8gIT0g TlVMTCkgew0KPiArICAgICAgICBpbmZvLT5tYXhfbmJfcXVldWVfcGFpcnMgPSB6c2RhX3N5bV9t YXhfbmJfcXBzKCk7DQo+ICsgICAgICAgIGluZm8tPmZlYXR1cmVfZmxhZ3MgPSBkZXYtPmZlYXR1 cmVfZmxhZ3M7DQo+ICsgICAgICAgIGluZm8tPmNhcGFiaWxpdGllcyA9IHN5bV9wcml2LT56c2Rh X2Rldl9jYXBhYmlsaXRpZXM7DQo+ICsgICAgICAgIGluZm8tPmRyaXZlcl9pZCA9IHpzZGFfc3lt X2RyaXZlcl9pZDsNCj4gKyAgICAgICAgaW5mby0+c3ltLm1heF9uYl9zZXNzaW9ucyA9IDA7DQo+ ICsgICAgfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArenNkYV9zeW1fc3RhdHNfZ2V0 KHN0cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYsIHN0cnVjdCBydGVfY3J5cHRvZGV2X3N0YXRzDQo+ ICpzdGF0cykNCj4gK3sNCj4gKyAgICBzdHJ1Y3QgenNkYV9jb21tb25fc3RhdCBjb21tID0gezB9 Ow0KPiArDQo+ICsgICAgenNkYV9zdGF0c19nZXQoZGV2LT5kYXRhLT5xdWV1ZV9wYWlycywgZGV2 LT5kYXRhLT5uYl9xdWV1ZV9wYWlycywNCj4gKyAgICAgICAgICAgICAgICZjb21tKTsNCj4gKyAg ICBzdGF0cy0+ZW5xdWV1ZWRfY291bnQgPSBjb21tLmVucXVldWVkX2NvdW50Ow0KPiArICAgIHN0 YXRzLT5kZXF1ZXVlZF9jb3VudCA9IGNvbW0uZGVxdWV1ZWRfY291bnQ7DQo+ICsgICAgc3RhdHMt PmVucXVldWVfZXJyX2NvdW50ID0gY29tbS5lbnF1ZXVlX2Vycl9jb3VudDsNCj4gKyAgICBzdGF0 cy0+ZGVxdWV1ZV9lcnJfY291bnQgPSBjb21tLmRlcXVldWVfZXJyX2NvdW50Ow0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZA0KPiArenNkYV9zeW1fc3RhdHNfcmVzZXQoc3RydWN0IHJ0ZV9jcnlw dG9kZXYgKmRldikNCj4gK3sNCj4gKyAgICB6c2RhX3N0YXRzX3Jlc2V0KGRldi0+ZGF0YS0+cXVl dWVfcGFpcnMsIGRldi0+ZGF0YS0+bmJfcXVldWVfcGFpcnMpOw0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgaW50DQo+ICt6c2RhX3NldHVwX2VuY3J5cHRvX3F1ZXVlKHN0cnVjdCB6c2RhX3BjaV9kZXZp Y2UgKnpzZGFfcGNpX2RldiwgdWludDE2X3QNCj4gcXBfaWQsDQo+ICsgICAgICAgICAgICAgc3Ry dWN0IHpzZGFfcXAgKnFwLCB1aW50MzJfdCBuYl9kZXMsIGludCBzb2NrZXRfaWQpDQo+ICt7DQo+ ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0gWlNEQV9TRVJWSUNFX1NZTU1FVFJJ Q19FTkNSWVBUOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2NvbmZpZyBjb25mOw0KPiArICAgIGlu dCByZXQ7DQo+ICsgICAgc3RydWN0IHpzZGFfcXBfaHcgKnFwX2h3Ow0KPiArDQo+ICsgICAgcXBf aHcgPSB6c2RhX3Fwc19od19wZXJfc2VydmljZSh6c2RhX3BjaV9kZXYsIHR5cGUpOw0KPiArICAg IGNvbmYuaHcgPSBxcF9ody0+ZGF0YSArIHFwX2lkOw0KPiArICAgIGNvbmYuc2VydmljZV90eXBl ID0gdHlwZTsNCj4gKyAgICBjb25mLmNvb2tpZV9zaXplID0gc2l6ZW9mKHN0cnVjdCB6c2RhX29w X2Nvb2tpZSk7DQo+ICsgICAgY29uZi5uYl9kZXNjcmlwdG9ycyA9IG5iX2RlczsNCj4gKyAgICBj b25mLnNvY2tldF9pZCA9IHNvY2tldF9pZDsNCj4gKyAgICBjb25mLnNlcnZpY2Vfc3RyID0gInN5 bV9lbmNyeXB0IjsNCj4gKw0KPiArICAgIHJldCA9IHpzZGFfY29tbW9uX3NldHVwX3FwKHpzZGFf cGNpX2Rldi0+enNkYV9kZXZfaWQsICZxcCwgcXBfaWQsDQo+ICZjb25mKTsNCj4gKyAgICBxcC0+ c3J2W3R5cGVdLnJ4X2NiID0genNkYV9jcnlwdG9fY2FsbGJhY2s7DQo+ICsgICAgcXAtPnNydlt0 eXBlXS50eF9jYiA9IHpzZGFfYnVpbGRfY2lwaGVyX3JlcXVlc3Q7DQo+ICsgICAgcXAtPnNydlt0 eXBlXS5tYXRjaCA9IHpzZGFfZW5jcnlfbWF0Y2g7DQo+ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICt6c2RhX3NldHVwX2RlY3J5cHRvX3F1ZXVlKHN0 cnVjdCB6c2RhX3BjaV9kZXZpY2UgKnpzZGFfcGNpX2RldiwgdWludDE2X3QNCj4gcXBfaWQsDQo+ ICsgICAgICAgICAgICAgc3RydWN0IHpzZGFfcXAgKnFwLCB1aW50MzJfdCBuYl9kZXMsIGludCBz b2NrZXRfaWQpDQo+ICt7DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0gWlNE QV9TRVJWSUNFX1NZTU1FVFJJQ19ERUNSWVBUOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2NvbmZp ZyBjb25mOw0KPiArICAgIGludCByZXQ7DQo+ICsgICAgc3RydWN0IHpzZGFfcXBfaHcgKnFwX2h3 Ow0KPiArDQo+ICsgICAgcXBfaHcgPSB6c2RhX3Fwc19od19wZXJfc2VydmljZSh6c2RhX3BjaV9k ZXYsIHR5cGUpOw0KPiArICAgIGNvbmYuaHcgPSBxcF9ody0+ZGF0YSArIHFwX2lkOw0KPiArICAg IGNvbmYuc2VydmljZV90eXBlID0gdHlwZTsNCj4gKw0KPiArICAgIGNvbmYuY29va2llX3NpemUg PSBzaXplb2Yoc3RydWN0IHpzZGFfb3BfY29va2llKTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0 b3JzID0gbmJfZGVzOw0KPiArICAgIGNvbmYuc29ja2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAg IGNvbmYuc2VydmljZV9zdHIgPSAic3ltX2RlY3J5cHQiOw0KPiArDQo+ICsgICAgcmV0ID0genNk YV9jb21tb25fc2V0dXBfcXAoenNkYV9wY2lfZGV2LT56c2RhX2Rldl9pZCwgJnFwLCBxcF9pZCwN Cj4gJmNvbmYpOw0KPiArICAgIHFwLT5zcnZbdHlwZV0ucnhfY2IgPSB6c2RhX2NyeXB0b19jYWxs YmFjazsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4X2NiID0genNkYV9idWlsZF9jaXBoZXJfcmVx dWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1hdGNoID0genNkYV9kZWNyeV9tYXRjaDsNCj4g Kw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFf c2V0dXBfaGFzaF9xdWV1ZShzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsIHVp bnQxNl90IHFwX2lkLA0KPiArICAgICAgICAgc3RydWN0IHpzZGFfcXAgKnFwLCB1aW50MzJfdCBu Yl9kZXMsIGludCBzb2NrZXRfaWQpDQo+ICt7DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlw ZSB0eXBlID0gWlNEQV9TRVJWSUNFX0hBU0hfRU5DT0RFOw0KPiArICAgIHN0cnVjdCB6c2RhX3Fw X2NvbmZpZyBjb25mOw0KPiArICAgIGludCByZXQ7DQo+ICsgICAgc3RydWN0IHpzZGFfcXBfaHcg KnFwX2h3Ow0KPiArDQo+ICsgICAgcXBfaHcgPSB6c2RhX3Fwc19od19wZXJfc2VydmljZSh6c2Rh X3BjaV9kZXYsIHR5cGUpOw0KPiArICAgIGNvbmYuaHcgPSBxcF9ody0+ZGF0YSArIHFwX2lkOw0K PiArICAgIGNvbmYuc2VydmljZV90eXBlID0gdHlwZTsNCj4gKyAgICBjb25mLmNvb2tpZV9zaXpl ID0gc2l6ZW9mKHN0cnVjdCB6c2RhX29wX2Nvb2tpZSk7DQo+ICsgICAgY29uZi5uYl9kZXNjcmlw dG9ycyA9IG5iX2RlczsNCj4gKyAgICBjb25mLnNvY2tldF9pZCA9IHNvY2tldF9pZDsNCj4gKyAg ICBjb25mLnNlcnZpY2Vfc3RyID0gInN5bV9oYXNoIjsNCj4gKw0KPiArICAgIHJldCA9IHpzZGFf Y29tbW9uX3NldHVwX3FwKHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQsICZxcCwgcXBfaWQsDQo+ ICZjb25mKTsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnJ4X2NiID0genNkYV9jcnlwdG9fY2FsbGJh Y2s7DQo+ICsgICAgcXAtPnNydlt0eXBlXS50eF9jYiA9IHpzZGFfYnVpbGRfaGFzaF9yZXF1ZXN0 Ow0KPiArICAgIHFwLT5zcnZbdHlwZV0ubWF0Y2ggPSB6c2RhX2hhc2hfbWF0Y2g7DQo+ICsNCj4g KyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICt6c2RhX3N5bV9x cF9zZXR1cChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2LCB1aW50MTZfdCBxcF9pZCwNCj4gKyAg ICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9xcF9jb25mICpxcF9jb25mLA0KPiAr ICAgICAgICAgIGludCBzb2NrZXRfaWQpDQo+ICt7DQo+ICsgICAgaW50IHJldCA9IFpTREFfU1VD Q0VTUzsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcCAqcXBfbmV3Ow0KPiArICAgIHN0cnVjdCB6c2Rh X3FwICoqcXBfYWRkciA9DQo+ICsgICAgICAgIChzdHJ1Y3QgenNkYV9xcCAqKikmKGRldi0+ZGF0 YS0+cXVldWVfcGFpcnNbcXBfaWRdKTsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZh dGUgKnN5bV9wcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gKyAgICBzdHJ1Y3QgenNk YV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYgPSBzeW1fcHJpdi0+enNkYV9wY2lfZGV2Ow0KPiAr ICAgIHVpbnQxNl90IG51bV9xcHNfZW5jcnlwdCA9IHpzZGFfbmJfcXBzLmVuY3J5cHQ7DQo+ICsg ICAgdWludDE2X3QgbnVtX3Fwc19kZWNyeXB0ID0genNkYV9uYl9xcHMuZGVjcnlwdDsNCj4gKyAg ICB1aW50MTZfdCBudW1fcXBzX2hhc2ggPSB6c2RhX25iX3Fwcy5oYXNoOw0KPiArICAgIHVpbnQz Ml90IG5iX2RlcyA9IHFwX2NvbmYtPm5iX2Rlc2NyaXB0b3JzOw0KPiArDQo+ICsgICAgbmJfZGVz ID0gKG5iX2RlcyA9PSBOQl9ERVMpID8gbmJfZGVzIDogTkJfREVTOw0KPiArDQo+ICsgICAgaWYg KCpxcF9hZGRyICE9IE5VTEwpIHsNCj4gKyAgICAgICAgcmV0ID0genNkYV9zeW1fcXBfcmVsZWFz ZShkZXYsIHFwX2lkKTsNCj4gKyAgICAgICAgaWYgKHJldCkNCj4gKyAgICAgICAgICAgIHJldHVy biByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcXBfbmV3ID0gcnRlX3ptYWxsb2Nfc29ja2V0 KCJ6c2RhIFBNRCBxcCBtZXRhZGF0YSIsIHNpemVvZigqcXBfbmV3KSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgUlRFX0NBQ0hFX0xJTkVfU0laRSwgc29ja2V0X2lkKTsNCj4gKyAgICBpZiAocXBf bmV3ID09IE5VTEwpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVkIHRvIGFsbG9j IG1lbSBmb3IgcXAgc3RydWN0Iik7DQo+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiArICAg IH0NCj4gKw0KPiArICAgIGlmIChudW1fcXBzX2VuY3J5cHQgPT0gTUFYX1FQU19PTl9GVU5DVElP TikNCj4gKyAgICAgICAgcmV0ID0genNkYV9zZXR1cF9lbmNyeXB0b19xdWV1ZSh6c2RhX3BjaV9k ZXYsIHFwX2lkLCBxcF9uZXcsIG5iX2RlcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNv Y2tldF9pZCk7DQo+ICsgICAgZWxzZSBpZiAobnVtX3Fwc19kZWNyeXB0ID09IE1BWF9RUFNfT05f RlVOQ1RJT04pDQo+ICsgICAgICAgIHJldCA9IHpzZGFfc2V0dXBfZGVjcnlwdG9fcXVldWUoenNk YV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICBzb2NrZXRfaWQpOw0KPiArICAgIGVsc2UgaWYgKG51bV9xcHNfaGFzaCA9PSBNQVhfUVBT X09OX0ZVTkNUSU9OKQ0KPiArICAgICAgICByZXQgPSB6c2RhX3NldHVwX2hhc2hfcXVldWUoenNk YV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAg IHNvY2tldF9pZCk7DQo+ICsgICAgZWxzZSB7DQo+ICsgICAgICAgIHJldCA9IHpzZGFfc2V0dXBf ZW5jcnlwdG9fcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgICAgICByZXQgfD0genNk YV9zZXR1cF9kZWNyeXB0b19xdWV1ZSh6c2RhX3BjaV9kZXYsIHFwX2lkLCBxcF9uZXcsIG5iX2Rl cywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldF9pZCk7DQo+ICsgICAgICAgIHJl dCB8PSB6c2RhX3NldHVwX2hhc2hfcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBu Yl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAgIHNvY2tldF9pZCk7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgaWYgKHJldCkgew0KPiArICAgICAgICBydGVfZnJlZShxcF9uZXcpOw0KPiArICAg ICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0NCj4gKw0KPiArICAgICpxcF9hZGRyID0gcXBfbmV3 Ow0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHVuc2lnbmVk IGludA0KPiArenNkYV9zeW1fc2Vzc2lvbl9nZXRfcHJpdmF0ZV9zaXplKHN0cnVjdCBydGVfY3J5 cHRvZGV2ICpkZXYgX19ydGVfdW51c2VkKQ0KPiArew0KPiArICAgIHJldHVybiBSVEVfQUxJR05f Q0VJTChzaXplb2Yoc3RydWN0IHpzZGFfc3ltX3Nlc3Npb24pLCA4KTsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGludA0KPiArenNkYV9zeW1fc2Vzc2lvbl9jb25maWd1cmUoc3RydWN0IHJ0ZV9jcnlw dG9kZXYgKmRldiBfX3J0ZV91bnVzZWQsDQo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2Ny eXB0b19zeW1feGZvcm0gKnhmb3JtLA0KPiArICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlw dG9kZXZfc3ltX3Nlc3Npb24gKnNlc3MpDQo+ICt7DQo+ICsgICAgdm9pZCAqc2Vzc19wcml2YXRl X2RhdGE7DQo+ICsgICAgaW50IHJldDsNCj4gKw0KPiArICAgIGlmICh1bmxpa2VseShzZXNzID09 IE5VTEwpKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgIkludmFsaWQgc2Vzc2lvbiBzdHJ1 Y3QiKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg c2Vzc19wcml2YXRlX2RhdGEgPSBDUllQVE9ERVZfR0VUX1NZTV9TRVNTX1BSSVYoc2Vzcyk7DQo+ ICsNCj4gKyAgICByZXQgPSB6c2RhX2NyeXB0b19zZXRfc2Vzc2lvbl9wYXJhbWV0ZXJzKA0KPiAr ICAgICAgICAgICAgc2Vzc19wcml2YXRlX2RhdGEsIHhmb3JtKTsNCj4gKw0KPiArICAgIGlmIChy ZXQgIT0gWlNEQV9TVUNDRVNTKQ0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWlsZWQgY29u ZmlndXJlIHNlc3Npb24gcGFyYW1ldGVycyIpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4g K30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3pzZGFfc3ltX3Nlc3Npb25fY2xlYXIoc3RydWN0 IHJ0ZV9jcnlwdG9kZXYgKmRldiBfX3J0ZV91bnVzZWQsDQo+ICsgICAgICAgICAgICBzdHJ1Y3Qg cnRlX2NyeXB0b2Rldl9zeW1fc2Vzc2lvbiAgKnNlc3MgX19ydGVfdW51c2VkKQ0KPiAre30NCj4g Kw0KPiArc3RhdGljIHN0cnVjdCBydGVfY3J5cHRvZGV2X29wcyBjcnlwdG9fenNkYV9vcHMgPSB7 DQo+ICsNCj4gKyAgICAuZGV2X2NvbmZpZ3VyZSA9IHpzZGFfc3ltX2Rldl9jb25maWcsDQo+ICsg ICAgLmRldl9zdGFydCA9IHpzZGFfc3ltX2Rldl9zdGFydCwNCj4gKyAgICAuZGV2X3N0b3AgPSB6 c2RhX3N5bV9kZXZfc3RvcCwNCj4gKyAgICAuZGV2X2Nsb3NlID0genNkYV9zeW1fZGV2X2Nsb3Nl LA0KPiArICAgIC5kZXZfaW5mb3NfZ2V0ID0genNkYV9zeW1fZGV2X2luZm9fZ2V0LA0KPiArDQo+ ICsgICAgLnN0YXRzX2dldCA9IHpzZGFfc3ltX3N0YXRzX2dldCwNCj4gKyAgICAuc3RhdHNfcmVz ZXQgPSB6c2RhX3N5bV9zdGF0c19yZXNldCwNCj4gKyAgICAucXVldWVfcGFpcl9zZXR1cCA9IHpz ZGFfc3ltX3FwX3NldHVwLA0KPiArICAgIC5xdWV1ZV9wYWlyX3JlbGVhc2UgPSB6c2RhX3N5bV9x cF9yZWxlYXNlLA0KPiArDQo+ICsgICAgLnN5bV9zZXNzaW9uX2dldF9zaXplID0genNkYV9zeW1f c2Vzc2lvbl9nZXRfcHJpdmF0ZV9zaXplLA0KPiArICAgIC5zeW1fc2Vzc2lvbl9jb25maWd1cmUg PSB6c2RhX3N5bV9zZXNzaW9uX2NvbmZpZ3VyZSwNCj4gKyAgICAuc3ltX3Nlc3Npb25fY2xlYXIg PSB6c2RhX3N5bV9zZXNzaW9uX2NsZWFyLA0KPiArfTsNCg0KSSBhc2tlZCBtdWx0aXBsZSB0aW1l cyB0byBzcGxpdCB0aGUgcGF0Y2hlcyBhcyBwZXIgaHR0cHM6Ly9naXQuZHBkay5vcmcvZHBkay90 cmVlL2RvYy9ndWlkZXMvY29udHJpYnV0aW5nL25ld19kcml2ZXIucnN0DQoNCkluIHRoaXMgcGF0 Y2ggeW91IGFyZQ0KLSBjb25maWd1cmluZyBkZXZpY2UgDQotIHNldHRpbmcgY2FwYWJpbGl0aWVz DQotIGNvbmZpZ3VyaW5nIHF1ZXVlcw0KLSBzdGF0cyBhbmQgZGV2aWNlIGluZm8NCi0gc2Vzc2lv biBjb25maWd1cmF0aW9uDQotIHNjYXR0ZXIgZ2F0aGVyIGZsYWdzIGFyZSBhbHNvIGFkZGVkIGhl cmUuIE5vdCBzdXJlIGlmIHRoZSBmZWF0dXJlIGlzIGNvbXBsZXRlIGluIHRoaXMgcGF0Y2guDQot IGV2ZW4gZGF0YXBhdGggaXMgYWxzbyBhZGRlZCBpbiB0aGlzIHBhdGNoIG9ubHkuDQoNClRoaXMg aXMgYSB2MTggcGF0Y2hzZXQgYW5kIHN0aWxsIHdlIGhhdmUgaXNzdWVzIHdoaWNoIHdlcmUgaGln aGxpZ2h0ZWQgaW4gaW5pdGlhbCB2ZXJzaW9ucy4NClBsZWFzZSByZXZpZXcgb3RoZXIgY3J5cHRv L2NvbXByZXNzIFBNRHMgd2hpY2ggd2VyZSBzdWJtaXR0ZWQgYW5kIG1lcmdlZCBpbiBwYXN0DQpC ZWZvcmUgc2VuZGluZyB0aGUgbmV4dCB2ZXJzaW9uLg0KWW91IGNhbiB1c2UgdGhpcyBhcyByZWZl cmVuY2UuDQpodHRwczovL3BhdGNoZXMuZHBkay5vcmcvcHJvamVjdC9kcGRrL2xpc3QvP3Nlcmll cz0xNzQ4MyZzdGF0ZT0lMkEmYXJjaGl2ZT1ib3RoDQpodHRwczovL3BhdGNoZXMuZHBkay5vcmcv cHJvamVjdC9kcGRrL2xpc3QvP3Nlcmllcz0xNDg2NSZzdGF0ZT0lMkEmYXJjaGl2ZT1ib3RoDQoN CkFzIHRoZXNlIGFyZSBzb21lIG1ham9yIGNoYW5nZXMgdG8gYmUgZG9uZSBieSB0b2RheShSQzIp Lg0KSSB3b3VsZCBiZSBkZWZlcnJpbmcgdGhlIHBhdGNoc2V0IGZvciBuZXh0IHJlbGVhc2UuDQoN Cj4gKw0KPiArc3RhdGljIHVpbnQxNl90DQo+ICt6c2RhX3N5bV9wbWRfZW5xdWV1ZV9vcF9idXJz dCh2b2lkICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsDQo+ICsgICAgICAgICAgICAg ICAgICB1aW50MTZfdCBuYl9vcHMpDQo+ICt7DQo+ICsgICAgcmV0dXJuIHpzZGFfZW5xdWV1ZV9v cF9idXJzdCgoc3RydWN0IHpzZGFfcXAgKilxcCwgKHZvaWQgKiopb3BzLA0KPiArICAgICAgICAg ICAgICAgICAgICAgbmJfb3BzKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHVpbnQxNl90DQo+ICt6 c2RhX3N5bV9wbWRfZGVxdWV1ZV9vcF9idXJzdCh2b2lkICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9f b3AgKipvcHMsDQo+ICsgICAgICAgICAgICAgICAgICB1aW50MTZfdCBuYl9vcHMpDQo+ICt7DQo+ ICsgICAgcmV0dXJuIHpzZGFfZGVxdWV1ZV9vcF9idXJzdCgoc3RydWN0IHpzZGFfcXAgKilxcCwg KHZvaWQgKiopb3BzLA0KPiArICAgICAgICAgICAgICAgICAgICAgbmJfb3BzKTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIGNvbnN0IGNoYXIgenNkYV9zeW1fZHJ2X25hbWVbXSA9DQo+IFJURV9TVFIo Q1JZUFRPREVWX05BTUVfWlNEQV9TWU1fUE1EKTsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRl X2RyaXZlciBjcnlwdG9kZXZfenNkYV9zeW1fZHJpdmVyID0gew0KPiArICAgIC5uYW1lID0genNk YV9zeW1fZHJ2X25hbWUsIC5hbGlhcyA9IHpzZGFfc3ltX2Rydl9uYW1lfTsNCj4gKw0KPiAraW50 DQo+ICt6c2RhX3N5bV9kZXZfY3JlYXRlKHN0cnVjdCB6c2RhX3BjaV9kZXZpY2UgKnpzZGFfcGNp X2RldikNCj4gK3sNCj4gKyAgICBzdHJ1Y3QgenNkYV9kZXZpY2VfaW5mbyAqZGV2X2luZm8gPQ0K PiArICAgICAgICAmenNkYV9kZXZzW3pzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWRdOw0KPiArDQo+ ICsgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfcG1kX2luaXRfcGFyYW1zIGluaXRfcGFyYW1zID0g ew0KPiArICAgICAgICAubmFtZSA9ICIiLA0KPiArICAgICAgICAuc29ja2V0X2lkID0gKGludCly dGVfc29ja2V0X2lkKCksDQo+ICsgICAgICAgIC5wcml2YXRlX2RhdGFfc2l6ZSA9IHNpemVvZihz dHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZhdGUpfTsNCj4gKw0KPiArICAgIGNoYXIgbmFtZVtSVEVf Q1JZUFRPREVWX05BTUVfTUFYX0xFTl07DQo+ICsgICAgY2hhciBjYXBhX21lbXpfbmFtZVtSVEVf Q1JZUFRPREVWX05BTUVfTUFYX0xFTl07DQo+ICsgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmNy eXB0b2RldjsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZhdGUgKnN5bV9wcml2Ow0K PiArICAgIGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2X2NhcGFiaWxpdGllcyAqY2FwYWJpbGl0 aWVzOw0KPiArICAgIHVpbnQ2NF90IGNhcGFfc2l6ZTsNCj4gKw0KPiArICAgIGluaXRfcGFyYW1z Lm1heF9uYl9xdWV1ZV9wYWlycyA9IHpzZGFfc3ltX21heF9uYl9xcHMoKTsNCj4gKyAgICBzbnBy aW50ZihuYW1lLCBSVEVfQ1JZUFRPREVWX05BTUVfTUFYX0xFTiwgIiVzXyVzIiwgenNkYV9wY2lf ZGV2LQ0KPiA+bmFtZSwNCj4gKyAgICAgICAgICJzeW1fZW5jcnlwdCIpOw0KPiArICAgIFpTREFf TE9HKERFQlVHLCAiQ3JlYXRpbmcgWlNEQSBTWU0gZGV2aWNlICVzIiwgbmFtZSk7DQo+ICsNCj4g KyAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVfUFJPQ19QUklNQVJZKQ0KPiAr ICAgICAgICByZXR1cm4gWlNEQV9TVUNDRVNTOw0KPiArDQo+ICsgICAgZGV2X2luZm8tPnN5bV9y dGVfZGV2LmRyaXZlciA9ICZjcnlwdG9kZXZfenNkYV9zeW1fZHJpdmVyOw0KPiArICAgIGRldl9p bmZvLT5zeW1fcnRlX2Rldi5udW1hX25vZGUgPSBkZXZfaW5mby0+cGNpX2Rldi0NCj4gPmRldmlj ZS5udW1hX25vZGU7DQo+ICsgICAgZGV2X2luZm8tPnN5bV9ydGVfZGV2LmRldmFyZ3MgPSBOVUxM Ow0KPiArDQo+ICsgICAgY3J5cHRvZGV2ID0gcnRlX2NyeXB0b2Rldl9wbWRfY3JlYXRlKG5hbWUs ICYoZGV2X2luZm8tPnN5bV9ydGVfZGV2KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAm aW5pdF9wYXJhbXMpOw0KPiArDQo+ICsgICAgaWYgKGNyeXB0b2RldiA9PSBOVUxMKQ0KPiArICAg ICAgICByZXR1cm4gLUVOT0RFVjsNCj4gKw0KPiArICAgIGRldl9pbmZvLT5zeW1fcnRlX2Rldi5u YW1lID0gY3J5cHRvZGV2LT5kYXRhLT5uYW1lOw0KPiArICAgIGNyeXB0b2Rldi0+ZHJpdmVyX2lk ID0genNkYV9zeW1fZHJpdmVyX2lkOw0KPiArDQo+ICsgICAgY3J5cHRvZGV2LT5kZXZfb3BzID0g JmNyeXB0b196c2RhX29wczsNCj4gKw0KPiArICAgIGNyeXB0b2Rldi0+ZW5xdWV1ZV9idXJzdCA9 IHpzZGFfc3ltX3BtZF9lbnF1ZXVlX29wX2J1cnN0Ow0KPiArICAgIGNyeXB0b2Rldi0+ZGVxdWV1 ZV9idXJzdCA9IHpzZGFfc3ltX3BtZF9kZXF1ZXVlX29wX2J1cnN0Ow0KPiArDQo+ICsgICAgY3J5 cHRvZGV2LT5mZWF0dXJlX2ZsYWdzID0gUlRFX0NSWVBUT0RFVl9GRl9TWU1NRVRSSUNfQ1JZUFRP IHwNCj4gKyAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPREVWX0ZGX1NZTV9TRVNTSU9OTEVT UyB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfTEJfSU5fTEJf T1VUIHwNCj4gKyAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPREVWX0ZGX09PUF9MQl9JTl9T R0xfT1VUIHwNCj4gKyAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPREVWX0ZGX09PUF9TR0xf SU5fTEJfT1VUIHwNCj4gKyAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPREVWX0ZGX09PUF9T R0xfSU5fU0dMX09VVCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9I V19BQ0NFTEVSQVRFRDsNCj4gKw0KPiArICAgIHN5bV9wcml2ID0gY3J5cHRvZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZTsNCj4gKyAgICBzeW1fcHJpdi0+enNkYV9wY2lfZGV2ID0genNkYV9wY2lfZGV2 Ow0KPiArICAgIGNhcGFiaWxpdGllcyA9IHpzZGFfY3J5cHRvX3N5bV9jYXBhYmlsaXRpZXM7DQo+ ICsgICAgY2FwYV9zaXplID0gc2l6ZW9mKHpzZGFfY3J5cHRvX3N5bV9jYXBhYmlsaXRpZXMpOw0K PiArDQo+ICsgICAgc25wcmludGYoY2FwYV9tZW16X25hbWUsIFJURV9DUllQVE9ERVZfTkFNRV9N QVhfTEVOLA0KPiAiWlNEQV9TWU1fQ0FQQSIpOw0KPiArDQo+ICsgICAgc3ltX3ByaXYtPmNhcGFf bXogPSBydGVfbWVtem9uZV9sb29rdXAoY2FwYV9tZW16X25hbWUpOw0KPiArICAgIGlmIChzeW1f cHJpdi0+Y2FwYV9teiA9PSBOVUxMKQ0KPiArICAgICAgICBzeW1fcHJpdi0+Y2FwYV9teiA9IHJ0 ZV9tZW16b25lX3Jlc2VydmUoDQo+ICsgICAgICAgICAgICBjYXBhX21lbXpfbmFtZSwgY2FwYV9z aXplLCBydGVfc29ja2V0X2lkKCksIDApOw0KPiArDQo+ICsgICAgaWYgKHN5bV9wcml2LT5jYXBh X216ID09IE5VTEwpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCBFX01BTExPQyk7DQo+ICsg ICAgICAgIGdvdG8gZXJyb3I7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgbWVtY3B5KHN5bV9wcml2 LT5jYXBhX216LT5hZGRyLCBjYXBhYmlsaXRpZXMsIGNhcGFfc2l6ZSk7DQo+ICsgICAgc3ltX3By aXYtPnpzZGFfZGV2X2NhcGFiaWxpdGllcyA9IHN5bV9wcml2LT5jYXBhX216LT5hZGRyOw0KPiAr DQo+ICsgICAgenNkYV9wY2lfZGV2LT5zeW1fZGV2ID0gc3ltX3ByaXY7DQo+ICsNCj4gKyAgICBy ZXR1cm4gWlNEQV9TVUNDRVNTOw0KPiArDQo+ICtlcnJvcjoNCj4gKw0KPiArICAgIHJ0ZV9jcnlw dG9kZXZfcG1kX2Rlc3Ryb3koY3J5cHRvZGV2KTsNCj4gKyAgICBtZW1zZXQoJmRldl9pbmZvLT5z eW1fcnRlX2RldiwgMCwgc2l6ZW9mKGRldl9pbmZvLT5zeW1fcnRlX2RldikpOw0KPiArDQo+ICsg ICAgcmV0dXJuIC1FRkFVTFQ7DQo+ICt9DQo+ICsNCj4gK2ludA0KPiArenNkYV9zeW1fZGV2X2Rl c3Ryb3koc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2KQ0KPiArew0KPiArICAg IHN0cnVjdCBydGVfY3J5cHRvZGV2ICpjcnlwdG9kZXY7DQo+ICsNCj4gKyAgICBpZiAoenNkYV9w Y2lfZGV2ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiAtRU5PREVWOw0KPiArICAgIGlmICh6 c2RhX3BjaV9kZXYtPnN5bV9kZXYgPT0gTlVMTCkNCj4gKyAgICAgICAgcmV0dXJuIFpTREFfU1VD Q0VTUzsNCj4gKyAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSA9PSBSVEVfUFJPQ19QUklN QVJZKQ0KPiArICAgICAgICBydGVfbWVtem9uZV9mcmVlKHpzZGFfcGNpX2Rldi0+c3ltX2Rldi0+ Y2FwYV9teik7DQo+ICsNCj4gKyAgICBjcnlwdG9kZXYgPSBydGVfY3J5cHRvZGV2X3BtZF9nZXRf ZGV2KHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQpOw0KPiArDQo+ICsgICAgcnRlX2NyeXB0b2Rl dl9wbWRfZGVzdHJveShjcnlwdG9kZXYpOw0KPiArICAgIHpzZGFfZGV2c1t6c2RhX3BjaV9kZXYt PnpzZGFfZGV2X2lkXS5zeW1fcnRlX2Rldi5uYW1lID0gTlVMTDsNCj4gKyAgICB6c2RhX3BjaV9k ZXYtPnN5bV9kZXYgPSBOVUxMOw0KPiArDQo+ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4g K30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBjcnlwdG9kZXZfZHJpdmVyIHpzZGFfY3J5cHRvX2Ry djsNCj4gK1JURV9QTURfUkVHSVNURVJfQ1JZUFRPX0RSSVZFUih6c2RhX2NyeXB0b19kcnYsDQo+ IGNyeXB0b2Rldl96c2RhX3N5bV9kcml2ZXIsDQo+ICsgICAgICAgICAgICAgICAgICAgenNkYV9z eW1fZHJpdmVyX2lkKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9z eW1fcG1kLmgNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5oDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLjBjMGZkNWE2YTENCj4gLS0tIC9k ZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5oDQo+IEBA IC0wLDAgKzEsMTA1IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xh dXNlDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyNCBaVEUgQ29ycG9yYXRpb24NCj4gKyAqLw0KPiAr DQo+ICsjaWZuZGVmIF9aU0RBX1NZTV9QTURfSF8NCj4gKyNkZWZpbmUgX1pTREFfU1lNX1BNRF9I Xw0KPiArDQo+ICsjaW5jbHVkZSAiY3J5cHRvZGV2X3BtZC5oIg0KPiArDQo+ICsjaW5jbHVkZSAi enNkYV9sb2dzLmgiDQo+ICsjaW5jbHVkZSAienNkYV9jb21tb24uaCINCj4gKyNpbmNsdWRlICJ6 c2RhX2RldmljZS5oIg0KPiArI2luY2x1ZGUgInpzZGFfcXAuaCINCj4gKw0KPiArLyoqIFpTREEg U3ltbWV0cmljIENyeXB0byBQTUQgZHJpdmVyIG5hbWUgKi8NCj4gKyNkZWZpbmUgQ1JZUFRPREVW X05BTUVfWlNEQV9TWU1fUE1EIGNyeXB0b196c2RhDQo+ICsjZGVmaW5lIFpTREFfQ0lQSEVSX0tF WV9NQVhfTEVOIDY0DQo+ICsNCj4gK2V4dGVybiB1aW50OF90IHpzZGFfc3ltX2RyaXZlcl9pZDsN Cj4gKw0KPiArLyoqIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUgZm9yIGEgWlNEQSBkZXZpY2UuDQo+ ICsgKiBUaGlzIFpTREEgZGV2aWNlIGlzIGEgZGV2aWNlIG9mZmVyaW5nIG9ubHkgc3ltbWV0cmlj IGNyeXB0byBzZXJ2aWNlLA0KPiArICogdGhlcmUgY2FuIGJlIG9uZSBvZiB0aGVzZSBvbiBlYWNo IHpzZGFfcGNpX2RldmljZSAoVkYpLg0KPiArICovDQo+ICtzdHJ1Y3QgenNkYV9zeW1fZGV2X3By aXZhdGUgew0KPiArICAgIHN0cnVjdCB6c2RhX3BjaV9kZXZpY2UgKnpzZGFfcGNpX2RldjsNCj4g KyAgICAvKio8IFRoZSB6c2RhIHBjaSBkZXZpY2UgaG9zdGluZyB0aGUgc2VydmljZSAqLw0KPiAr DQo+ICsgICAgY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfY2FwYWJpbGl0aWVzICp6c2RhX2Rl dl9jYXBhYmlsaXRpZXM7DQo+ICsgICAgLyogWlNEQSBkZXZpY2Ugc3ltbWV0cmljIGNyeXB0byBj YXBhYmlsaXRpZXMgKi8NCj4gKyAgICBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKmNhcGFfbXo7 DQo+ICsgICAgLyogU2hhcmVkIG1lbXpvbmUgZm9yIHN0b3JpbmcgY2FwYWJpbGl0aWVzICovDQo+ ICt9Ow0KPiArDQo+ICtlbnVtIHpzZGFfc3ltX2NoYWluX29yZGVyIHsNCj4gKyAgICBaU0RBX1NZ TV9DSEFJTl9PTkxZX0NJUEhFUiwNCj4gKyAgICBaU0RBX1NZTV9DSEFJTl9PTkxZX0FVVEgsDQo+ ICsgICAgWlNEQV9TWU1fQ0hBSU5fQ0lQSEVSX0FVVEgsDQo+ICsgICAgWlNEQV9TWU1fQ0hBSU5f QVVUSF9DSVBIRVIsDQo+ICsgICAgWlNEQV9TWU1fQ0hBSU5fTk9UX1NVUFBPUlRFRA0KPiArfTsN Cj4gK3N0cnVjdCB6c2RhX3N5bV9zZXNzaW9uIHsNCj4gKyAgICBlbnVtIHpzZGFfc3ltX2NoYWlu X29yZGVyIGNoYWluX29yZGVyOw0KPiArDQo+ICsgICAgLyogQ2lwaGVyIFBhcmFtZXRlcnMgKi8N Cj4gKyAgICBzdHJ1Y3Qgew0KPiArICAgICAgICBlbnVtIHJ0ZV9jcnlwdG9fY2lwaGVyX29wZXJh dGlvbiBvcDsNCj4gKyAgICAgICAgZW51bSBydGVfY3J5cHRvX2NpcGhlcl9hbGdvcml0aG0gYWxn bzsNCj4gKyAgICAgICAgc3RydWN0IHsNCj4gKyAgICAgICAgICAgIHVpbnQ4X3QgZGF0YVtaU0RB X0NJUEhFUl9LRVlfTUFYX0xFTl07DQo+ICsgICAgICAgICAgICBzaXplX3QgbGVuZ3RoOw0KPiAr ICAgICAgICB9IGtleV9lbmNyeTsNCj4gKyAgICAgICAgc3RydWN0IHsNCj4gKyAgICAgICAgICAg IHVpbnQ4X3QgZGF0YVtaU0RBX0NJUEhFUl9LRVlfTUFYX0xFTl07DQo+ICsgICAgICAgICAgICBz aXplX3QgbGVuZ3RoOw0KPiArICAgICAgICB9IGtleV9kZWNyeTsNCj4gKyAgICAgICAgc3RydWN0 IHsNCj4gKyAgICAgICAgICAgIHVpbnQzMl90IG9mZnNldDsNCj4gKyAgICAgICAgICAgIHNpemVf dCBsZW5ndGg7DQo+ICsgICAgICAgIH0gaXY7DQo+ICsNCj4gKyAgICAgICAgdWludDMyX3QgZGF0 YXVuaXRfbGVuOw0KPiArICAgICAgICB1aW50OF90IGxiYWRzOw0KPiArICAgIH0gY2lwaGVyOw0K PiArDQo+ICsgICAgc3RydWN0IHsNCj4gKyAgICAgICAgZW51bSBydGVfY3J5cHRvX2F1dGhfb3Bl cmF0aW9uIG9wOw0KPiArICAgICAgICAvKiBBdXRoIG9wZXJhdGlvbiAqLw0KPiArICAgICAgICBl bnVtIHJ0ZV9jcnlwdG9fYXV0aF9hbGdvcml0aG0gYWxnbzsNCj4gKyAgICAgICAgLyogQXV0aCBh bGdvcml0aG0gKi8NCj4gKyAgICAgICAgdWludDE2X3QgZGlnZXN0X2xlbmd0aDsNCj4gKyAgICB9 IGF1dGg7DQo+ICsNCj4gKyAgICBib29sIGNpcGhlcl9maXJzdDsNCj4gK307DQo+ICsNCj4gK19f cnRlX3dlYWsgaW50DQo+ICt6c2RhX2VuY3J5X21hdGNoKGNvbnN0IHZvaWQgKm9wX2luKTsNCj4g Kw0KPiArX19ydGVfd2VhayBpbnQNCj4gK3pzZGFfZGVjcnlfbWF0Y2goY29uc3Qgdm9pZCAqb3Bf aW4pOw0KPiArDQo+ICtfX3J0ZV93ZWFrIGludA0KPiArenNkYV9oYXNoX21hdGNoKGNvbnN0IHZv aWQgKm9wX2luKTsNCj4gKw0KPiArX19ydGVfd2VhayBpbnQNCj4gK3pzZGFfYnVpbGRfY2lwaGVy X3JlcXVlc3Qodm9pZCAqb3BfaW4sIGNvbnN0IHN0cnVjdCB6c2RhX3F1ZXVlICpxdWV1ZSwNCj4g KyAgICAgICAgICAgICB2b2lkICoqb3BfY29va2llcywgY29uc3QgdWludDE2X3QgbmV3X3RhaWwp Ow0KPiArDQo+ICtfX3J0ZV93ZWFrIGludA0KPiArenNkYV9idWlsZF9oYXNoX3JlcXVlc3Qodm9p ZCAqb3BfaW4sIGNvbnN0IHN0cnVjdCB6c2RhX3F1ZXVlICpxdWV1ZSwNCj4gKyAgICAgICAgICAg ICAgIHZvaWQgKipvcF9jb29raWVzLCBjb25zdCB1aW50MTZfdCBuZXdfdGFpbCk7DQo+ICsNCj4g K19fcnRlX3dlYWsgaW50DQo+ICt6c2RhX2NyeXB0b19jYWxsYmFjayh2b2lkICpjb29raWVfaW4s IHN0cnVjdCB6c2RhX2NxZSAqY3FlKTsNCj4gKw0KPiArX19ydGVfd2VhayBpbnQNCj4gK3pzZGFf Y3J5cHRvX3NldF9zZXNzaW9uX3BhcmFtZXRlcnModm9pZCAqc2Vzc19wcml2LA0KPiArICAgICAg ICAgICAgICAgIHN0cnVjdCBydGVfY3J5cHRvX3N5bV94Zm9ybSAqeGZvcm0pOw0KPiArDQo+ICtp bnQgenNkYV9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9k ZXYpOw0KPiArDQo+ICtpbnQgenNkYV9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHpzZGFfcGNpX2Rl dmljZSAqenNkYV9wY2lfZGV2KTsNCj4gKw0KPiArI2VuZGlmIC8qIF9aU0RBX1NZTV9QTURfSF8g Ki8NCj4gLS0NCj4gMi4yNy4wDQoNCg==