From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013034.outbound.protection.outlook.com [40.107.162.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0FB6933291A for ; Mon, 17 Nov 2025 13:42:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.34 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763386968; cv=fail; b=mGE6wna1d1aNbqWncmO4WzFnJunK7n+CReMBj/IZVGnI+uXtY7vKL8PV3bL2gHirPCPGrDwX3vvjnqc04y3gSfAGLvw3TPqngoS23vaZPQV+TwlZZlp/JHMqy/Y/A9vjxyFYX7RzCSLx4CYKOf9tp3makjXuKhLhSRalwYvdRf8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763386968; c=relaxed/simple; bh=IFmvUpFEznpI4dT6wiNStFRZZIhgTNoRmCy/7YOpwSw=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=s9XOnae0FaoP0vEukeREhIU1UOWNHhpqh21StCJ0VfdGMgbyVXU/Wa4p2S5wFKt1K7O+9mrdLderZdKs5USQKqrVeCpCI00lhQwSfupDqT9pQ8lUskrgqd/m9t/KGjzHlqvfHsuFFq4z0pgZs7FT5qqxnZwYWbepZanDMFEcF4U= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b=EMNCKd2G; arc=fail smtp.client-ip=40.107.162.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=@siemens.com header.b="EMNCKd2G" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jr9HRtlErco8BPfVOxJfoaUrsdqDhmKqB0EPsW0GiFI3VOLZzbRQvim83lGOXgZHQ5EpYn4jlrZwLvcKA1CaKwVRj6dolwq/FD/lrJa7guYQ43iPFaroa6/AuPM0+3RtnDu60xPsbGgwP9lrkXEHoCY8ngbvEfCcddw5QKVayk6kGm+GPZOhPstcFCRsQhY3KnDGev/88MQR3ORSPUGiA0Rc6Y7MPbc4K9vEZ98meOWY81OISONU2eMy7xqvZ+DrpsnHQqOe9HtdpkMY5GuP2k1zkaEESLqt85d/v38Pdcvi14bjyPXDKEink5y1jcbsmK4+Cu2qeOq+271IA7yLUA== 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=IFmvUpFEznpI4dT6wiNStFRZZIhgTNoRmCy/7YOpwSw=; b=yOgRfbWAogA7DerP+eVGoe2UPiBDVZ15YiavRhbrL6A+LiYWGYTTkwgwbvPQqXYpOHAT4lFaq2LJc/ynB2L/K0Va892iCukwdARv5RPW3rDS0OCXVWVySltYC/Nu38FGzry8ZABFo+m6hRtBGC4fVWO8RaCfZAlcaZQIsGoJ6CP0bUfvweHIYfB2OF9itrqoWXOo2QfW/XhGQcROrwFeV9NrF56eAyLD+Am6Y6Oe+lUQcm3YHDesk1ej76E4YQtLwro8g0NazIbNJ+5A92DyldbHEOL0yyE+BN56EMUed6S5rI33oaUjG3PLCIV+zGownmtIwysHdyE6idodTj3HQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IFmvUpFEznpI4dT6wiNStFRZZIhgTNoRmCy/7YOpwSw=; b=EMNCKd2GZGdmKXDrLcZIfFKda0ayohx/U8V3NOAIaCcagA/PL0B1Cxwb26GnBce/cD+96xD8c4izt1GkMGBXh0xxxsiUAtn8BUvhzQSVCOFLUucG1tsZDnCbXQBPAxkLEswSbPEQvzxm37MBsB2n3GqbBip28qJePBmOXMfLZ/KdphJ2+W86zzt3VPF+CQb1Wdy9ERyu1Xc5x+rwWO3RyZHG95A/wZmc606oIJykaOsabGlfUZYh5VrFcbW6SlZamj1chKCMX/SP46MUnqp0cm0Nik0Y6mcWNo6RmQvwLod5GPt4K6rjVp9pFgb7pclXMP1iy4Sn41W5WNBeQkaouA== Received: from AS8PR10MB6867.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5b6::22) by AM9PR10MB4133.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:1f4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.21; Mon, 17 Nov 2025 13:42:40 +0000 Received: from AS8PR10MB6867.EURPRD10.PROD.OUTLOOK.COM ([fe80::9126:d21d:31c4:1b9f]) by AS8PR10MB6867.EURPRD10.PROD.OUTLOOK.COM ([fe80::9126:d21d:31c4:1b9f%3]) with mapi id 15.20.9320.013; Mon, 17 Nov 2025 13:42:40 +0000 From: "Sverdlin, Alexander" To: "mingo@kernel.org" , "peterz@infradead.org" , "linux-kernel@vger.kernel.org" , "bigeasy@linutronix.de" CC: "torvalds@linux-foundation.org" , "tglx@linutronix.de" , "paulmck@kernel.org" , "rostedt@goodmis.org" , "will@kernel.org" , "joel@joelfernandes.org" Subject: Re: [PATCH 6/9] lockdep: Introduce wait-type checks Thread-Topic: [PATCH 6/9] lockdep: Introduce wait-type checks Thread-Index: AQHcV8gK2ehlZyBvfkSW/oqQ6DZILA== Date: Mon, 17 Nov 2025 13:42:40 +0000 Message-ID: References: <20200313174701.148376-1-bigeasy@linutronix.de> <20200313174701.148376-7-bigeasy@linutronix.de> In-Reply-To: <20200313174701.148376-7-bigeasy@linutronix.de> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.54.3 (3.54.3-2.fc41) authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS8PR10MB6867:EE_|AM9PR10MB4133:EE_ x-ms-office365-filtering-correlation-id: 194ce42c-1c0f-4848-7140-08de25df2d99 x-ms-exchange-atpmessageproperties: SA x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?ZVowSS9DL0RwOHpNY2RMRkd1emV5MDh6MjAxOThiN0tJOWRSZENreVdKLy8z?= =?utf-8?B?QlZvR2VaWnB3N3FveWJmRW8vY2YvdEloZjB3a0cvSjhkQTJ6K1Mwc2Rra05W?= =?utf-8?B?ZUJJRkxZNjJFdFh1UG85UXBDbnVnSWpVVEVkRW00b25oQVgyY0crMGRmTVE1?= =?utf-8?B?QS84ZmExS3pNeGlWdllmZUhRWTliY21NY2daaW1BU3dRRXdHVlQ1U3diOTA5?= =?utf-8?B?SXNLbGtHd3pKTHJQR2dibjhPZnNtRHEyRlAyVy84ZVdyNy9TQ2lqT2xwYUx6?= =?utf-8?B?ak84WE1VazJoTlc3VEprZk42MTlpZXdUc0lFUmUzSld2T0R4ekRXZEJLR0Nz?= =?utf-8?B?NllEMWNTYnhOaVVWSzg5MmNnLzlMYjBCYm9xcWZheUJWelZibXREekxlK1M3?= =?utf-8?B?OHY2VTNIZ2JmYVIzOHpYT0xKTE14ZmRHQlZaTUVoV0s0azY4MDBLWmozYi91?= =?utf-8?B?cWdpd1IyUWZHdk5ybUl1Wkd2a1Ewem50Y3BmNFBtOE0weU1Qb3ZyRGc3WjFy?= =?utf-8?B?VWx0a0tqNTNzajdPamZjdThkdVUxZWRCdGZUc3BsOEJlMzYxUkFRUmZhMUhO?= =?utf-8?B?ajFhWjJoL0toekpQc1JIcEJPT09RaEd5OFBQeWdUTjRib2FhTnZOWUJYUTBV?= =?utf-8?B?dGwxNVEycStzNm0vc0cwZ09ibVNtcmxvWjRwZlhzcEtYU3gzdnJvUjJaejJr?= =?utf-8?B?WUdUc09zT0t1V1dtV0pzaWxvVUNCVERHUTdJOFNib2RpUmg5YjlneUhWOHJB?= =?utf-8?B?UHRjWjZVbVdhcGplUEcvQkF1M2NWd3p3UWluekorVkU3RVVON1JNWnhzTytt?= =?utf-8?B?OFl3OG9VWnBXRXN1NERadEE2TXZkelhCakkwT3dhSEExNHk0Z0krMTNucjk3?= =?utf-8?B?bXNvMmdSNmE4L2dZZDd3NXBDVnMwQVZadXQyTHpBT2kzeEI1ZERZcDVHbWtX?= =?utf-8?B?MENjb0E5UFhvTWhGemdHZnQ2M3F4aE1iY1hleHpkZ1NpMStBYzJVSFJDVHhp?= =?utf-8?B?OERBOWhZVHIrYzAzYkdXRDJFSCtQWlFYaHgydEQ0VUFUbmx4WUVyNmtyYm50?= =?utf-8?B?ZHZNbjZyRzlWWVZ6VEEzNkgxSnFmdE9OUnhNdE5keU5qN1Axd0lYc1RUUXBn?= =?utf-8?B?dXc3WXlWVFk3TWZEODF0ZmJTdWNmL0ovZTFoRDhFYXF5czF0Z3JpRk5iRHhz?= =?utf-8?B?VG1ZOWVYMmZ3WHdVSEFnYk1sT2kyMUlIby8vc3ZrYWs5Tk9kQWFxNGxyQ0hv?= =?utf-8?B?cEJseHI4cFYweUFOUWpMRFlhMHNrWVNrK3picjJXVkpOVUhrZTU1b3FiNEdT?= =?utf-8?B?VXZoUkYwTHVUakEzaWIwSUR2bWZHZDdETy9pN3VDTXhoZVdUSWFNMzZtTm9I?= =?utf-8?B?M1M0amJBVWNwMGFoUkVzOFBrOVlRUEVRRGliV3F2SVAxMTExWEpRVWRZMFNw?= =?utf-8?B?RXJ1d3hrQ0MzbFZHWWJuWUw4VTZ3Mm1JWGVOVktKaW4zUitvSmJKNWRpQ2s5?= =?utf-8?B?R3NhRjVadXdKZytPVnhtOHlhQjl5Z3Y2NTJINlRFRmRKSFhrWDVCNEhWL0sv?= =?utf-8?B?anMwRnN6S0tYc1NqclZCTnZucndkK3JjcnluMWdYWkhGRmsvY09XOHZvVjFh?= =?utf-8?B?MW9zMS9ESml1bk9rZHVWeGViQVNyS1RqblRXU2JQUTdVT1p4aDZOaXdpT3Zv?= =?utf-8?B?dW9NL1pvNlk4MXVpSlJTejhIcXJQSFBLRG45bnkzbHVlcXFvUnVpM2lWcHFW?= =?utf-8?B?OHdUKzVQNytJZnMvMjR4SXhCWi9HRXZuZUlzcTJqWGU2UnE3MWxvOTBtbGR4?= =?utf-8?B?RitZQlMxSEtMNERPNXpLZEhOSlN1N2pUTlpXOVQvNGJKb3B2TEx4a1JFSlFo?= =?utf-8?B?cDIyVEMxRTcxTHNJRDZQUnR2S0lqN1pEeGxjZVdDejExWXp0TEdCanBvT01a?= =?utf-8?B?bEdnSVRlU29Za0w3ZzlzRnExaVMwRkhpdFRIdHBuSUxRTHcwM09VTks5dElH?= =?utf-8?B?ZW1BT0Y3RWZ3cjNlM3djU2hIYThwUE9Bdnp3SXVwV3VpeHhhaGlzS3dCRmhU?= =?utf-8?Q?gzXKMl?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR10MB6867.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(38070700021);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TlFjVUsyNndJR0hHSUNFSlUraEpsdHBpVzJPQThXQ2tRMlorU2lkaWFBZkpB?= =?utf-8?B?R05ZWURCZldPNHE0WW9oOUgwRm1rcXVMWjVnd3FtRStwc0pMVmJjTktHT1dL?= =?utf-8?B?VVlORHI5d044eWYvdzFGRWdZUzF3VENnSnBJSlpBSlhTS2IrbStzMnprUXVr?= =?utf-8?B?QkRQQ3ArQ3JLMnBBK2dJemlLRkt2UHEyRi9TZDZadE9FNW1FS1AvRCtwdEhi?= =?utf-8?B?TnAvMEpUMi9RZUJ1V2hmSjAzaTlIUmJBc3hNNngyZVI2RmtFWHZnbVJYcDY0?= =?utf-8?B?am1hVDNGQ01wMUF0UUgvZmhMb2lCTWx2QUtwZXVrTGVVd1FjL2tjaHlwWlp0?= =?utf-8?B?VWN0K2RtOWFOREFsSUc0OHFPMXdtWW5UM2hQN0NCMjRDaEhCYVUrN2g5K284?= =?utf-8?B?VXV2Q1B5NDcwdHl3bmVzZTlLTkFNNTNmYkp4QWdSMnRBamt6QkVKSWZ4R09x?= =?utf-8?B?OUNyZ093YTZlU0pYclJoYWRMZVVLaU5SbmNjeDdEUkxRdTVsLzIzbGhUaTIz?= =?utf-8?B?aURhYkZtTXUySnZ3ZkQ0RzB2UGdHaTZtdXB2OUhrVnRZRW1BcnhmQ2tKbTFS?= =?utf-8?B?clBBcGJlSEFjUld6R21aWDRoeS8ralQ4MlBaRG5iT2M4RzhSYUUzekkwZy9m?= =?utf-8?B?TWlpb2pVakc1ZXE4d0llaFJEWVRmRm13QkE3bDFmNjJtM1ZoQm85LzlFb0hI?= =?utf-8?B?MlNIRW9pSE1nVStNbDhjZEE4MytpYUlvWm9BNTk5ZlBRQ1BkUTV4V3JFOVR5?= =?utf-8?B?MkswSTdPaTUyTC8wNzdZb1Y1N1pLSXVrZVEreEUxeUpXUzNZdmNUcmRzTWd6?= =?utf-8?B?SVk5SE9kM091eFFiem1vV05LNEVrNmVxTGFMRHJYNkpTNHlnS0IwcG5vdnlI?= =?utf-8?B?ekdTcm90MzJyR2R4bWFBdzNvZXNBSkxYV1VVR0I4Umtzbm5ZOUxsajNhTHJ0?= =?utf-8?B?Z2FEVGJ1ZXRUZ2R0dytEUnNnZWVyK0dTb0Zxd1l0TVZCakRZTUNMQy8zS1dy?= =?utf-8?B?VHZjcW4vQjgwSlZyOE1vYUozZHEyK1FSaHFkQWFTVURnaHFlaXNsVDljM2pV?= =?utf-8?B?dEtiREI0RWE5b1RZc1h3ZnA3bDI4bUVQMXFHT3ZGUVY0QmlXTDl3Q3VOV0Rs?= =?utf-8?B?c0I2aHpaRVhlblM5YmlXVVJ4dDMxenBrT01md3NRRWl3Nkh4MUIvTWc3Q2FL?= =?utf-8?B?YU1VNTVMK2tkVFFzVlpMaWQ5YWJ0T3J3V2laaWRlMmUwM3JCV0E1L0lUbS9F?= =?utf-8?B?aVluVWJYdUtLTWVTQmwxdWZwNVovbjJGaVQvNnlzNGdYZ0REQkJ2NG9uMlpS?= =?utf-8?B?VTgxbktrckJnM0ovUm9QM0l1QnI3RjlWOUdiREl6UnBmdzJZVjZwcWtVTmxy?= =?utf-8?B?QmUrUnF2dUtpSTVUYXlza2lVdytaK3R1MWZJZEN2NWNvYWdBdlhaaTNHeUZ6?= =?utf-8?B?L2FxRi8rdlQ3bnBQMWk0OC9QY3BWcHpCaE5qajFqa1lwM085ZzJpeEpQOEov?= =?utf-8?B?eFI0NzVuM2xyS0VoN21pM3pieEp4YUQ0VEdLeHNNYlZtYXVnekVnZC9vQU9L?= =?utf-8?B?c1c5YUpubnB4cmR4b3Jib1lsSlYvMDBLb0o1VDNPOFJnQlM1dzA0c1NLQ1Na?= =?utf-8?B?WHY4dndWMS9SYm5hOXZuY2hORlpSU3I2ZnFhVzg1UGJGOGpHSUQ5UEk2bS9I?= =?utf-8?B?b0kyMnBEWS9VVXF1d1VTMnZLcExRQk1mVU5jcEtTSlVtRFBBWm1pN1BHaEJX?= =?utf-8?B?SEhWWE8zK293MFlMQjdFcFdLWEZPOTVIemZJL01rOWg0MEYrdVFsQlhwaWYr?= =?utf-8?B?eUV3bFVEK1pnSmdyaS9Jc0VRbmFCVXI0L3lpOFo5czNaZGxrUkZsNzJJcXNr?= =?utf-8?B?WmJJK1VIbHlGeUpwdGdReXlNcllBNzZneWwwUmNHTGN3N0RwaUNUNVFLSzlv?= =?utf-8?B?WE1rckJQVXNYZmRGMDY4L0tnankyUkZnaktlOFVYS2lOS0N1dnZreUMySVJY?= =?utf-8?B?aXN0VEdkWWE2M2dWUVNWZmZLbG1rQkFwajRVQWxZL2NrUnlUNHpiMWduYWgx?= =?utf-8?B?TnMxVUpYSE9hZ1NwMStsQytscFpjQXVFaVFFUk1xT3cxb2JNSHhiRmRQdUFx?= =?utf-8?B?VXV1R25leVFCaHdhR0UvakFBVkRyWDV2elhPekxqVHVBc05PWWFiUkx2VEdX?= =?utf-8?Q?7XDNNyHVb8Fd3Slbz+g8cK4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <3DECEB9954195841ABCA3292ADA52FE1@EURPRD10.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR10MB6867.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 194ce42c-1c0f-4848-7140-08de25df2d99 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2025 13:42:40.5970 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /wp7uazS0gZ2To0BMJcCmlSgfqAZSgTFEjWJpHYeQDnaJauTgjSWBthcoOSlzivQsTAut4a14F9LuEdIrIkI4H7NeU/OKjUpne3vz8KlwLg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR10MB4133 SGVsbG8gUGV0ZXIgYW5kIGFsbCwNCg0KSSdtIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBzcGxh dCBJJ3ZlIGdvdCB3aXRoIHY2LjE4LXJjMToNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClsgQlVHOiBJbnZhbGlkIHdhaXQgY29udGV4dCBdDQo2LjE4LjAtcmMxK2dpdDQ3NjMwOTQ5 N2E1MyAjMSBUYWludGVkOiBHICAgICAgICAgICBPICAgICAgIA0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCnNvbWUtdXNlci1zcGFjZS1wcm9jZXNzLzEyNTEgaXMgdHJ5aW5nIHRvIGxv Y2s6DQpmZmZmMDAwMDA1Y2JjNTQ4ICgmY291bnRlci0+ZXZlbnRzX2xpc3RfbG9jayl7Li4uLn0t ezM6M30sIGF0OiBjb3VudGVyX3B1c2hfZXZlbnQrMHg2OC8weDQzMCBbY291bnRlcl0NCm90aGVy IGluZm8gdGhhdCBtaWdodCBoZWxwIHVzIGRlYnVnIHRoaXM6DQpjb250ZXh0LXsyOjJ9DQpubyBs b2NrcyBoZWxkIGJ5IHNvbWUtdXNlci1zcGFjZS1wcm9jZXNzLzEyNTEuDQpzdGFjayBiYWNrdHJh Y2U6DQpDUFU6IDAgVUlEOiAwIFBJRDogMTI1MSBDb21tOiBzb21lLXVzZXItc3BhY2UtcHJvY2Vz cyBUYWludGVkOiBHICAgICAgICAgICBPICAgICAgICA2LjE4LjAtcmMxK2dpdDQ3NjMwOTQ5N2E1 MyAjMSBQUkVFTVBUIA0KQ2FsbCB0cmFjZToNCiBzaG93X3N0YWNrKzB4MjAvMHgzOCAoQykNCiBk dW1wX3N0YWNrX2x2bCsweDhjLzB4ZDANCiBkdW1wX3N0YWNrKzB4MTgvMHgyOA0KIF9fbG9ja19h Y3F1aXJlKzB4OTFjLzB4MWY3OA0KIGxvY2tfYWNxdWlyZSsweDFjNC8weDMzOA0KIF9yYXdfc3Bp bl9sb2NrX2lycXNhdmUrMHg2OC8weDk4DQogY291bnRlcl9wdXNoX2V2ZW50KzB4NjgvMHg0MzAg W2NvdW50ZXJdDQogaW50ZXJydXB0X2NudF9pc3IrMHg0MC8weDc4IFtpbnRlcnJ1cHRfY250XQ0K IF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHhhNC8weDM5OA0KIGhhbmRsZV9pcnFfZXZlbnQr MHg1NC8weGI4DQogaGFuZGxlX3NpbXBsZV9pcnErMHhlNC8weDEyOA0KIGhhbmRsZV9pcnFfZGVz YysweDQ4LzB4NjgNCiBnZW5lcmljX2hhbmRsZV9kb21haW5faXJxKzB4MjQvMHgzOA0KIGdwaW9f aXJxX2hhbmRsZXIrMHhhMC8weDE0MA0KIGhhbmRsZV9pcnFfZGVzYysweDQ4LzB4NjgNCiBnZW5l cmljX2hhbmRsZV9kb21haW5faXJxKzB4MjQvMHgzOA0KIGdpY19oYW5kbGVfaXJxKzB4NTQvMHgx MjgNCiBjYWxsX29uX2lycV9zdGFjaysweDMwLzB4NzANCiBkb19pbnRlcnJ1cHRfaGFuZGxlcisw eDg4LzB4OTgNCiBlbDBfaW50ZXJydXB0KzB4NWMvMHgyNzANCiBfX2VsMF9pcnFfaGFuZGxlcl9j b21tb24rMHgxOC8weDI4DQogZWwwdF82NF9pcnFfaGFuZGxlcisweDEwLzB4MjANCiBlbDB0XzY0 X2lycSsweDE5OC8weDFhMA0KDQpUaGlzIGlzIG5vdCBQUkVFTVBUX1JULCBidXQgc3RpbGwgQ09O RklHX1BST1ZFX1JBV19MT0NLX05FU1RJTkc9eSBjb25maWcuLi4NClRoZSByZWxldmFudCBsb2dp YyBpbiB0aGUgY3VycmVudCB2Ni4xOC1yY1ggaXMgc3RpbGwgbGFyZ2VseSB1bmNoYW5nZWQNCmZy b20gdGhlIFN1YmplY3QgY29tbWl0IGFuZC4uLg0KDQpPbiBGcmksIDIwMjAtMDMtMTMgYXQgMTg6 NDYgKzAxMDAsIFNlYmFzdGlhbiBBbmRyemVqIFNpZXdpb3Igd3JvdGU6DQo+IEZyb206IFBldGVy IFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4NCj4gDQo+IEV4dGVuZCBsb2NrZGVwIHRv IHZhbGlkYXRlIGxvY2sgd2FpdC10eXBlIGNvbnRleHQuDQo+IA0KPiBUaGUgY3VycmVudCB3YWl0 LXR5cGVzIGFyZToNCj4gDQo+IAlMRF9XQUlUX0ZSRUUsCQkvKiB3YWl0IGZyZWUsIHJjdSBldGMu LiAqLw0KPiAJTERfV0FJVF9TUElOLAkJLyogc3BpbiBsb29wcywgcmF3X3NwaW5sb2NrX3QgZXRj Li4gKi8NCj4gCUxEX1dBSVRfQ09ORklHLAkJLyogQ09ORklHX1BSRUVNUFRfTE9DSywgc3Bpbmxv Y2tfdCBldGMuLiAqLw0KPiAJTERfV0FJVF9TTEVFUCwJCS8qIHNsZWVwaW5nIGxvY2tzLCBtdXRl eF90IGV0Yy4uICovDQo+IA0KPiBXaGVyZSBsb2NrZGVwIHZhbGlkYXRlcyB0aGF0IHRoZSBjdXJy ZW50IGxvY2sgKHRoZSBvbmUgYmVpbmcgYWNxdWlyZWQpDQo+IGZpdHMgaW4gdGhlIGN1cnJlbnQg d2FpdC1jb250ZXh0IChhcyBnZW5lcmF0ZWQgYnkgdGhlIGhlbGQgc3RhY2spLg0KPiANCj4gVGhp cyBlbnN1cmVzIHRoYXQgdGhlcmUgaXMgbm8gYXR0ZW1wdCB0byBhY3F1aXJlIG11dGV4ZXMgd2hp bGUgaG9sZGluZw0KPiBzcGlubG9ja3MsIHRvIGFjcXVpcmUgc3BpbmxvY2tzIHdoaWxlIGhvbGRp bmcgcmF3X3NwaW5sb2NrcyBhbmQgc28gb24uIEluDQo+IG90aGVyIHdvcmRzLCBpdHMgYSBtb3Jl IGZhbmN5IG1pZ2h0X3NsZWVwKCkuDQo+IA0KPiBPYnZpb3VzbHkgUkNVIG1hZGUgdGhlIGVudGly ZSBvcmRlYWwgbW9yZSBjb21wbGV4IHRoYW4gYSBzaW1wbGUgc2luZ2xlDQo+IHZhbHVlIHRlc3Qg YmVjYXVzZSBSQ1UgY2FuIGJlIGFjcXVpcmVkIGluIChwcmV0dHkgbXVjaCkgYW55IGNvbnRleHQg YW5kDQo+IHdoaWxlIGl0IHByZXNlbnRzIGEgY29udGV4dCB0byBuZXN0ZWQgbG9ja3MgaXQgaXMg bm90IHRoZSBzYW1lIGFzIGl0DQo+IGdvdCBhY3F1aXJlZCBpbi4NCj4gDQo+IFRoZXJlZm9yZSBp dHMgbmVjZXNzYXJ5IHRvIHNwbGl0IHRoZSB3YWl0X3R5cGUgaW50byB0d28gdmFsdWVzLCBvbmUN Cj4gcmVwcmVzZW50aW5nIHRoZSBhY3F1aXJlIChvdXRlcikgYW5kIG9uZSByZXByZXNlbnRpbmcg dGhlIG5lc3RlZCBjb250ZXh0DQo+IChpbm5lcikuIEZvciBtb3N0ICdub3JtYWwnIGxvY2tzIHRo ZXNlIHR3byBhcmUgdGhlIHNhbWUuDQo+IA0KPiBbIFRvIG1ha2Ugc3RhdGljIGluaXRpYWxpemF0 aW9uIGVhc2llciB3ZSBoYXZlIHRoZSBydWxlIHRoYXQ6DQo+ICAgLm91dGVyID09IElOViBtZWFu cyAub3V0ZXIgPT0gLmlubmVyOyBiZWNhdXNlIElOViA9PSAwLiBdDQo+IA0KPiBJdCBmdXJ0aGVy IG1lYW5zIHRoYXQgaXRzIHJlcXVpcmVkIHRvIGZpbmQgdGhlIG1pbmltYWwgLmlubmVyIG9mIHRo ZSBoZWxkDQo+IHN0YWNrIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgb3V0ZXIgb2YgdGhlIG5ldyBs b2NrOyBiZWNhdXNlIHdoaWxlICdub3JtYWwnDQo+IFJDVSBwcmVzZW50cyBhIENPTkZJRyB0eXBl IHRvIG5lc3RlZCBsb2NrcywgaWYgaXQgaXMgdGFrZW4gd2hpbGUgYWxyZWFkeQ0KPiBob2xkaW5n IGEgU1BJTiB0eXBlIGl0IG9idmlvdXNseSBkb2Vzbid0IHJlbGF4IHRoZSBydWxlcy4NCj4gDQo+ IEJlbG93IGlzIGFuIGV4YW1wbGUgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGUgdHJpdmlhbCB0ZXN0 IGNvZGU6DQo+IA0KPiAgIHJhd19zcGluX2xvY2soJmZvbyk7DQo+ICAgc3Bpbl9sb2NrKCZiYXIp Ow0KPiAgIHNwaW5fdW5sb2NrKCZiYXIpOw0KPiAgIHJhd19zcGluX3VubG9jaygmZm9vKTsNCj4g DQo+ICBbIEJVRzogSW52YWxpZCB3YWl0IGNvbnRleHQgXQ0KPiAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCj4gIHN3YXBwZXIvMC8xIGlzIHRyeWluZyB0byBsb2NrOg0KPiAgZmZmZmM5 MDAwMDAxM2YyMCAoJmJhcil7Li4uLn0tezM6M30sIGF0OiBrZXJuZWxfaW5pdCsweGRiLzB4MTg3 DQo+ICBvdGhlciBpbmZvIHRoYXQgbWlnaHQgaGVscCB1cyBkZWJ1ZyB0aGlzOg0KPiAgMSBsb2Nr IGhlbGQgYnkgc3dhcHBlci8wLzE6DQo+ICAgIzA6IGZmZmZjOTAwMDAwMTNlZTAgKCZmb28peysu Ky59LXsyOjJ9LCBhdDoga2VybmVsX2luaXQrMHhkMS8weDE4Nw0KPiANCj4gVGhlIHdheSB0byBy ZWFkIGl0IGlzIHRvIGxvb2sgYXQgdGhlIG5ldyAte24sbX0gcGFydCBpbiB0aGUgbG9jaw0KPiBk ZXNjcmlwdGlvbjsgLXszOjN9IGZvciB0aGUgYXR0ZW1wdGVkIGxvY2ssIGFuZCB0cnkgYW5kIG1h dGNoIHRoYXQgdXAgdG8NCj4gdGhlIGhlbGQgbG9ja3MsIHdoaWNoIGluIHRoaXMgY2FzZSBpcyB0 aGUgb25lOiAtezIsMn0uDQo+IA0KPiBUaGlzIHRlbGxzIHRoYXQgdGhlIGFjcXVpcmluZyBsb2Nr IHJlcXVpcmVzIGEgbW9yZSByZWxheGVkIGVudmlyb25tZW50IHRoYW4NCj4gcHJlc2VudGVkIGJ5 IHRoZSBsb2NrIHN0YWNrLg0KPiANCj4gQ3VycmVudGx5IG9ubHkgdGhlIG5vcm1hbCBsb2NrcyBh bmQgUkNVIGFyZSBjb252ZXJ0ZWQsIHRoZSByZXN0IG9mIHRoZQ0KPiBsb2NrZGVwIHVzZXJzIGRl ZmF1bHRzIHRvIC5pbm5lciA9IElOViB3aGljaCBpcyBpZ25vcmVkLiBNb3JlIGNvbnZlcnNpb25z DQo+IGNhbiBiZSBkb25lIHdoZW4gZGVzaXJlZC4NCj4gDQo+IFRoZSBjaGVjayBmb3Igc3Bpbmxv Y2tfdCBuZXN0aW5nIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQuIEl0J3MgYSBzZXBhcmF0ZQ0K PiBjb25maWcgb3B0aW9uIGZvciBub3cgYXMgdGhlcmUgYXJlIGtub3duIHByb2JsZW1zIHdoaWNo IGFyZSBjdXJyZW50bHkNCj4gYWRkcmVzc2VkLiBUaGUgY29uZmlnIG9wdGlvbiBhbGxvd3MgdG8g aWRlbnRpZnkgdGhlc2UgcHJvYmxlbXMgYW5kIHRvDQo+IHZlcmlmeSB0aGF0IHRoZSBzb2x1dGlv bnMgZm91bmQgYXJlIGluZGVlZCBzb2x2aW5nIHRoZW0uDQo+IA0KPiBUaGUgY29uZmlnIHN3aXRj aCB3aWxsIGJlIHJlbW92ZWQgYW5kIHRoZSBjaGVja3Mgd2lsbCBwZXJtYW5lbnRseSBlbmFibGVk DQo+IG9uY2UgdGhlIHZhc3QgbWFqb3JpdHkgb2YgaXNzdWVzIGhhcyBiZWVuIGFkZHJlc3NlZC4N Cj4gDQo+IFsgYmlnZWFzeTogTW92ZSBMRF9XQUlUX0ZSRUUs4oCmIG91dCBvZiBDT05GSUdfTE9D S0RFUCB0byBhdm9pZCBjb21waWxlDQo+IAkgICBmYWlsdXJlIHdpdGggQ09ORklHX0RFQlVHX1NQ SU5MT0NLICsgIUNPTkZJR19MT0NLREVQXQ0KPiBbIHRnbHg6IEFkZCB0aGUgY29uZmlnIG9wdGlv biBdDQo+IA0KPiBSZXF1ZXN0ZWQtYnk6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4 LmRlPg0KPiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBaaWpsc3RyYSAoSW50ZWwpIDxwZXRlcnpAaW5m cmFkZWFkLm9yZz4NCj4gU2lnbmVkLW9mZi1ieTogU2ViYXN0aWFuIEFuZHJ6ZWogU2lld2lvciA8 YmlnZWFzeUBsaW51dHJvbml4LmRlPg0KDQpbXQ0KDQo+IGRpZmYgLS1naXQgYS9rZXJuZWwvbG9j a2luZy9sb2NrZGVwLmMgYi9rZXJuZWwvbG9ja2luZy9sb2NrZGVwLmMNCj4gaW5kZXggMzI0MDZl ZjBkNmEyZC4uNGE5YWJmOGJkOWQxNSAxMDA2NDQNCj4gLS0tIGEva2VybmVsL2xvY2tpbmcvbG9j a2RlcC5jDQo+ICsrKyBiL2tlcm5lbC9sb2NraW5nL2xvY2tkZXAuYw0KPiBAQCAtMzc5OCw2ICsz ODA2LDExMyBAQCBwcmludF9sb2NrX25lc3RlZF9sb2NrX25vdF9oZWxkKHN0cnVjdCB0YXNrX3N0 cnVjdCAqY3VyciwNCj4gIAlkdW1wX3N0YWNrKCk7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyBpbnQN Cj4gK3ByaW50X2xvY2tfaW52YWxpZF93YWl0X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICpj dXJyLA0KPiArCQkJCXN0cnVjdCBoZWxkX2xvY2sgKmhsb2NrKQ0KPiArew0KPiArCWlmICghZGVi dWdfbG9ja3Nfb2ZmKCkpDQo+ICsJCXJldHVybiAwOw0KPiArCWlmIChkZWJ1Z19sb2Nrc19zaWxl bnQpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJcHJfd2FybigiXG4iKTsNCj4gKwlwcl93YXJu KCI9PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIik7DQo+ICsJcHJfd2FybigiWyBCVUc6 IEludmFsaWQgd2FpdCBjb250ZXh0IF1cbiIpOw0KPiArCXByaW50X2tlcm5lbF9pZGVudCgpOw0K PiArCXByX3dhcm4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsNCj4gKw0KPiAr CXByX3dhcm4oIiVzLyVkIGlzIHRyeWluZyB0byBsb2NrOlxuIiwgY3Vyci0+Y29tbSwgdGFza19w aWRfbnIoY3VycikpOw0KPiArCXByaW50X2xvY2soaGxvY2spOw0KPiArDQo+ICsJcHJfd2Fybigi b3RoZXIgaW5mbyB0aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhpczpcbiIpOw0KPiArCWxvY2tk ZXBfcHJpbnRfaGVsZF9sb2NrcyhjdXJyKTsNCj4gKw0KPiArCXByX3dhcm4oInN0YWNrIGJhY2t0 cmFjZTpcbiIpOw0KPiArCWR1bXBfc3RhY2soKTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0K PiArDQo+ICsvKg0KPiArICogVmVyaWZ5IHRoZSB3YWl0X3R5cGUgY29udGV4dC4NCj4gKyAqDQo+ ICsgKiBUaGlzIGNoZWNrIHZhbGlkYXRlcyB3ZSB0YWtlcyBsb2NrcyBpbiB0aGUgcmlnaHQgd2Fp dC10eXBlIG9yZGVyOyB0aGF0IGlzIGl0DQo+ICsgKiBlbnN1cmVzIHRoYXQgd2UgZG8gbm90IHRh a2UgbXV0ZXhlcyBpbnNpZGUgc3BpbmxvY2tzIGFuZCBkbyBub3QgYXR0ZW1wdCB0bw0KPiArICog YWNxdWlyZSBzcGlubG9ja3MgaW5zaWRlIHJhd19zcGlubG9ja3MgYW5kIHRoZSBzb3J0Lg0KPiAr ICoNCj4gKyAqIFRoZSBlbnRpcmUgdGhpbmcgaXMgc2xpZ2h0bHkgbW9yZSBjb21wbGV4IGJlY2F1 c2Ugb2YgUkNVLCBSQ1UgaXMgYSBsb2NrIHRoYXQNCj4gKyAqIGNhbiBiZSB0YWtlbiBmcm9tIChw cmV0dHkgbXVjaCkgYW55IGNvbnRleHQgYnV0IGFsc28gaGFzIGNvbnN0cmFpbnRzLg0KPiArICog SG93ZXZlciB3aGVuIHRha2VuIGluIGEgc3RyaWN0ZXIgZW52aXJvbm1lbnQgdGhlIFJDVSBsb2Nr IGRvZXMgbm90IGxvb3Nlbg0KPiArICogdGhlIGNvbnN0cmFpbnRzLg0KPiArICoNCj4gKyAqIFRo ZXJlZm9yZSB3ZSBtdXN0IGxvb2sgZm9yIHRoZSBzdHJpY3Rlc3QgZW52aXJvbm1lbnQgaW4gdGhl IGxvY2sgc3RhY2sgYW5kDQo+ICsgKiBjb21wYXJlIHRoYXQgdG8gdGhlIGxvY2sgd2UncmUgdHJ5 aW5nIHRvIGFjcXVpcmUuDQo+ICsgKi8NCj4gK3N0YXRpYyBpbnQgY2hlY2tfd2FpdF9jb250ZXh0 KHN0cnVjdCB0YXNrX3N0cnVjdCAqY3Vyciwgc3RydWN0IGhlbGRfbG9jayAqbmV4dCkNCj4gK3sN Cj4gKwlzaG9ydCBuZXh0X2lubmVyID0gaGxvY2tfY2xhc3MobmV4dCktPndhaXRfdHlwZV9pbm5l cjsNCj4gKwlzaG9ydCBuZXh0X291dGVyID0gaGxvY2tfY2xhc3MobmV4dCktPndhaXRfdHlwZV9v dXRlcjsNCj4gKwlzaG9ydCBjdXJyX2lubmVyOw0KPiArCWludCBkZXB0aDsNCj4gKw0KPiArCWlm ICghY3Vyci0+bG9ja2RlcF9kZXB0aCB8fCAhbmV4dF9pbm5lciB8fCBuZXh0LT50cnlsb2NrKQ0K PiArCQlyZXR1cm4gMDsNCj4gKw0KPiArCWlmICghbmV4dF9vdXRlcikNCj4gKwkJbmV4dF9vdXRl ciA9IG5leHRfaW5uZXI7DQo+ICsNCj4gKwkvKg0KPiArCSAqIEZpbmQgc3RhcnQgb2YgY3VycmVu dCBpcnFfY29udGV4dC4uDQo+ICsJICovDQo+ICsJZm9yIChkZXB0aCA9IGN1cnItPmxvY2tkZXBf ZGVwdGggLSAxOyBkZXB0aCA+PSAwOyBkZXB0aC0tKSB7DQo+ICsJCXN0cnVjdCBoZWxkX2xvY2sg KnByZXYgPSBjdXJyLT5oZWxkX2xvY2tzICsgZGVwdGg7DQo+ICsJCWlmIChwcmV2LT5pcnFfY29u dGV4dCAhPSBuZXh0LT5pcnFfY29udGV4dCkNCj4gKwkJCWJyZWFrOw0KPiArCX0NCj4gKwlkZXB0 aCsrOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBTZXQgYXBwcm9wcmlhdGUgd2FpdCB0eXBlIGZvciB0 aGUgY29udGV4dDsgZm9yIElSUXMgd2UgaGF2ZSB0byB0YWtlDQo+ICsJICogaW50byBhY2NvdW50 IGZvcmNlX2lycXRocmVhZCBhcyB0aGF0IGlzIGltcGxpZWQgYnkgUFJFRU1QVF9SVC4NCj4gKwkg Ki8NCj4gKwlpZiAoY3Vyci0+aGFyZGlycV9jb250ZXh0KSB7DQo+ICsJCS8qDQo+ICsJCSAqIENo ZWNrIGlmIGZvcmNlX2lycXRocmVhZHMgd2lsbCBydW4gdXMgdGhyZWFkZWQuDQo+ICsJCSAqLw0K PiArCQlpZiAoY3Vyci0+aGFyZGlycV90aHJlYWRlZCkNCj4gKwkJCWN1cnJfaW5uZXIgPSBMRF9X QUlUX0NPTkZJRzsNCj4gKwkJZWxzZQ0KPiArCQkJY3Vycl9pbm5lciA9IExEX1dBSVRfU1BJTjsN Cg0KLi4uIGV2ZW4gdGhvdWdoIGl0J3MgImlmIChjdXJyLT5oYXJkaXJxX3RocmVhZGVkIHx8IGN1 cnItPmlycV9jb25maWcpIiBpbiB0aGUNCm1lYW53aGlsZSwgaXQgaXMgdW5jbGVhciB0byBtZSwg d2h5IGlzIGl0IGNvbmRpdGlvbmFsIGF0IGFsbCBhbmQgbm90IGFsd2F5cw0KIkxEX1dBSVRfQ09O RklHIiBpbiBoYXJkaXJxIGNvbnRleHQ/DQoNCldpdGggIVBSRUVNUFRfUlQgYnV0IENPTkZJR19Q Uk9WRV9SQVdfTE9DS19ORVNUSU5HPXkgd2UgYWx3YXlzIGVuZCB1cA0Kd2l0aCBMRF9XQUlUX1NQ SU4gaGVyZSBhbmQgaXQgYWx3YXlzIHdhcm5zIGlmIHdlIHRha2UgInNwaW5sb2NrX3QiIGluIGhh cmRpcnENCmNvbnRleHQgKGFzIGluIHRoZSBzcGxhdCBhYm92ZSkuIEJ1dCB0aGUgbGF0dGVyIHNo b3VsZCBiZSBsZWdhbCB1bmRlciBhbGwNCmNpcmN1bXN0YW5jZXMsIGlzbid0IGl0Pw0KDQo+ICsJ fSBlbHNlIGlmIChjdXJyLT5zb2Z0aXJxX2NvbnRleHQpIHsNCj4gKwkJLyoNCj4gKwkJICogU29m dGlycXMgYXJlIGFsd2F5cyB0aHJlYWRlZC4NCj4gKwkJICovDQo+ICsJCWN1cnJfaW5uZXIgPSBM RF9XQUlUX0NPTkZJRzsNCj4gKwl9IGVsc2Ugew0KPiArCQljdXJyX2lubmVyID0gTERfV0FJVF9N QVg7DQo+ICsJfQ0KPiArDQo+ICsJZm9yICg7IGRlcHRoIDwgY3Vyci0+bG9ja2RlcF9kZXB0aDsg ZGVwdGgrKykgew0KPiArCQlzdHJ1Y3QgaGVsZF9sb2NrICpwcmV2ID0gY3Vyci0+aGVsZF9sb2Nr cyArIGRlcHRoOw0KPiArCQlzaG9ydCBwcmV2X2lubmVyID0gaGxvY2tfY2xhc3MocHJldiktPndh aXRfdHlwZV9pbm5lcjsNCj4gKw0KPiArCQlpZiAocHJldl9pbm5lcikgew0KPiArCQkJLyoNCj4g KwkJCSAqIFdlIGNhbiBoYXZlIGEgYmlnZ2VyIGlubmVyIHRoYW4gYSBwcmV2aW91cyBvbmUNCj4g KwkJCSAqIHdoZW4gb3V0ZXIgaXMgc21hbGxlciB0aGFuIGlubmVyLCBhcyB3aXRoIFJDVS4NCj4g KwkJCSAqDQo+ICsJCQkgKiBBbHNvIGR1ZSB0byB0cnlsb2Nrcy4NCj4gKwkJCSAqLw0KPiArCQkJ Y3Vycl9pbm5lciA9IG1pbihjdXJyX2lubmVyLCBwcmV2X2lubmVyKTsNCj4gKwkJfQ0KPiArCX0N Cj4gKw0KPiArCWlmIChuZXh0X291dGVyID4gY3Vycl9pbm5lcikNCj4gKwkJcmV0dXJuIHByaW50 X2xvY2tfaW52YWxpZF93YWl0X2NvbnRleHQoY3VyciwgbmV4dCk7DQo+ICsNCj4gKwlyZXR1cm4g MDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBfX2xvY2tfaXNfaGVsZChjb25zdCBzdHJ1Y3Qg bG9ja2RlcF9tYXAgKmxvY2ssIGludCByZWFkKTsNCj4gIA0KPiAgLyoNCg0KLS0gDQpBbGV4YW5k ZXIgU3ZlcmRsaW4NClNpZW1lbnMgQUcNCnd3dy5zaWVtZW5zLmNvbQ0K