From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A75DBE77188 for ; Thu, 2 Jan 2025 11:17:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4CB8310E23C; Thu, 2 Jan 2025 11:17:11 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="KBN24xLh"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56BD610E23C; Thu, 2 Jan 2025 11:17:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1735816628; x=1767352628; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=j9g7B2NGoe/tYEdWG3tDIffq+scu+IaWJ6NMv1mibZE=; b=KBN24xLhxMgO1ZuGw+ulFkP7EKyGA/jQXnjeAxmYLlTaVMCCrmxgMcc9 9Ztyw2tscb7th5oYOIOlaaK2jXzrigPeDmDjR38joROPxu30O2d7MS6Lk 4ycDIwUBdX4N2wOGSioaMn1QIzKRNzTs7nvz9Pr6oH/Jb65Yrr8cQcgin 8KNcHIQjwwLoxuhcPBr9GIAKcDtXIUKGOe1RRUSSnRtknMnm+GEiVkL0Q gsNQI7PNSILF9+JbLV91TXKh4GqrQ8RSXEwEOFd7axZJ9okAPWmb85Afc utEeMYRdAwc7gf1AYfE/gUmSJCB0BRnSrEiChHWEKePvE3lF6wRJti7yo Q==; X-CSE-ConnectionGUID: ZBdOv9bwRnW6LG8molBYWw== X-CSE-MsgGUID: nnt65ZKuSQia1x2sfNNfMA== X-IronPort-AV: E=McAfee;i="6700,10204,11302"; a="61423658" X-IronPort-AV: E=Sophos;i="6.12,285,1728975600"; d="scan'208";a="61423658" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jan 2025 03:17:08 -0800 X-CSE-ConnectionGUID: nsNffn5ATLSo5FCrV1n2Aw== X-CSE-MsgGUID: 8occ/BxxSguEU3N1ki2f0A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,224,1728975600"; d="scan'208";a="101318008" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa010.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Jan 2025 03:17:08 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44; Thu, 2 Jan 2025 03:17:07 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.44 via Frontend Transport; Thu, 2 Jan 2025 03:17:07 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.41) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.44; Thu, 2 Jan 2025 03:17:06 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Gy92O+GrrM0GDfLiHIxPpxbuxb7OplelF5zyxweXXqojqmNYs4XRKVf4AQWF+wKKnkFZ430hDAwGJ7lvmv1OPCVT9fnU+VMBd+PDdGnMmzHU3eqJ4Pg9oip94lyL5Pfs2eHwt5ceGqx+udfw54OATQhBOnSaONwK1Zkbnxn0EtxoVcF3OCTVEfNA5pH3r5Hdw/hmVqLaC8z1RM6ZZidMG0aWbBfjQwVMYEDqWafSGBm4KF8BEUMAY/fCnwljl9VXWqyb3XSlVEGXmnIsgZPKEpyjefpN4/uLyHimoeKO7NFAc2qyy5mp9Ped8vb4Anqtt5ezyIs11gU/1TRAVeai1w== 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=j9g7B2NGoe/tYEdWG3tDIffq+scu+IaWJ6NMv1mibZE=; b=R1d4VE+0en0o1RukL3ylbY6OL4EcncvtOsPfkxL9OVJA53gYpUaZjlcbBe5wVWNkrKz/qN9kxAxz1BO38fwGrr8c367AlTaEK17QLdo8JFZmeoJx0exqPZXLEzd4DgCPtWFK9w/g04K709E2bpihSVseY1E7o1JsofCUgmkFGTQHhkga6Xj5EytjFdU+1WbEPwP/luKwuoi28Pib9HbT7Auk/6gay/kisfl1ri6FlFnqrwZunPTt4WVcPlTo9RpKWcRyEGgQBGXrzwFQzasbwz7hwf7DexlYVdlETRwGSMuhHD7cXsWbzLhjSLHSlwSC37jXDBZmwQxXf0GBFipSrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB6019.namprd11.prod.outlook.com (2603:10b6:8:60::5) by SA1PR11MB6687.namprd11.prod.outlook.com (2603:10b6:806:25a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.11; Thu, 2 Jan 2025 11:16:33 +0000 Received: from DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::fc1:e80f:134c:5ed2]) by DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::fc1:e80f:134c:5ed2%6]) with mapi id 15.20.8314.012; Thu, 2 Jan 2025 11:16:33 +0000 From: "Hogander, Jouni" To: "intel-xe@lists.freedesktop.org" , "Sousa, Gustavo" , "intel-gfx@lists.freedesktop.org" Subject: Re: [PATCH v3] drm/i915/cmtg: Disable the CMTG Thread-Topic: [PATCH v3] drm/i915/cmtg: Disable the CMTG Thread-Index: AQHbViTCs6032MM4MkqBnDVrVbYw/bMAQK2AgAAdIACAAwV2gA== Date: Thu, 2 Jan 2025 11:16:33 +0000 Message-ID: <5d8cf72d388c952c99caa2d66acc79e0e749d49e.camel@intel.com> References: <20241224165408.43778-1-gustavo.sousa@intel.com> <152bf0fb81387e84a31cf472930980d6e70fea55.camel@intel.com> <173565049230.6883.15773928414485021480@intel.com> In-Reply-To: <173565049230.6883.15773928414485021480@intel.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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB6019:EE_|SA1PR11MB6687:EE_ x-ms-office365-filtering-correlation-id: 2693bf51-2ddb-47af-2953-08dd2b1eea46 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|10070799003|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?SEloRkFVRjduZnBjdWhTcld1YTZibFgzMEMwUFcrRnpjTlRmd1pMNXNHbERt?= =?utf-8?B?SzZKcytFZ21zRzg0SFRZK0NkcmNCZ3d2OW1qbnJMRlo2Q0pKbDdnWlNvY0RY?= =?utf-8?B?bDJVR24rRVBYRUdYNlo2ZytyME83dlVCR0Zjak14QlgwcWZ2c3FJRDNhc251?= =?utf-8?B?YXFqUVZYU2VWVDd2ME1JZ1B3SDFRVUZYZlRuQnMvayt3Ymlxb2c3WjVmUGlQ?= =?utf-8?B?aUtsVVltZ3FHaEo4cG1TSzlkZnRKUFBxK0MzL1diODdHTnJ4b2svcTlMTVQr?= =?utf-8?B?cXhDRjBZekFnRWF1WTlHZkJkMkdvaEFuaGE3YlVTUjkveVR1LzkxbzdwS0lN?= =?utf-8?B?bUdaSXBEZGsrMStKVUxubGQxZzFLSzZ5R0FKWGRWeUFUVGc0OFh0OWVUNUNH?= =?utf-8?B?Q29QN2toWVIxTmZPK0hVT0FXcXJ1UEV2SHZYdGlFOC9qSm55SmQrMTlJbTBO?= =?utf-8?B?NDQ0cklWSmpNZ0dRSExBWFFvN3FvL0FQQkNTZ2h1NzhGYnUyS3NKcmlDOUo1?= =?utf-8?B?N2VVN0xzS0ljL05kV2taeXNVSmI4RW5yOVR2VXZ5d3VGZ3dacEpjcVhkRWhh?= =?utf-8?B?ZU10bHFTOWdNbkxFaXltMTlwZTczSU5yWkEyN0pybGZGcTk0OVRuL3J1ZjYr?= =?utf-8?B?MFlFT2NCUmZqWVk5dGcwZjBPa3d3ZDBLZHdGN2w2SnoxOUhNeTNETFBOTFNi?= =?utf-8?B?SHdqRDZxdm5IWmpiQ21KRWRVYzRJMm9ZaDA1MW5wallNSzd4by9yOEYyYW41?= =?utf-8?B?MzkyN3A5S1ZqdmpKRjlEalZ5Uzd1SjdnZmw2dnpPeVJ4dnlHakNMQ1dWTEs1?= =?utf-8?B?UnVCQ3hoczFSdlREU3BjWldnb3dHWWQreTlRanhnck1TalBjL3ZjNXZGWUxt?= =?utf-8?B?WFZaUVYyR2dxRS94VHBIRFFMdlFaQVZzaXcvbEJTMEcvTy9QRHFSakdNRHRs?= =?utf-8?B?cm1NQndqbnRCZnBPbFpWM2k1OHcwWG1ySFVrRmJjVlErU21DbU1GcGI4b1RW?= =?utf-8?B?aHN0SWFSQkNJam1RV2JEQVFqSTlUOCtCRi9Ga2tnTHUxSkkrK2k0UXJWSmZN?= =?utf-8?B?UERNdFpCa05GYnJpd01IN051ZTBRV2dsWjA5T3hmdVM4OWpudEM4ZTdOeldS?= =?utf-8?B?NTYxU2p3RFZGOEtrb3lkb0YwOUdlQUxrVU9lTjg2ZHF2ZTJSNnd2dkVEWHZU?= =?utf-8?B?N3YrVGpic3I2WnQwcVhrRmRaK0ljL0tRcDFuZmZNaWl5OFVEenNIV2FnZmxZ?= =?utf-8?B?ZVNKRmNkamt6a256cmJiZWI0MlRuOHJxMXVtUFdWYUdGamN1YzBob2RMc0Nw?= =?utf-8?B?UW12OFpnRFJVOHZTYThKcFh4QTd0bHRyUDcrMUs0aTgrb2FYVmVtY3FoSnlx?= =?utf-8?B?dXR3K0NqNTNCdEY3T1JjL2RzNVdzOWNnYmVTcVhPZEFGcHZ0Q1o3WHFJaTMr?= =?utf-8?B?eHRrdHZpT005dG1vYUVYWm5OTnVmRTdzd3NEQ2diS3ZmUmtCU29ieC9ib1Nz?= =?utf-8?B?c0U3WHliSlhVMjQ0ekRHdHdFZldTWkNtV0lBeUZLNUliWTB1QzJlTXJpL1Zh?= =?utf-8?B?MWpzSHlQWWlTQnhtam9IRU9LSUtScnFSN3N6RHFoUVc0QzJ2MUs0aytLSUFi?= =?utf-8?B?ckhKZlFxOHV1eWVxdEV0SmxzemcvczBzMzA5dWNvUURLbWNNWmllN3ZyZCtp?= =?utf-8?B?VmpUNEVvOHdGQWcvYWhvNUp4MVJkKzl1SjVGMldFenhKRS9BU3ZueHFieHVJ?= =?utf-8?B?SlRzMkhJN1lPaHlLR0k4Ylh0aE5LdmdKSVEreUlBdTZBNWdkMWM5VUlmOCtn?= =?utf-8?B?dlhaQWlWM3hVR0g0cXkvdytaR1JFbHZJbzZYTERSNVgwMm1FUUs3SkJVcFdi?= =?utf-8?B?WmZKS1NNZEJTaWM0dXRKMVU3cVhIUU8ybGI3ZGEyS0VyOS82SkVLTy81bk9k?= =?utf-8?Q?YzA3qy9Ozojc0zwsD85Nq/Q9C0PhoZso?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6019.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(10070799003)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VVlPNUtiQWV4emowcmRXOSt5NTVXVzRtV2ljdU0rL1RQQ0JBUzBTWXF1aDAy?= =?utf-8?B?WXNBVG9JM3QvZXV1TzYzeUxuL3FUcTUvTi91TVkveklZT0ZPbDB3RnFDSkh6?= =?utf-8?B?dGUxbWd5NkpKckZEbTRNQXZHSzM4VWlRbFJEVkR5Y1BjQTV1U0Vsckh4SnI0?= =?utf-8?B?ZjU1OElMTzdsU245VlVScWZoMVAyQzJpK3FLU0dmOGxIU3A1MkZLZmlyZE02?= =?utf-8?B?alIzSk80TjR2VDk2R3d5MDQ0ZW5zUXZSY2Z3dXNnbXFza29Sc1puQnloTVJJ?= =?utf-8?B?Q3V0bXdUdis2NTNSWDJsbzcrZW40Y3VEMFZXcm5UZkJxRjJweEIwSXRTOGh5?= =?utf-8?B?YXlVOXJkc3c5WGVaRkgrZ1hrZkFVeTFCM1JDMVhPenJleWNxK0o1ZUs4c2VP?= =?utf-8?B?bE9wVTQxNzZKSnJOc3lMZENUY2VLQ1IzRExQOFhvcTVjWnlRTTdPbjB0bDht?= =?utf-8?B?S3NaY1BOd3RPL2ZaR1FTampZWFFqV2pPQWJLSmVxdzYzK3pBSnd5bDZYM2xp?= =?utf-8?B?a3NlNFl3WE1GSkVya25laW5qc2trZTdZL3VhaEN1cWFXQzZEVWhYNEp2UG11?= =?utf-8?B?aHA4cUVQL1p3SEowdkxDOUJuQnNyTDJGS2liSmFTcnd3bHkzMkl3TFk4bk1X?= =?utf-8?B?SDFyaUF0UXJ2d2FTT00yU2dPRmN4M2NvV25XdUZCTVNaanppcjAvbUVCS3dG?= =?utf-8?B?blBISldIVFVlR0FBU1d2VUpQTHc0MUlleXN4OFkvRHBEUzZ1MTgyV0M5UXBD?= =?utf-8?B?SE1aUnUxd2x1cUFKR2ZZNC9GUGk0YnUyd0VmRUMrK1JibGlCVWpnOTlXV3N4?= =?utf-8?B?VnJ5NkNydHBKK0dZY3Q1UTBOMUxLSEFKeFFpdldiKzl2MlFZdmo4R0VlT3FI?= =?utf-8?B?WXVQbHBTMXlXR2IxT1ZlUHdXMzBxS2Q4VTk4V0YvSDU3K0JVRUVFeE51M3kz?= =?utf-8?B?Qy9aMm00WmxydGRoQlhPUXNrQ2ZNS2dZRXQ4a2luQ0JISGpUWnZ1cUZCMHZY?= =?utf-8?B?ditQRWgvNWNHL1ZRY04xemdaQlBBZjIrYUQxMEI2R2tiYk9hTXFmejdLZFU3?= =?utf-8?B?MHVXbGUzVlo2Wk11czBVNTlBS2RpUmFzc1FBWkpzMGNjNjlkNGtTN1czUzRt?= =?utf-8?B?NDgzcklFSlM5OG5mSHlrV04rdFUwMnV2cmRoVkVlcjA3OFdJeDFqNUJuVFNt?= =?utf-8?B?U3JjU0NnZnBrQ2dkalVWTmVGYUxDUU82c1AzS2lRbERxblRxRUpXclBDMEMw?= =?utf-8?B?dGtBMUhoS3ZzQ0hPL3hlU1ZTaDNTUExOWmpOSHlJbU1idWk1VENseXdhVnBO?= =?utf-8?B?QkRuSks4OEl6VDhQb2ZqT2Zmdm9QcnFMTERQbXRyNytUL3lKOHRFeEFOY2tm?= =?utf-8?B?b0hkZktpVk0wWUZSN0xZU2ZvNHhCRHBOelpDTG9vQlowclc0cTlYbFA3dytY?= =?utf-8?B?Qk9DVmFxdmpRelBzdnAvZFNwNHpTM1VBWk1JZ24vK3I0eCsvYnBuNVZRRHBk?= =?utf-8?B?NCtKWGl1ZFppZWhueHdJeXNRODZGZTE3TG5jRmdVY3lxZmdMMDFzQzR4Z2Jp?= =?utf-8?B?dUd5SURuOEhBSkdrWWNkcWI0TjZCdjV6NmhJek1kMWRWcGN2enM1NUJsZ28y?= =?utf-8?B?NmxaQ0JiTmtoMllzWUZKamk3QjZ1YzhSNkN2clY3eWVJalhLemlVaFJoWmsx?= =?utf-8?B?L2hSQ0dZYkRUZFIxaWJNUEdHWEhJcDFFWGg1Q2ZEV1FlbFY0VzU0aWp5d3Er?= =?utf-8?B?R1U2K2xHRVJscURoTnkzYXlpL0ZpRWtjQkYzSmIxb1NEZnBiL1oycUhMNTJi?= =?utf-8?B?VW5PS2JWS3A0TXFjaTZuTGdIUi9WcHFFMkdRaFc1SWdCRktzSVlIeVdJcWJQ?= =?utf-8?B?dU9yaVE5SVZid3ZRZE42UmNVdTlmbGkwQ3hNVUh3M01RNTQyQkhMSDNMckNl?= =?utf-8?B?UHlqMEp5Q0lSblhkbC83OVY3SXlhSit2V0NuUlU0NTNyZHFYVkRIYllDK0p6?= =?utf-8?B?N0cyczFYRmNNRFFQT09vUmwxN1pCcEcrbW5DblE5dzFzcDM4TkppeW50UHZ4?= =?utf-8?B?Si9XSjFRaDRuSmxiaysyeFNOcjArYVpEbWlhMnFKUFdUc3RxSDRUaFdkdG5Q?= =?utf-8?B?aDJUQ0pJRUlidGhHQk90K2hpSVVmZWc1eGpwcVU2dk9RaXUrYmlnSVhKYlp6?= =?utf-8?B?SjY4ZWNNT2JuakxYYWE3bDE0NlFJNDlZVnBtN255bDgrSHI5NUZ3NzROVDZs?= =?utf-8?B?Q3BQVXl1eG5ZN3FJQ2NnbURPeWdBPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <022D65E34708E347BB8D0B1E4CFDB730@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6019.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2693bf51-2ddb-47af-2953-08dd2b1eea46 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jan 2025 11:16:33.5829 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zacgxGpi/OXJH26saB8ovYwrbNM0BB4t6HGAyCCfftzim78WahICRpSv9N2O0bXdEY+ENLoSFzFii3roncrd4aRudCiogCrPOtnkLN5I9Eo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB6687 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gVHVlLCAyMDI0LTEyLTMxIGF0IDEwOjA4IC0wMzAwLCBHdXN0YXZvIFNvdXNhIHdyb3RlOgo+ IFF1b3RpbmcgSG9nYW5kZXIsIEpvdW5pICgyMDI0LTEyLTMxIDA4OjIzOjU4LTAzOjAwKQo+ID4g T24gVHVlLCAyMDI0LTEyLTI0IGF0IDEzOjUzIC0wMzAwLCBHdXN0YXZvIFNvdXNhIHdyb3RlOgo+ ID4gPiBUaGUgQ01URyBpcyBhIHRpbWluZyBnZW5lcmF0b3IgdGhhdCBydW5zIGluIHBhcmFsbGVs IHdpdGgKPiA+ID4gdHJhbnNjb2RlcnMKPiA+ID4gdGltaW5nIGdlbmVyYXRvcnMgYW5kIGNhbiBi ZSB1c2VkIGFzIGEgcmVmZXJlbmNlIGZvcgo+ID4gPiBzeW5jaHJvbml6YXRpb24uCj4gPiA+IAo+ ID4gPiBPbiBQVEwgKGRpc3BsYXkgWGUzX0xQRCksIHdlIGhhdmUgb2JzZXJ2ZWQgdGhhdCB3ZSBh cmUgaW5oZXJpdGluZwo+ID4gPiBmcm9tCj4gPiA+IEdPUCBhIGRpc3BsYXkgY29uZmlndXJhdGlv biB3aXRoIHRoZSBDTVRHIGVuYWJsZWQuIEJlY2F1c2Ugb3VyCj4gPiA+IGRyaXZlcgo+ID4gPiBk b2Vzbid0IGN1cnJlbnRseSBpbXBsZW1lbnQgYW55IENNVEcgc2VxdWVuY2VzLCB0aGUgQ01URyBl bmRzIHVwCj4gPiA+IHN0aWxsCj4gPiA+IGVuYWJsZWQgYWZ0ZXIgb3VyIGRyaXZlciB0YWtlcyBv dmVyLgo+ID4gPiAKPiA+ID4gV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgQ01URyBpcyBu b3QgZW5hYmxlZCBpZiB3ZSBhcmUgbm90Cj4gPiA+IGdvaW5nCj4gPiA+IHRvCj4gPiA+IHVzZSBp dC4gRm9yIHRoYXQsIGxldCdzIGFkZCBhIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gaW4gb3VyCj4g PiA+IGRyaXZlcgo+ID4gPiB0aGF0Cj4gPiA+IG9ubHkgY2FyZXMgYWJvdXQgZGlzYWJsaW5nIHRo ZSBDTVRHIGlmIGl0IHdhcyBmb3VuZCBlbmFibGVkCj4gPiA+IGR1cmluZwo+ID4gPiBpbml0aWFs IGhhcmR3YXJlIHJlYWRvdXQuIEluIHRoZSBmdXR1cmUsIHdlIGNhbiBhbHNvIGltcGxlbWVudAo+ ID4gPiBzZXF1ZW5jZXMKPiA+ID4gZm9yIGVuYWJsaW5nIENNVEcgaWYgdGhhdCBiZWNvbWVzIGEg bmVlZGVkIGZlYXR1cmUuCj4gPiA+IAo+ID4gPiBGb3IgY29tcGxldGVuZXNzLCB3ZSBkbyBub3Qg b25seSBjb3ZlciBYZTNfTFBEIGJ1dCBhbHNvIGFsbAo+ID4gPiBwcmV2aW91cwo+ID4gPiBkaXNw bGF5IElQcyB0aGF0IHByb3ZpZGUgdGhlIENNVEcuCj4gPiA+IAo+ID4gPiB2MjoKPiA+ID4gwqAt IERHMiBkb2VzIG5vdCBoYXZlIHRoZSBDTVRHLiBVcGRhdGUgSEFTX0NNVEcoKSBhY2NvcmRpbmds eS4KPiA+ID4gwqAtIFVwZGF0ZSBsb2dpYyB0byBmb3JjZSBkaXNhYmxpbmcgb2YgQ01URyBvbmx5 IGZvciBpbml0aWFsCj4gPiA+IGNvbW1pdC4KPiA+ID4gdjM6Cj4gPiA+IMKgLSBBZGQgbWlzc2lu ZyBjaGFuZ2VzIGZvciB2MiB0aGF0IHdlcmUgc3RhZ2VkIGJ1dCBub3QgY29tbWl0dGVkLgo+ID4g PiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogR3VzdGF2byBTb3VzYSA8Z3VzdGF2by5zb3VzYUBpbnRl bC5jb20+Cj4gPiA+IC0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4gPiA+IMKgZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jbXRnLmPCoMKgwqDCoCB8IDMxMQo+ID4gPiArKysr KysrKysrKysrKysrKysKPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2NtdGcuaMKgwqDCoMKgIHzCoCAzOCArKysKPiA+ID4gwqAuLi4vZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY210Z19yZWdzLmjCoMKgwqAgfMKgIDIxICsrCj4gPiA+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmPCoCB8wqAgMTEgKwo+ID4gPiDCoC4uLi9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2NvcmUuaCB8wqDCoCA0ICsKPiA+ID4g wqAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RldmljZS5owqDCoCB8wqDCoCAx ICsKPiA+ID4gwqAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5jwqDC oCB8wqDCoCA1ICsKPiA+ID4gwqAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9tb2Rlc2V0X3Nl dHVwLmPCoMKgwqAgfMKgwqAgNSArCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMSArCj4gPiA+IMKgZHJpdmVy cy9ncHUvZHJtL3hlL01ha2VmaWxlwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoMKgIDEgKwo+ID4gPiDCoDExIGZpbGVzIGNoYW5nZWQsIDM5OSBpbnNlcnRpb25zKCspCj4g PiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY210Zy5jCj4gPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY210Zy5oCj4gPiA+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0Cj4gPiA+IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY210Z19yZWdzLmgKPiA+ID4gCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID4gPiBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gPiA+IGluZGV4IDNkZGE5ZjBlZGE4Mi4uN2U3NDE0 NDUzNzY1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID4gPiBAQCAtMjMxLDYg KzIzMSw3IEBAIGk5MTUteSArPSBcCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgZGlzcGxheS9pbnRl bF9iby5vIFwKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBkaXNwbGF5L2ludGVsX2J3Lm8gXAo+ID4g PiDCoMKgwqDCoMKgwqDCoMKgIGRpc3BsYXkvaW50ZWxfY2RjbGsubyBcCj4gPiA+ICvCoMKgwqDC oMKgwqDCoCBkaXNwbGF5L2ludGVsX2NtdGcubyBcCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgZGlz cGxheS9pbnRlbF9jb2xvci5vIFwKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBkaXNwbGF5L2ludGVs X2NvbWJvX3BoeS5vIFwKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBkaXNwbGF5L2ludGVsX2Nvbm5l Y3Rvci5vIFwKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY210Zy5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9j bXRnLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAw Li4yNzQ5MTQ5N2Y1MTUKPiA+ID4gLS0tIC9kZXYvbnVsbAo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NtdGcuYwo+ID4gPiBAQCAtMCwwICsxLDMxMSBAQAo+ ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ID4gPiArLyoKPiA+ID4gKyAq IENvcHlyaWdodCAoQykgMjAyNCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiArICovCj4gPiA+ICsK PiA+ID4gKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9z dHJpbmdfY2hvaWNlcy5oPgo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiA+ICsK PiA+ID4gKyNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ID4gPiArI2luY2x1ZGUgImk5MTVfcmVnLmgi Cj4gPiA+ICsjaW5jbHVkZSAiaW50ZWxfY3J0Yy5oIgo+ID4gPiArI2luY2x1ZGUgImludGVsX2Rl LmgiCj4gPiA+ICsjaW5jbHVkZSAiaW50ZWxfY210Zy5oIgo+ID4gPiArI2luY2x1ZGUgImludGVs X2NtdGdfcmVncy5oIgo+ID4gPiArI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfZGV2aWNlLmgiCj4g PiA+ICsjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgo+ID4gPiArCj4gPiA+ICsvKioK PiA+ID4gKyAqIERPQzogQ29tbW9uIFByaW1hcnkgVGltaW5nIEdlbmVyYXRvciAoQ01URykKPiA+ ID4gKyAqCj4gPiA+ICsgKiBUaGUgQ01URyBpcyBhIHRpbWluZyBnZW5lcmF0b3IgdGhhdCBydW5z IGluIHBhcmFsbGVsIHRvCj4gPiA+IHRyYW5zY29kZXJzIHRpbWluZwo+ID4gPiArICogZ2VuZXJh dG9ycyAoVEcpIHRvIHByb3ZpZGUgYSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtIHdoZXJlCj4g PiA+IENNVEcKPiA+ID4gYWN0cyBhcwo+ID4gPiArICogcHJpbWFyeSBhbmQgdHJhbnNjb2RlcnMg VEdzIGFjdCBhcyBzZWNvbmRhcnkgdG8gdGhlIENNVEcuIFRoZQo+ID4gPiBDTVRHIG91dHB1dHMK PiA+ID4gKyAqIGl0cyBURyBzdGFydCBhbmQgZnJhbWUgc3luYyBzaWduYWxzIHRvIHRoZSB0cmFu c2NvZGVycyB0aGF0Cj4gPiA+IGFyZQo+ID4gPiBjb25maWd1cmVkCj4gPiA+ICsgKiBhcyBzZWNv bmRhcnksIHdoaWNoIHVzZSB0aG9zZSBzaWduYWxzIHRvIHN5bmNocm9uaXplIHRoZWlyCj4gPiA+ IG93bgo+ID4gPiB0aW1pbmcgd2l0aAo+ID4gPiArICogdGhlIENNVEcncy4KPiA+ID4gKyAqCj4g PiA+ICsgKiBUaGUgQ01URyBjYW4gYmUgdXNlZCBvbmx5IHdpdGggZURQIG9yIE1JUEkgY29tbWFu ZCBtb2RlIGFuZAo+ID4gPiBzdXBwb3J0cyB0aGUKPiA+ID4gKyAqIGZvbGxvd2luZyB1c2UgY2Fz ZXM6Cj4gPiA+ICsgKgo+ID4gPiArICogLSBEdWFsIGVEUDogVGhlIENNVEcgY2FuIGJlIHVzZWQg dG8ga2VlcCB0d28gZURQIFRHcyBpbiBzeW5jCj4gPiA+IHdoZW4KPiA+ID4gb24gYQo+ID4gPiAr ICrCoMKgIGR1YWwgZURQIGNvbmZpZ3VyYXRpb24gKHdpdGggb3Igd2l0aG91dCBQU1IvUFNSMiBl bmFibGVkKS4KPiA+ID4gKyAqCj4gPiA+ICsgKiAtIFNpbmdsZSBlRFAgYXMgc2Vjb25kYXJ5OiBJ dCBpcyBhbHNvIHBvc3NpYmxlIHRvIHVzZSBhCj4gPiA+IHNpbmdsZQo+ID4gPiBlRFAKPiA+ID4g KyAqwqDCoCBjb25maWd1cmF0aW9uIHdpdGggdGhlIHRyYW5zY29kZXIgVEcgYXMgc2Vjb25kYXJ5 IHRvIHRoZQo+ID4gPiBDTVRHLgo+ID4gPiBUaGF0IHdvdWxkCj4gPiA+ICsgKsKgwqAgYWxsb3cg YSBmbG93IHRoYXQgd291bGQgbm90IHJlcXVpcmUgYSBtb2Rlc2V0IG9uIHRoZQo+ID4gPiBleGlz dGluZwo+ID4gPiBlRFAgd2hlbiBhCj4gPiA+ICsgKsKgwqAgbmV3IGVEUCBpcyBhZGRlZCBmb3Ig YSBkdWFsIGVEUCBjb25maWd1cmF0aW9uIHdpdGggQ01URy4KPiA+ID4gKyAqCj4gPiA+ICsgKiAt IERDNnY6IEluIERDNnYsIHRoZSB0cmFuc2NvZGVyIG1pZ2h0IGJlIG9mZiBidXQgdGhlIENNVEcK PiA+ID4ga2VlcHMKPiA+ID4gcnVubmluZyB0bwo+ID4gPiArICrCoMKgIG1haW50YWluIGZyYW1l IHRpbWluZ3MuIFdoZW4gZXhpdGluZyBEQzZ2LCB0aGUgdHJhbnNjb2Rlcgo+ID4gPiBURwo+ID4g PiB0aGVuIGlzCj4gPiA+ICsgKsKgwqAgc3luY2VkIGJhY2sgdGhlIENNVEcuCj4gPiA+ICsgKgo+ ID4gPiArICogQ3VycmVudGx5LCB0aGUgZHJpdmVyIGRvZXMgbm90IHVzZSB0aGUgQ01URywgYnV0 IHdlIG5lZWQgdG8KPiA+ID4gbWFrZQo+ID4gPiBzdXJlIHRoYXQKPiA+ID4gKyAqIHdlIGRpc2Fi bGUgaXQgaW4gY2FzZSB3ZSBpbmhlcml0IGEgZGlzcGxheSBjb25maWd1cmF0aW9uIHdpdGgKPiA+ ID4gaXQKPiA+ID4gZW5hYmxlZC4KPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICtzdGF0aWMgc3Ry dWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqCj4gPiA+ICtpbnRlbF9jbXRnX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgaW50ZWxfZ2xvYmFsX29iaiAqb2JqKQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDC oMKgwqAgc3RydWN0IGludGVsX2NtdGdfc3RhdGUgKmNtdGdfc3RhdGUgPQo+ID4gPiB0b19pbnRl bF9jbXRnX3N0YXRlKG9iai0+c3RhdGUpOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBj bXRnX3N0YXRlID0ga21lbWR1cChjbXRnX3N0YXRlLCBzaXplb2YoKmNtdGdfc3RhdGUpLAo+ID4g PiBHRlBfS0VSTkVMKTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGlmICghY210Z19zdGF0ZSkKPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsKPiA+ID4gKwo+ ID4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuICZjbXRnX3N0YXRlLT5iYXNlOwo+ID4gPiArfQo+ ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9jbXRnX2Rlc3Ryb3lfc3RhdGUoc3RydWN0 IGludGVsX2dsb2JhbF9vYmoKPiA+ID4gKm9iaiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgwqDCoMKgIHN0cnVj dCBpbnRlbF9nbG9iYWxfc3RhdGUKPiA+ID4gKnN0YXRlKQo+ID4gPiArewo+ID4gPiArwqDCoMKg wqDCoMKgwqAga2ZyZWUoc3RhdGUpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZV9mdW5jcwo+ID4gPiBpbnRlbF9jbXRnX3N0YXRl X2Z1bmNzCj4gPiA+ID0gewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgLmF0b21pY19kdXBsaWNhdGVf c3RhdGUgPSBpbnRlbF9jbXRnX2R1cGxpY2F0ZV9zdGF0ZSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKg IC5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX2NtdGdfZGVzdHJveV9zdGF0ZSwKPiA+ID4g K307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBib29sIGludGVsX2NtdGdfaGFzX2NtdGdfYihzdHJ1 Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSkKPiA+ID4gK3sKPiA+ID4gK8KgwqDCoMKgwqDCoMKg IHJldHVybiBESVNQTEFZX1ZFUihkaXNwbGF5KSA+PSAyMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4g PiArc3RhdGljIGJvb2wgaW50ZWxfY210Z19oYXNfY2xvY2tfc2VsKHN0cnVjdCBpbnRlbF9kaXNw bGF5Cj4gPiA+ICpkaXNwbGF5KQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu IERJU1BMQVlfVkVSKGRpc3BsYXkpID49IDE0Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0 aWMgYm9vbCBpbnRlbF9jbXRnX3JlcXVpcmVzX21vZGVzZXQoc3RydWN0IGludGVsX2Rpc3BsYXkK PiA+ID4gKmRpc3BsYXkpCj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gRElT UExBWV9WRVIoZGlzcGxheSkgPCAyMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHZv aWQgaW50ZWxfY210Z19kdW1wX3N0YXRlKHN0cnVjdCBpbnRlbF9kaXNwbGF5ICpkaXNwbGF5LAo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgwqAgc3RydWN0IGludGVsX2NtdGdfc3RhdGUKPiA+ID4gKmNtdGdfc3RhdGUp Cj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoaW50ZWxfY210Z19oYXNfY210Z19i KGRpc3BsYXkpKQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9kYmdf a21zKGRpc3BsYXktPmRybSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgwqDCoMKgICJDTVRHIHN0YXRlIHJlYWRvdXQ6IENNVEcgQTogJXMsCj4g PiA+IENNVEcgQjoKPiA+ID4gJXMsIHRyYW5zY29kZXIgQSBzZWNvbmRhcnk6ICVzLCB0cmFuc2Nv ZGVyIEIgc2Vjb25kYXJ5OiAlc1xuIiwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgIHN0cl9lbmFibGVkX2Rpc2FibGVkKGNtdGdfc3Rh dGUtCj4gPiA+ID4gY210Z19hX2VuYWJsZSksCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgwqDCoCBzdHJfZW5hYmxlZF9kaXNhYmxlZChjbXRn X3N0YXRlLQo+ID4gPiA+IGNtdGdfYl9lbmFibGUpLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgwqAgc3RyX3llc19ubyhjbXRnX3N0YXRl LQo+ID4gPiA+IHRyYW5zX2Ffc2Vjb25kYXJ5KSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgIHN0cl95ZXNfbm8oY210Z19zdGF0ZS0K PiA+ID4gPiB0cmFuc19iX3NlY29uZGFyeSkpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgZWxzZQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9kYmdfa21zKGRpc3BsYXkt PmRybSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgwqDCoMKgICJDTVRHIHN0YXRlIHJlYWRvdXQ6ICVzLCBUcmFuc2NvZGVyCj4gPiA+IEEKPiA+ ID4gc2Vjb25kYXJ5OiAlcywgVHJhbnNjb2RlciBCIHNlY29uZGFyeTogJXNcbiIsCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgwqDCoCBzdHJf ZW5hYmxlZF9kaXNhYmxlZChjbXRnX3N0YXRlLQo+ID4gPiA+IGNtdGdfYV9lbmFibGUpLAo+ID4g PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgwqAg c3RyX3llc19ubyhjbXRnX3N0YXRlLQo+ID4gPiA+IHRyYW5zX2Ffc2Vjb25kYXJ5KSwKPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgIHN0 cl95ZXNfbm8oY210Z19zdGF0ZS0KPiA+ID4gPiB0cmFuc19iX3NlY29uZGFyeSkpOwo+ID4gPiAr fQo+ID4gPiArCj4gPiA+ICtpbnQgaW50ZWxfY210Z19pbml0KHN0cnVjdCBpbnRlbF9kaXNwbGF5 ICpkaXNwbGF5KQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRpc3BsYXktPmRybSk7Cj4gPiA+ICvCoMKgwqDCoMKg wqDCoCBzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZSAqY210Z19zdGF0ZTsKPiA+ID4gKwo+ID4gPiAr wqDCoMKgwqDCoMKgwqAgY210Z19zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpjbXRnX3N0YXRlKSwg R0ZQX0tFUk5FTCk7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIWNtdGdfc3RhdGUpCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4gPiA+ICsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgIGludGVsX2F0b21pY19nbG9iYWxfb2JqX2luaXQoaTkxNSwg JmRpc3BsYXktPmNtdGcub2JqLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgwqAgJmNtdGdfc3RhdGUtPmJh c2UsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCDCoMKgwqDCoCAmaW50ZWxfY210Z19zdGF0ZV9mdW5jcyk7Cj4gPiA+ ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ ICt2b2lkIGludGVsX2NtdGdfcmVhZG91dF9zdGF0ZShzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlz cGxheSwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZQo+ID4gPiAqY210Z19zdGF0ZSkK PiA+ID4gK3sKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShkaXNwbGF5LT5kcm0pOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgdTMyIHZh bDsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFIQVNfQ01URyhkaXNwbGF5KSkK PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4gPiA+ICsKPiA+ ID4gK8KgwqDCoMKgwqDCoMKgIHZhbCA9IGludGVsX2RlX3JlYWQoZGlzcGxheSwgVFJBTlNfQ01U R19DVExfQSk7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBjbXRnX3N0YXRlLT5jbXRnX2FfZW5hYmxl ID0gdmFsICYgQ01UR19FTkFCTEU7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGlmIChp bnRlbF9jbXRnX2hhc19jbXRnX2IoZGlzcGxheSkpIHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB2YWwgPSBpbnRlbF9kZV9yZWFkKGRpc3BsYXksIFRSQU5TX0NNVEdfQ1RM X0IpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNtdGdfc3RhdGUtPmNt dGdfYl9lbmFibGUgPSB2YWwgJiBDTVRHX0VOQUJMRTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIH0K PiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKGludGVsX2NydGNfZm9yX3BpcGUoZGlz cGxheSwgUElQRV9BKSkgewo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZh bCA9IGludGVsX2RlX3JlYWQoZGlzcGxheSwKPiA+ID4gVFJBTlNfRERJX0ZVTkNfQ1RMMihpOTE1 LCBUUkFOU0NPREVSX0EpKTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj bXRnX3N0YXRlLT50cmFuc19hX3NlY29uZGFyeSA9IHZhbCAmCj4gPiA+IENNVEdfU0VDT05EQVJZ X01PREU7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDC oMKgIGlmIChpbnRlbF9jcnRjX2Zvcl9waXBlKGRpc3BsYXksIFBJUEVfQikpIHsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWwgPSBpbnRlbF9kZV9yZWFkKGRpc3BsYXks Cj4gPiA+IFRSQU5TX0RESV9GVU5DX0NUTDIoaTkxNSwgVFJBTlNDT0RFUl9CKSk7Cj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY210Z19zdGF0ZS0+dHJhbnNfYl9zZWNvbmRh cnkgPSB2YWwgJgo+ID4gPiBDTVRHX1NFQ09OREFSWV9NT0RFOwo+ID4gPiArwqDCoMKgwqDCoMKg wqAgfQo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpbnRlbF9jbXRnX2R1bXBfc3RhdGUo ZGlzcGxheSwgY210Z19zdGF0ZSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBzdHJ1 Y3QgaW50ZWxfY210Z19zdGF0ZSAqCj4gPiA+ICtpbnRlbF9hdG9taWNfZ2V0X2NtdGdfc3RhdGUo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDC oMKgwqDCoCBzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSA9IHRvX2ludGVsX2Rpc3BsYXko c3RhdGUpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAq b2JqX3N0YXRlID0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF9h dG9taWNfZ2V0X2dsb2JhbF9vYmpfc3RhdGUoc3RhdGUsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgICZkaXNwbGF5LQo+ID4gPiA+IGNtdGcub2JqKTsKPiA+ ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKElTX0VSUihvYmpfc3RhdGUpKQo+ID4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBFUlJfQ0FTVChvYmpfc3RhdGUp Owo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gdG9faW50ZWxfY210Z19zdGF0 ZShvYmpfc3RhdGUpOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVs X2NtdGdfc3RhdGUgKgo+ID4gPiAraW50ZWxfYXRvbWljX2dldF9vbGRfY210Z19zdGF0ZShzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlCj4gPiA+ICpzdGF0ZSkKPiA+ID4gK3sKPiA+ID4gK8KgwqDC oMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9kaXNwbGF5ICpkaXNwbGF5ID0gdG9faW50ZWxfZGlzcGxh eShzdGF0ZSk7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRl ICpvYmpfc3RhdGUgPQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVs X2F0b21pY19nZXRfb2xkX2dsb2JhbF9vYmpfc3RhdGUoc3RhdGUsCj4gPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIMKgwqDCoMKgwqAgJmRpc3BsYXktCj4gPiA+ID4g Y210Zy5vYmopOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIW9ial9zdGF0ZSkK PiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gTlVMTDsKPiA+ID4g Kwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRvX2ludGVsX2NtdGdfc3RhdGUob2JqX3N0 YXRlKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIHN0cnVjdCBpbnRlbF9jbXRnX3N0 YXRlICoKPiA+ID4gK2ludGVsX2F0b21pY19nZXRfbmV3X2NtdGdfc3RhdGUoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZQo+ID4gPiAqc3RhdGUpCj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSA9IHRvX2ludGVsX2Rpc3BsYXkoc3RhdGUp Owo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqb2JqX3N0 YXRlID0KPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF9hdG9taWNf Z2V0X25ld19nbG9iYWxfb2JqX3N0YXRlKHN0YXRlLAo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgwqDCoMKgICZkaXNwbGF5LQo+ID4gPiA+IGNtdGcub2Jq KTsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFvYmpfc3RhdGUpCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE5VTEw7Cj4gPiA+ICsKPiA+ID4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiB0b19pbnRlbF9jbXRnX3N0YXRlKG9ial9zdGF0ZSk7Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBib29sIGludGVsX2NtdGdfc3RhdGVfY2hhbmdl ZChzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZQo+ID4gPiAqb2xkX2NtdGdfc3RhdGUsCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZQo+ID4gPiAqbmV3X2NtdGdfc3Rh dGUpCj4gPiA+ICt7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIW5ld19jbXRnX3N0YXRlKQo+ ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKPiA+ID4g Kwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIG9sZF9jbXRnX3N0YXRlLT5jbXRnX2FfZW5h YmxlICE9IG5ld19jbXRnX3N0YXRlLQo+ID4gPiA+IGNtdGdfYV9lbmFibGUgfHwKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbGRfY210Z19zdGF0ZS0+Y210Z19iX2VuYWJs ZSAhPSBuZXdfY210Z19zdGF0ZS0KPiA+ID4gPiBjbXRnX2JfZW5hYmxlIHx8Cj4gPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2xkX2NtdGdfc3RhdGUtPnRyYW5zX2Ffc2Vjb25k YXJ5ICE9Cj4gPiA+IG5ld19jbXRnX3N0YXRlLQo+ID4gPiA+IHRyYW5zX2Ffc2Vjb25kYXJ5IHx8 Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgb2xkX2NtdGdfc3RhdGUtPnRy YW5zX2Jfc2Vjb25kYXJ5ICE9Cj4gPiA+IG5ld19jbXRnX3N0YXRlLQo+ID4gPiA+IHRyYW5zX2Jf c2Vjb25kYXJ5Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW50IGludGVsX2NtdGdf Y2hlY2tfbW9kZXNldChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlCj4gPiA+ICpzdGF0ZSwKPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIMKgwqDCoCBzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZQo+ID4gPiAqb2xkX2NtdGdf c3RhdGUsCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCDCoMKgwqAgc3RydWN0IGludGVsX2NtdGdfc3RhdGUKPiA+ID4g Km5ld19jbXRnX3N0YXRlKQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGlu dGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRlKTsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgIHU4IHBpcGVfbWFzazsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAg aWYgKCFpbnRlbF9jbXRnX3JlcXVpcmVzX21vZGVzZXQoZGlzcGxheSkpCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKg wqDCoMKgIHBpcGVfbWFzayA9IDA7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGlmIChv bGRfY210Z19zdGF0ZS0+dHJhbnNfYV9zZWNvbmRhcnkgIT0gbmV3X2NtdGdfc3RhdGUtCj4gPiA+ ID4gdHJhbnNfYV9zZWNvbmRhcnkpCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcGlwZV9tYXNrIHw9IEJJVChQSVBFX0EpOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDC oCBpZiAob2xkX2NtdGdfc3RhdGUtPnRyYW5zX2Jfc2Vjb25kYXJ5ICE9IG5ld19jbXRnX3N0YXRl LQo+ID4gPiA+IHRyYW5zX2Jfc2Vjb25kYXJ5KQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHBpcGVfbWFzayB8PSBCSVQoUElQRV9CKTsKPiA+IAo+ID4gT24gUFRMIHRoaXMg d291bGQgbWVhbiB3ZSBhcmUgYWx3YXlzIGRvaW5nIGZ1bGwgbW9kZXNldCBvbiBib290PyBJcwo+ IAo+IE5vLiBCZWNhdXNlIG9mIGludGVsX2NtdGdfcmVxdWlyZXNfbW9kZXNldCgpLCB3ZSBvbmx5 IGdvIHRocm91Z2ggdGhpcwo+IGlmCj4gd2UgYXJlIG9uIGEgZGlzcGxheSBwcmlvciB0byBYZTJf TFBEIChMTkwncyBkaXNwbGF5KS4gU28sIGZvciBQVEwsIGEKPiBtb2Rlc2V0IHdpbGwgbm90IGJl IHJlcXVpcmVkLgo+IAo+ID4gZnVsbCBtb2Rlc2V0IHJlYWxseSByZXF1aXJlZCB3aGVuIGRpc2Fi bGluZyBDVE1HPyBCc3BlYyBzYXlzOgo+ID4gCj4gPiAiU3dpdGNoaW5nIGJldHdlZW4gdGhlIGxv Y2FsIHRpbWluZyBnZW5lcmF0b3Igd2l0aGluIHRoZSBlRFAgYW5kCj4gPiB0aGUKPiA+IENNVEcg d2lsbCByZXF1aXJlIGEgbW9kZXNldC4iCj4gCj4gVGhpcyBpcyBmcm9tIHRoZSBCU3BlYyBmb3Ig cHJlLUxOTCBkaXNwbGF5cyAoaS5lLiBwcmUtWGUyX0xQRCkuIFRoZQo+IEJTcGVjIGZvciBMTkwg YW5kIFBUTCBkb2VzIG5vdCBpbXBvc2UgdGhpcyByZXN0cmljdGlvbi4KPiAKPiA+IAo+ID4gQXJl IHdlIHJlYWxseSB1c2luZyBDVE1HIG9yIGlzIGl0IGp1c3QgZW5hYmxlZD8KPiAKPiBUaGUgc2V0 dXAgZnJvbSBHT1AgaXMgdXNpbmcgdGhlIENNVEcgd2l0aCBQaXBlIEEuCgpPaywgdGhhbmsgeW91 IGZvciB0aGUgY2xhcmlmaWNhdGlvbi4KCkJSLAoKSm91bmkgSMO2Z2FuZGVyCgo+IAo+IC0tCj4g R3VzdGF2byBTb3VzYQo+IAo+ID4gCj4gPiBCUiwKPiA+IAo+ID4gSm91bmkgSMO2Z2FuZGVyCj4g PiAKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFwaXBlX21hc2spCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiBpbnRlbF9tb2Rlc2V0X3BpcGVzX2luX21hc2tfZWFybHkoc3Rh dGUsCj4gPiA+ICJ1cGRhdGluZwo+ID4gPiBDTVRHIGNvbmZpZyIsIHBpcGVfbWFzayk7Cj4gPiA+ ICt9Cj4gPiA+ICsKPiA+ID4gK2ludCBpbnRlbF9jbXRnX2ZvcmNlX2Rpc2FibGVkKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAg c3RydWN0IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRlKTsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9jbXRnX3N0YXRlICpuZXdfY210Z19z dGF0ZTsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFIQVNfQ01URyhkaXNwbGF5 KSkKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPiA+ID4g Kwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgbmV3X2NtdGdfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0 X2NtdGdfc3RhdGUoc3RhdGUpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKElTX0VSUihuZXdf Y210Z19zdGF0ZSkpCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJu IFBUUl9FUlIobmV3X2NtdGdfc3RhdGUpOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBu ZXdfY210Z19zdGF0ZS0+Y210Z19hX2VuYWJsZSA9IGZhbHNlOwo+ID4gPiArwqDCoMKgwqDCoMKg wqAgbmV3X2NtdGdfc3RhdGUtPmNtdGdfYl9lbmFibGUgPSBmYWxzZTsKPiA+ID4gK8KgwqDCoMKg wqDCoMKgIG5ld19jbXRnX3N0YXRlLT50cmFuc19hX3NlY29uZGFyeSA9IGZhbHNlOwo+ID4gPiAr wqDCoMKgwqDCoMKgwqAgbmV3X2NtdGdfc3RhdGUtPnRyYW5zX2Jfc2Vjb25kYXJ5ID0gZmFsc2U7 Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAr aW50IGludGVsX2NtdGdfYXRvbWljX2NoZWNrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2Rpc3BsYXkg KmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRlKTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKg IHN0cnVjdCBpbnRlbF9jbXRnX3N0YXRlICpvbGRfY210Z19zdGF0ZTsKPiA+ID4gK8KgwqDCoMKg wqDCoMKgIHN0cnVjdCBpbnRlbF9jbXRnX3N0YXRlICpuZXdfY210Z19zdGF0ZTsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgIGludCByZXQ7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGlmICgh SEFTX0NNVEcoZGlzcGxheSkpCj4gPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIG9sZF9jbXRnX3N0YXRlID0g aW50ZWxfYXRvbWljX2dldF9vbGRfY210Z19zdGF0ZShzdGF0ZSk7Cj4gPiA+ICvCoMKgwqDCoMKg wqDCoCBuZXdfY210Z19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfbmV3X2NtdGdfc3RhdGUoc3Rh dGUpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFpbnRlbF9jbXRnX3N0YXRlX2NoYW5nZWQo b2xkX2NtdGdfc3RhdGUsCj4gPiA+IG5ld19jbXRnX3N0YXRlKSkKPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKg wqAgcmV0ID0gaW50ZWxfY210Z19jaGVja19tb2Rlc2V0KHN0YXRlLCBvbGRfY210Z19zdGF0ZSwK PiA+ID4gbmV3X2NtdGdfc3RhdGUpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkKPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ID4gPiArCj4g PiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4KPiA+ID4gaW50ZWxfYXRvbWljX3NlcmlhbGl6ZV9n bG9iYWxfc3RhdGUoJm5ld19jbXRnX3N0YXRlLQo+ID4gPiA+IGJhc2UpOwo+ID4gPiArfQo+ID4g PiArCj4gPiA+ICsvKgo+ID4gPiArICogQWNjZXNzIHRvIENNVEcgcmVnaXN0ZXJzIHJlcXVpcmUg dGhlIFBIWSBQTEwgdGhhdCBwcm92aWRlcwo+ID4gPiBpdHMKPiA+ID4gY2xvY2sgdG8gYmUKPiA+ ID4gKyAqIHJ1bm5pbmcgKHdoaWNoIGlzIGNvbmZpZ3VyZWQgdmlhIENNVEdfQ0xLX1NFTCkuIEFz IHN1Y2gsIHRoaXMKPiA+ID4gZnVuY3Rpb24gbmVlZHMKPiA+ID4gKyAqIHRvIGJlIGNhbGxlZCBi ZWZvcmUgaW50ZWxfY29tbWl0X21vZGVzZXRfZGlzYWJsZXMoKSB0byBlbnN1cmUKPiA+ID4gdGhh dCB0aGUgUEhZCj4gPiA+ICsgKiBQTEwgaXMgc3RpbGwgZW5hYmxlZCB3aGVuIGRvaW5nIHRoaXMu Cj4gPiA+ICsgKi8KPiA+ID4gK3ZvaWQgaW50ZWxfY210Z19kaXNhYmxlKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiArewo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0 IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSB0b19pbnRlbF9kaXNwbGF5KHN0YXRlKTsKPiA+ID4g K8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShk aXNwbGF5LT5kcm0pOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2NtdGdfc3Rh dGUgKm9sZF9jbXRnX3N0YXRlOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGludGVsX2Nt dGdfc3RhdGUgKm5ld19jbXRnX3N0YXRlOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBp ZiAoIUhBU19DTVRHKGRpc3BsYXkpKQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldHVybjsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgb2xkX2NtdGdfc3RhdGUg PSBpbnRlbF9hdG9taWNfZ2V0X29sZF9jbXRnX3N0YXRlKHN0YXRlKTsKPiA+ID4gK8KgwqDCoMKg wqDCoMKgIG5ld19jbXRnX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY210Z19zdGF0ZShz dGF0ZSk7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIWludGVsX2NtdGdfc3RhdGVfY2hhbmdl ZChvbGRfY210Z19zdGF0ZSwKPiA+ID4gbmV3X2NtdGdfc3RhdGUpKQo+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsKPiA+ID4gKwo+ID4gPiArwqDCoMKgwqDCoMKg wqAgZHJtX2luZm8oZGlzcGxheS0+ZHJtLCAiRGlzYWJsaW5nIENNVEdcbiIpOwo+ID4gPiArCj4g PiA+ICvCoMKgwqDCoMKgwqDCoCBpbnRlbF9kZV9ybXcoZGlzcGxheSwgVFJBTlNfRERJX0ZVTkNf Q1RMMihpOTE1LAo+ID4gPiBUUkFOU0NPREVSX0EpLCBDTVRHX1NFQ09OREFSWV9NT0RFLCAwKTsK PiA+ID4gK8KgwqDCoMKgwqDCoMKgIGludGVsX2RlX3JtdyhkaXNwbGF5LCBUUkFOU19ERElfRlVO Q19DVEwyKGk5MTUsCj4gPiA+IFRSQU5TQ09ERVJfQiksIENNVEdfU0VDT05EQVJZX01PREUsIDAp Owo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBpbnRlbF9kZV9ybXcoZGlzcGxheSwgVFJB TlNfQ01UR19DVExfQSwgQ01UR19FTkFCTEUsIDApOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKg wqDCoCBpZiAoaW50ZWxfY210Z19oYXNfY210Z19iKGRpc3BsYXkpKQo+ID4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludGVsX2RlX3JtdyhkaXNwbGF5LCBUUkFOU19DTVRHX0NU TF9CLAo+ID4gPiBDTVRHX0VOQUJMRSwKPiA+ID4gMCk7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKg wqDCoMKgIGlmIChpbnRlbF9jbXRnX2hhc19jbG9ja19zZWwoZGlzcGxheSkpIHsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1MzIgY2xrX3NlbF9jbHIgPSBDTVRHX0NMS19T RUxfQV9NQVNLOwo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiBjbGtf c2VsX3NldCA9IENNVEdfQ0xLX1NFTF9BX0RJU0FCTEVEOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGludGVsX2NtdGdfaGFzX2NtdGdfYihkaXNwbGF5 KSkgewo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBjbGtfc2VsX2NsciB8PSBDTVRHX0NMS19TRUxfQl9NQVNLOwo+ID4gPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjbGtfc2VsX3NldCB8PSBDTVRHX0NM S19TRUxfQl9ESVNBQkxFRDsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9 Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF9kZV9y bXcoZGlzcGxheSwgQ01UR19DTEtfU0VMLCBjbGtfc2VsX2NsciwKPiA+ID4gY2xrX3NlbF9zZXQp Owo+ID4gPiArwqDCoMKgwqDCoMKgwqAgfQo+ID4gPiArfQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jbXRnLmgKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NtdGcuaAo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjRkZmQzMTkwNmQ4MQo+ID4gPiAtLS0gL2Rldi9u dWxsCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY210Zy5o Cj4gPiA+IEBAIC0wLDAgKzEsMzggQEAKPiA+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBNSVQgKi8KPiA+ID4gKy8qCj4gPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgSW50ZWwgQ29y cG9yYXRpb24KPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsjaWZuZGVmIF9fSU5URUxfQ01UR19I X18KPiA+ID4gKyNkZWZpbmUgX19JTlRFTF9DTVRHX0hfXwo+ID4gPiArCj4gPiA+ICsjaW5jbHVk ZSAiaW50ZWxfZGlzcGxheV9jb3JlLmgiCj4gPiA+ICsjaW5jbHVkZSAiaW50ZWxfZ2xvYmFsX3N0 YXRlLmgiCj4gPiA+ICsKPiA+ID4gKy8qCj4gPiA+ICsgKiBXZSBkZXNjcmliZSBoZXJlIG9ubHkg dGhlIG1pbmltdW0gc3RhdGUgcmVxdWlyZWQgdG8gYWxsb3cgdXMKPiA+ID4gdG8KPiA+ID4gcHJv cGVybHkKPiA+ID4gKyAqIGRpc2FibGUgdGhlIENNVEcgaWYgbmVjZXNzYXJ5Lgo+ID4gPiArICov Cj4gPiA+ICtzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZSB7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlIGJhc2U7Cj4gPiA+ICsKPiA+ID4gK8KgwqDCoMKgwqDC oMKgIGJvb2wgY210Z19hX2VuYWJsZTsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIC8qCj4gPiA+ICvC oMKgwqDCoMKgwqDCoMKgICogWGUzX0xQRCBhZGRzIGEgc2Vjb25kIENNVEcgdGhhdCBjYW4gYmUg dXNlZCBmb3IgZHVhbAo+ID4gPiBlRFAKPiA+ID4gYXN5bmMgbW9kZS4KPiA+ID4gK8KgwqDCoMKg wqDCoMKgwqAgKi8KPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGJvb2wgY210Z19iX2VuYWJsZTsKPiA+ ID4gK8KgwqDCoMKgwqDCoMKgIGJvb2wgdHJhbnNfYV9zZWNvbmRhcnk7Cj4gPiA+ICvCoMKgwqDC oMKgwqDCoCBib29sIHRyYW5zX2Jfc2Vjb25kYXJ5Owo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiAr I2RlZmluZSB0b19pbnRlbF9jbXRnX3N0YXRlKGdsb2JhbF9zdGF0ZSkgXAo+ID4gPiArwqDCoMKg wqDCoMKgwqAgY29udGFpbmVyX29mX2NvbnN0KChnbG9iYWxfc3RhdGUpLCBzdHJ1Y3QKPiA+ID4g aW50ZWxfY210Z19zdGF0ZSwKPiA+ID4gYmFzZSkKPiA+ID4gKwo+ID4gPiAraW50IGludGVsX2Nt dGdfaW5pdChzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSk7Cj4gPiA+ICt2b2lkIGludGVs X2NtdGdfcmVhZG91dF9zdGF0ZShzdHJ1Y3QgaW50ZWxfZGlzcGxheSAqZGlzcGxheSwKPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgwqDCoMKgwqDC oCBzdHJ1Y3QgaW50ZWxfY210Z19zdGF0ZQo+ID4gPiAqY210Z19zdGF0ZSk7Cj4gPiA+ICtpbnQg aW50ZWxfY210Z19mb3JjZV9kaXNhYmxlZChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSk7Cj4gPiA+ICtpbnQgaW50ZWxfY210Z19hdG9taWNfY2hlY2soc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUpOwo+ID4gPiArdm9pZCBpbnRlbF9jbXRnX2Rpc2FibGUoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4gPiArCj4gPiA+ICsjZW5kaWYgLyogX19JTlRF TF9DTVRHX0hfXyAqLwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9jbXRnX3JlZ3MuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY210Z19yZWdzLmgKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ID4gaW5k ZXggMDAwMDAwMDAwMDAwLi4wODJmOTZjYWQyODQKPiA+ID4gLS0tIC9kZXYvbnVsbAo+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NtdGdfcmVncy5oCj4gPiA+ IEBAIC0wLDAgKzEsMjEgQEAKPiA+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQg Ki8KPiA+ID4gKy8qCj4gPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjQgSW50ZWwgQ29ycG9yYXRp b24KPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsjaWZuZGVmIF9fSU5URUxfQ01UR19SRUdTX0hf Xwo+ID4gPiArI2RlZmluZSBfX0lOVEVMX0NNVEdfUkVHU19IX18KPiA+ID4gKwo+ID4gPiArI2lu Y2x1ZGUgImk5MTVfcmVnX2RlZnMuaCIKPiA+ID4gKwo+ID4gPiArI2RlZmluZSBDTVRHX0NMS19T RUzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9NTUlPKDB4 NDYxNjApCj4gPiA+ICsjZGVmaW5lIENNVEdfQ0xLX1NFTF9BX01BU0vCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgUkVHX0dFTk1BU0soMzEsIDI5KQo+ID4gPiArI2RlZmluZQo+ID4gPiBD TVRHX0NMS19TRUxfQV9ESVNBQkxFRMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+ID4g PiBSRUdfRklFTERfUFJFUChDTVRHX0NMS19TRUxfQV9NQVNLLCAwKQo+ID4gPiArI2RlZmluZSBD TVRHX0NMS19TRUxfQl9NQVNLwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFJFR19HRU5N QVNLKDE1LCAxMykKPiA+ID4gKyNkZWZpbmUKPiA+ID4gQ01UR19DTEtfU0VMX0JfRElTQUJMRUTC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAKPiA+ID4gUkVHX0ZJRUxEX1BSRVAoQ01UR19D TEtfU0VMX0JfTUFTSywgMCkKPiA+ID4gKwo+ID4gPiArI2RlZmluZSBUUkFOU19DTVRHX0NUTF9B wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9NTUlPKDB4NmZhODgpCj4gPiA+ICsjZGVm aW5lIFRSQU5TX0NNVEdfQ1RMX0LCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX01NSU8o MHg2ZmI4OCkKPiA+ID4gKyNkZWZpbmXCoCBDTVRHX0VOQUJMRcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUkVHX0JJVCgzMSkKPiA+ID4gKwo+ID4gPiArI2Vu ZGlmIC8qIF9fSU5URUxfQ01UR19SRUdTX0hfXyAqLwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCA0MjcxZGEyMTli NDEuLjA5ODk4NWFkN2FkNCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gQEAgLTYyLDYgKzYyLDcgQEAKPiA+ID4gwqAj aW5jbHVkZSAiaW50ZWxfYncuaCIKPiA+ID4gwqAjaW5jbHVkZSAiaW50ZWxfY2RjbGsuaCIKPiA+ ID4gwqAjaW5jbHVkZSAiaW50ZWxfY2xvY2tfZ2F0aW5nLmgiCj4gPiA+ICsjaW5jbHVkZSAiaW50 ZWxfY210Zy5oIgo+ID4gPiDCoCNpbmNsdWRlICJpbnRlbF9jb2xvci5oIgo+ID4gPiDCoCNpbmNs dWRlICJpbnRlbF9jcnQuaCIKPiA+ID4gwqAjaW5jbHVkZSAiaW50ZWxfY3J0Yy5oIgo+ID4gPiBA QCAtNjgyOCw2ICs2ODI5LDEwIEBAIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9k ZXZpY2UKPiA+ID4gKmRldiwKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGZhaWw7Cj4gPiA+IMKgCj4gPiA+ ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBpbnRlbF9jbXRnX2F0b21pY19jaGVjayhzdGF0ZSk7Cj4g PiA+ICvCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGdvdG8gZmFpbDsKPiA+ID4gKwo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIGZvcl9l YWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLAo+ID4gPiBuZXdfY3J0Y19z dGF0ZSwgaSkgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWlu dGVsX2NydGNfbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPiA+ID4gQEAg LTc3NTcsNiArNzc2Miw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChz dHJ1Y3QKPiA+ID4gaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4gPiA+IGludGVsX21vZGVzZXRf Z2V0X2NydGNfcG93ZXJfZG9tYWlucyhuZXdfY3J0Cj4gPiA+IGNfc3RhdGUsICZwdXRfZG9tYWlu c1tjcnRjLT5waXBlXSk7Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgfQo+ID4gPiDCoAo+ID4gPiAr wqDCoMKgwqDCoMKgwqAgaW50ZWxfY210Z19kaXNhYmxlKHN0YXRlKTsKPiA+ID4gKwo+ID4gPiDC oMKgwqDCoMKgwqDCoMKgIGludGVsX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVzKHN0YXRlKTsKPiA+ ID4gwqAKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBpbnRlbF9kcF90dW5uZWxfYXRvbWljX2FsbG9j X2J3KHN0YXRlKTsKPiA+ID4gQEAgLTg1ODIsNiArODU4OSwxMCBAQCBpbnQgaW50ZWxfaW5pdGlh bF9jb21taXQoc3RydWN0IGRybV9kZXZpY2UKPiA+ID4gKmRldikKPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiA+ID4gwqAK PiA+ID4gK8KgwqDCoMKgwqDCoMKgIHJldCA9Cj4gPiA+IGludGVsX2NtdGdfZm9yY2VfZGlzYWJs ZWQodG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSk7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBp ZiAocmV0KQo+ID4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0Owo+ ID4gPiArCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3Rh dGUpOwo+ID4gPiDCoAo+ID4gPiDCoG91dDoKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9jb3JlLmgKPiA+ID4gYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfY29yZS5oCj4gPiA+IGluZGV4IDU1NDg3 MGQyNDk0Yi4uZDBiMDM5MTE0ZTJkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfY29yZS5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9jb3JlLmgKPiA+ID4gQEAgLTM1NCw2ICsz NTQsMTAgQEAgc3RydWN0IGludGVsX2Rpc3BsYXkgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgc2tsX3ByZWZlcnJlZF92Y29fZnJlcTsKPiA+ID4g wqDCoMKgwqDCoMKgwqDCoCB9IGNkY2xrOwo+ID4gPiDCoAo+ID4gPiArwqDCoMKgwqDCoMKgwqAg c3RydWN0IHsKPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50 ZWxfZ2xvYmFsX29iaiBvYmo7Cj4gPiA+ICvCoMKgwqDCoMKgwqDCoCB9IGNtdGc7Cj4gPiA+ICsK PiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IKPiA+ID4gKmdsa19saW5lYXJf ZGVnYW1tYV9sdXQ7Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgfSBjb2xvcjsKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZXZpY2Uu aAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9kZXZp Y2UuaAo+ID4gPiBpbmRleCA5YTMzM2Q5ZTY2MDEuLmExMjYyNDdlYjZiOCAxMDA2NDQKPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RldmljZS5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9k ZXZpY2UuaAo+ID4gPiBAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0cnVjdCBpbnRlbF9kaXNwbGF5X3Bs YXRmb3JtcyB7Cj4gPiA+IMKgI2RlZmluZSBIQVNfQklHSk9JTkVSKF9fZGlzcGxheSnCoMKgwqDC oMKgwqDCoCAoRElTUExBWV9WRVIoX19kaXNwbGF5KQo+ID4gPiA+PQo+ID4gPiAxMSAmJiBIQVNf RFNDKF9fZGlzcGxheSkpCj4gPiA+IMKgI2RlZmluZSBIQVNfQ0RDTEtfQ1JBV0woX19kaXNwbGF5 KcKgwqDCoMKgwqDCoMKgCj4gPiA+IChESVNQTEFZX0lORk8oX19kaXNwbGF5KS0KPiA+ID4gPiBo YXNfY2RjbGtfY3Jhd2wpCj4gPiA+IMKgI2RlZmluZSBIQVNfQ0RDTEtfU1FVQVNIKF9fZGlzcGxh eSnCoMKgwqDCoMKgwqDCoAo+ID4gPiAoRElTUExBWV9JTkZPKF9fZGlzcGxheSktCj4gPiA+ID4g aGFzX2NkY2xrX3NxdWFzaCkKPiA+ID4gKyNkZWZpbmUgSEFTX0NNVEcoX19kaXNwbGF5KcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoIShfX2Rpc3BsYXkpLQo+ID4gPiA+cGxhdGZvcm0u ZGcyCj4gPiA+ICYmIERJU1BMQVlfVkVSKF9fZGlzcGxheSkgPj0gMTMpCj4gPiA+IMKgI2RlZmlu ZSBIQVNfQ1VSX0ZCQyhfX2Rpc3BsYXkpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgCj4g PiA+ICghSEFTX0dNQ0goX19kaXNwbGF5KSAmJgo+ID4gPiBJU19ESVNQTEFZX1ZFUihfX2Rpc3Bs YXksIDcsIDEzKSkKPiA+ID4gwqAjZGVmaW5lIEhBU19EMTJfUExBTkVfTUlOSU1JWkFUSU9OKF9f ZGlzcGxheSnCoMKgwqDCoMKgwqDCoAo+ID4gPiAoKF9fZGlzcGxheSktCj4gPiA+ID4gcGxhdGZv cm0ucm9ja2V0bGFrZSB8fCAoX19kaXNwbGF5KS0+cGxhdGZvcm0uYWxkZXJsYWtlX3MpCj4gPiA+ IMKgI2RlZmluZQo+ID4gPiBIQVNfREJVRl9PVkVSTEFQX0RFVEVDVElPTihfX2Rpc3BsYXkpwqDC oMKgwqDCoMKgwqAKPiA+ID4gKERJU1BMQVlfUlVOVElNRV9JTkZPKF9fZGlzcGxheSktPmhhc19k YnVmX292ZXJsYXBfZGV0ZWN0aW9uKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5jCj4gPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5jCj4gPiA+IGluZGV4IDQ5N2I0 YTFmMDQ1Zi4uM2UxNDgzODE0ZThkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfZHJpdmVyLmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X2RyaXZlci5jCj4gPiA+IEBAIC0yNSw2 ICsyNSw3IEBACj4gPiA+IMKgI2luY2x1ZGUgImludGVsX2Jpb3MuaCIKPiA+ID4gwqAjaW5jbHVk ZSAiaW50ZWxfYncuaCIKPiA+ID4gwqAjaW5jbHVkZSAiaW50ZWxfY2RjbGsuaCIKPiA+ID4gKyNp bmNsdWRlICJpbnRlbF9jbXRnLmgiCj4gPiA+IMKgI2luY2x1ZGUgImludGVsX2NvbG9yLmgiCj4g PiA+IMKgI2luY2x1ZGUgImludGVsX2NydGMuaCIKPiA+ID4gwqAjaW5jbHVkZSAiaW50ZWxfZGlz cGxheV9kZWJ1Z2ZzLmgiCj4gPiA+IEBAIC0yNjksNiArMjcwLDEwIEBAIGludCBpbnRlbF9kaXNw bGF5X2RyaXZlcl9wcm9iZV9ub2lycShzdHJ1Y3QKPiA+ID4gaW50ZWxfZGlzcGxheSAqZGlzcGxh eSkKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBpZiAocmV0KQo+ID4gPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBnb3RvIGNsZWFudXBfdmdhX2NsaWVudF9wd19kb21haW5fZG1jOwo+ ID4gPiDCoAo+ID4gPiArwqDCoMKgwqDCoMKgwqAgcmV0ID0gaW50ZWxfY210Z19pbml0KGRpc3Bs YXkpOwo+ID4gPiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCkKPiA+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBnb3RvIGNsZWFudXBfdmdhX2NsaWVudF9wd19kb21haW5fZG1jOwo+ ID4gPiArCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfaW5pdF9xdWlya3MoZGlzcGxheSk7 Cj4gPiA+IMKgCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfZmJjX2luaXQoZGlzcGxheSk7 Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX21v ZGVzZXRfc2V0dXAuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf bW9kZXNldF9zZXR1cC5jCj4gPiA+IGluZGV4IDlkYjMwZGI0MjhmNy4uNzM3YTQzOTE2YWM1IDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX21vZGVz ZXRfc2V0dXAuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X21vZGVzZXRfc2V0dXAuYwo+ID4gPiBAQCAtMTUsNiArMTUsNyBAQAo+ID4gPiDCoCNpbmNsdWRl ICJpOXh4X3dtLmgiCj4gPiA+IMKgI2luY2x1ZGUgImludGVsX2F0b21pYy5oIgo+ID4gPiDCoCNp bmNsdWRlICJpbnRlbF9idy5oIgo+ID4gPiArI2luY2x1ZGUgImludGVsX2NtdGcuaCIKPiA+ID4g wqAjaW5jbHVkZSAiaW50ZWxfY29sb3IuaCIKPiA+ID4gwqAjaW5jbHVkZSAiaW50ZWxfY3J0Yy5o Igo+ID4gPiDCoCNpbmNsdWRlICJpbnRlbF9jcnRjX3N0YXRlX2R1bXAuaCIKPiA+ID4gQEAgLTcw Miw2ICs3MDMsOCBAQCBzdGF0aWMgdm9pZAo+ID4gPiBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdf c3RhdGUoc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gPiA+IMKgwqDCoMKg wqDCoMKgwqAgc3RydWN0IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPSAmaTkxNS0+ZGlzcGxheTsK PiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0 YXRlID0KPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG9faW50ZWxfY2Rj bGtfc3RhdGUoaTkxNS0KPiA+ID4gPmRpc3BsYXkuY2RjbGsub2JqLnN0YXRlKTsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9jbXRnX3N0YXRlICpjbXRnX3N0YXRlID0KPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0b19pbnRlbF9jbXRnX3N0YXRlKGRpc3Bs YXktPmNtdGcub2JqLnN0YXRlKTsKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgaW50ZWxf ZGJ1Zl9zdGF0ZSAqZGJ1Zl9zdGF0ZSA9Cj4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHRvX2ludGVsX2RidWZfc3RhdGUoaTkxNS0KPiA+ID4gPmRpc3BsYXkuZGJ1Zi5vYmou c3RhdGUpOwo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBpbnRlbF9wbWRlbWFuZF9zdGF0 ZSAqcG1kZW1hbmRfc3RhdGUgPQo+ID4gPiBAQCAtOTA2LDYgKzkwOSw4IEBAIHN0YXRpYyB2b2lk Cj4gPiA+IGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QKPiA+ID4gZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCB9Cj4gPiA+IMKgCj4gPiA+ IMKgwqDCoMKgwqDCoMKgwqAgaW50ZWxfcG1kZW1hbmRfaW5pdF9wbWRlbWFuZF9wYXJhbXMoaTkx NSwKPiA+ID4gcG1kZW1hbmRfc3RhdGUpOwo+ID4gPiArCj4gPiA+ICvCoMKgwqDCoMKgwqDCoCBp bnRlbF9jbXRnX3JlYWRvdXRfc3RhdGUoZGlzcGxheSwgY210Z19zdGF0ZSk7Cj4gPiA+IMKgfQo+ ID4gPiDCoAo+ID4gPiDCoHN0YXRpYyB2b2lkCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+ID4gPiBpbmRleCA3NjVlNmMwNTI4ZmIuLmIzNGJjY2ZiMWNjYyAxMDA2NDQKPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+IEBAIC0zNTY1LDYgKzM1NjUsNyBAQCBlbnVt IHNrbF9wb3dlcl9nYXRlIHsKPiA+ID4gwqAjZGVmaW5lIF9UUkFOU19ERElfRlVOQ19DVEwyX0RT STHCoMKgwqDCoMKgwqDCoCAweDZiYzA0Cj4gPiA+IMKgI2RlZmluZSBUUkFOU19ERElfRlVOQ19D VEwyKGRldl9wcml2LAo+ID4gPiB0cmFuKcKgwqDCoMKgwqDCoMKgIF9NTUlPX1RSQU5TMihkZXZf cHJpdiwgdHJhbiwgX1RSQU5TX0RESV9GVU5DX0NUTDJfQSkKPiA+ID4gwqAjZGVmaW5lwqAgUE9S VF9TWU5DX01PREVfRU5BQkxFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBSRUdfQklUKDQpCj4gPiA+ICsjZGVmaW5lwqAgQ01UR19TRUNPTkRBUllfTU9ERcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUkVHX0JJVCgzKQo+ ID4gPiDCoCNkZWZpbmXCoCBQT1JUX1NZTkNfTU9ERV9NQVNURVJfU0VMRUNUX01BU0vCoMKgwqDC oMKgwqDCoCBSRUdfR0VOTUFTSygyLAo+ID4gPiAwKQo+ID4gPiDCoCNkZWZpbmXCoAo+ID4gPiBQ T1JUX1NZTkNfTU9ERV9NQVNURVJfU0VMRUNUKHgpwqDCoMKgwqDCoMKgwqAKPiA+ID4gUkVHX0ZJ RUxEX1BSRVAoUE9SVF9TWU5DX01PREVfTUFTVEVSX1NFTEVDVF9NQVNLLCh4KSkKPiA+ID4gwqAK PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZQo+ID4gPiBiL2Ry aXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZQo+ID4gPiBpbmRleCA1Yzk3YWQ2ZWQ3MzguLmNkMGUy NWZjZTE0YiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL01ha2VmaWxlCj4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS9NYWtlZmlsZQo+ID4gPiBAQCAtMTk5LDYgKzE5 OSw3IEBAIHhlLSQoQ09ORklHX0RSTV9YRV9ESVNQTEFZKSArPSBcCj4gPiA+IMKgwqDCoMKgwqDC oMKgwqAgaTkxNS1kaXNwbGF5L2ludGVsX2Jpb3MubyBcCj4gPiA+IMKgwqDCoMKgwqDCoMKgwqAg aTkxNS1kaXNwbGF5L2ludGVsX2J3Lm8gXAo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIGk5MTUtZGlz cGxheS9pbnRlbF9jZGNsay5vIFwKPiA+ID4gK8KgwqDCoMKgwqDCoMKgIGk5MTUtZGlzcGxheS9p bnRlbF9jbXRnLm8gXAo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIGk5MTUtZGlzcGxheS9pbnRlbF9j b2xvci5vIFwKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoCBpOTE1LWRpc3BsYXkvaW50ZWxfY29tYm9f cGh5Lm8gXAo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgIGk5MTUtZGlzcGxheS9pbnRlbF9jb25uZWN0 b3IubyBcCj4gPiAKCg==