From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id F340E3858431 for ; Wed, 29 May 2024 13:18:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F340E3858431 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F340E3858431 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1716988712; cv=pass; b=WO3lsb7S6u+xUnhmUZsW+tTajssMD29Ld2gj56HE78pZoCSFF6osN0aEjvL0twSfKXQUjcvVUek0ZACoIo7y1jF+RgIwWyRyRGOt31jEIx1oYEiDUD6Paptk5MEcarXDsJoYb+poKcHWYEtMrwPk91co2a6iiHFf/ph1URv5cSs= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1716988712; c=relaxed/simple; bh=0CTReDqqwIXMKTjuBROzJ6jAAjynj+0MntdNebc5RcE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=SBpi+g34Q5RlZ1MUHxgRvR/pYkgC6DgfvET1PyGAu4fKTU58usX/gKZnxje0Y3WVIT7my+e1NfrBZ9H3SjYdDFDa99qKu8HyOtYdALUtSudkzDoqBTM8PsIwpqEpQDxUMPIEav7auaFNXiqjnoX7EyBhXJDfXxd3mvLHxtXIkds= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 44T6HnFp000642; Wed, 29 May 2024 13:18:26 GMT DKIM-Signature: =?UTF-8?Q?v=3D1;_a=3Drsa-sha256;_c=3Drelaxed/relaxed;_d=3Doracle.com;_h?= =?UTF-8?Q?=3Dcc:content-id:content-transfer-encoding:content-type:date:fr?= =?UTF-8?Q?om:in-reply-to:message-id:mime-version:references:subject:to;_s?= =?UTF-8?Q?=3Dcorp-2023-11-20;_bh=3D0CTReDqqwIXMKTjuBROzJ6jAAjynj+0MntdNeb?= =?UTF-8?Q?c5RcE=3D;_b=3DXcBXKeUNZxFiJgysC8A2159rZ2RA+TLG3Paqtum9WT0o+3oHi?= =?UTF-8?Q?w8JYbq7vf+KO0GK3vE8_GnffyN3Zz9b78WISy9uIad33AkdYg45C/8hSz5WkuPN?= =?UTF-8?Q?77B3djhtw2CpJGda4cl+eqc9p_oZsdJpX3aE4oJA67QDNoB4sGOzTsEiIiQqAhR?= =?UTF-8?Q?suWoFuAgpy+jfG5I9OEI24+yX8QkrFF_zsYRegtTedJ8elhjzlg4NLiLA/6ZDA8?= =?UTF-8?Q?0XthvJGsHmANMlk74I5egJFJFAep2AMQakuaE_XRC3CGTF4bdnIc/jrC/Dih4/r?= =?UTF-8?Q?7z4ghiRFA9n0HfnTQJl89hMACjICrYZBjXSwaAb20C3_Lg=3D=3D_?= Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3yb8kb6p6f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 29 May 2024 13:18:26 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 44TBl0Fp026719; Wed, 29 May 2024 13:18:25 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2100.outbound.protection.outlook.com [104.47.58.100]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3yc507767h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 29 May 2024 13:18:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GNSt1XFxFU7YPuLbmwrgZwvgVDXddyWnAYVkdf1uh/DfJJXj/58gDEcGBAWQRwoM3V0fFBKzlI+UYQhRNj/J8/n+r3FSSw4uRodB/HPnu6nlcSUEp3GHC/J/2AsqpqbBOswAYHq8gtY8Zay8xdd1r6mnYuP+A2C9qlgnS4HSz+5NbAbCYrrY6gBwJiaOYQn/ZNJTq7i4t9QfPUMUVdzQ+8qDzMoKcIaGBu5lZZAM9MgZ2LEFz2wcU8dt2BG0DDmnm7H+F686sPYyLyAf1/Kt1I2fhVbYdiKwWDE1nR8eZOrdGQIGvC2jrd14Fx35X/a458CfVrQTUl3neTr2Jl2flA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0CTReDqqwIXMKTjuBROzJ6jAAjynj+0MntdNebc5RcE=; b=AfBEuraZhZ5DKr+L+qL+M3tnKdjZOEzfTFv8Z/8hrONkc7m5q3Yfak4v3mkGW5unNiquhzZjiSJAwZK5JHHN1sIaKN0rDYKRB/GjKE+mIqFtjOtOjHgNU0CvL7PGfIhikCwk4XiNFYTDWzXy9qFTAf7Z6BxSWcAjF/2KS+HccqsRaEMcRNYeqPL7cPmGQ4XCmXL7beZDTF2tF0xKNFZQH5mSoOXUJCVAF1JtdpB3KnXSNjdJB6FZpDaJgfCY6dQ68tB6bU7M7fpGnSn+4nQNm2HlxWhoyjR5+Pah6bewTipTnCMgPqq8ksI6ZC9+JSziSLHqmmnl7VrZOZxpWb7YyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0CTReDqqwIXMKTjuBROzJ6jAAjynj+0MntdNebc5RcE=; b=HnJEbWhm0o9QTQ6k3CQtmcVcEpghKqWPXZfX0XgaQz6NTQuB5J9nLDdp8+0rXfNp19MRqLyNrtMesErcdIp2UNxmMIFi1NfLYbSmae+Xf/ZsiSbmcSVqXot5D6YR7s5h1tBmrpo59EHi7Bc9871GZDLUBb83oUZSOcRvaWk6/f4= Received: from CY8PR10MB6538.namprd10.prod.outlook.com (2603:10b6:930:5a::17) by SN7PR10MB6287.namprd10.prod.outlook.com (2603:10b6:806:26d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.30; Wed, 29 May 2024 13:18:21 +0000 Received: from CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::8a:61cd:764a:e47]) by CY8PR10MB6538.namprd10.prod.outlook.com ([fe80::8a:61cd:764a:e47%5]) with mapi id 15.20.7611.030; Wed, 29 May 2024 13:18:20 +0000 From: Qing Zhao To: Richard Biener CC: Joseph Myers , Siddhesh Poyarekar , "uecker@tugraz.at" , Kees Cook , "isanbard@gmail.com" , GCC Patches Subject: Re: [PATCH v9 2/5] Convert references with "counted_by" attributes to/from .ACCESS_WITH_SIZE. Thread-Topic: [PATCH v9 2/5] Convert references with "counted_by" attributes to/from .ACCESS_WITH_SIZE. Thread-Index: AQHajOD3iPKn6wcOPk2CGvd26vH0XrGsikYAgADifQCAAKR7AIAAak0A Date: Wed, 29 May 2024 13:18:20 +0000 Message-ID: <9D8F96D4-5CA5-4BBF-B1B5-575017EA376F@oracle.com> References: <20240412135430.4122328-1-qing.zhao@oracle.com> <20240412135430.4122328-3-qing.zhao@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3774.500.171.1.1) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY8PR10MB6538:EE_|SN7PR10MB6287:EE_ x-ms-office365-filtering-correlation-id: 55daeca8-1da1-4fa8-48b4-08dc7fe1cfb8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|366007|376005|1800799015|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?VTdOd0F3R2U4K1RqQ1JycCttVU5zNkxFdGdnRmRlQkx1YmxFNEJqSWJlcXFp?= =?utf-8?B?RjJ3RGlHWm5TMHpHR0Z1ZUN0RDZoeml1WDV4ZVQrektuUGE4NDJ6OEowVk5U?= =?utf-8?B?UzlHVzhtME5KTFIrUE5MTVBQZU0yZTZONnlsaHVnSExrOFhwVHFMOG5mWnhC?= =?utf-8?B?TnQwVWVRN1RPdUUyN053NVZFUzNwdE00cTdZeUlBcHFWUTBEQTN2MHpPdkpO?= =?utf-8?B?ODRJdlhkSEw4NTUrOEdFWlJlalRhYjlHQnBwVmx2aE54b3RvUmg2M0RyOXNM?= =?utf-8?B?NGI4QnJnc3NrelNvSkozZFdybWtObHdlb2daSUNyV1drN0lTUFdqUlovZWNL?= =?utf-8?B?VWJvbFFiUU95RVRPeE1yQlVVZ0xUUlQ0MDFhRWZmWERSNXJsbU5NVHAzSVU3?= =?utf-8?B?R01FR0d1NmFLdVRKK1ZQcW1SeHRuc215QTdCNGQrOXNXQi9TTDdEcGlTK2wy?= =?utf-8?B?THR5UzZUZll4TktvNW5LblFpemdPQWpGQnJMQnlCRmpNWDBUVk1tcGtBdjNz?= =?utf-8?B?MnQ2ZkdseE1uaVRVN1l3QzloSjZDTkZCSFpNdm9IdnhjUzluVndzaDhZTnFw?= =?utf-8?B?cVJYMCtkVVdWZ210YVZRMitiM1UxSElZT2NNOWs2YWFEL2V0MnpkcFp1NTFR?= =?utf-8?B?d3MzS3hmRzRLV2NaVXREZjVxNlJhVjU2TjRIem1lUFRid2h4Ly9kNjVLVEQy?= =?utf-8?B?bkRSZFVmT2VYdGE0NFluYTNVamlMc05TMU9BNnlhYU13RUFtMENaKytpUy9Y?= =?utf-8?B?NWxDZjlNWWJmTUJzcTRyVmtEd2xHQW5xdTFPNWNHWVNSRHFNUkVINldGS1o0?= =?utf-8?B?RGphdVNSSi9jQUphUTBqZzM0UHYrVmpuYTVBQ1RMOXB3Y1hkTW02VmVBb0E3?= =?utf-8?B?K0ovQ0lKS2N5d1RKd2pOZ2VKODZOcnhMaXorVEx5eU11SmJBVzZOSTdSTnF4?= =?utf-8?B?RG5La0FBMmJlYjRNTU1vNlFQZzh2U2xGZG9YeHFCVDduUDdiMTBrOG5iWlhX?= =?utf-8?B?NnBwM3FtNzU3dmVOQXpkQWY2RWpxdmpSUFRJL1lUZ0pLbDd3Mkc2SCtHcEtv?= =?utf-8?B?VHFzRkF6WkFDYzZUWHJyMGR3U2VpMXRINk1rYlprdzlOUmhaWktGOUp4WEVU?= =?utf-8?B?eURRK1h1VExKNmZDc1kzdmlxS2dhRGVBWjY3MmhuM2dQS0o5R0FtNTlJU3pQ?= =?utf-8?B?a2c2ekpRdTZJRmlSYkZobC9vMkNQakpWcmp2ZVZkVGx1OEZrOUM4d0dZR2tW?= =?utf-8?B?SFpNTXNKaHdxN25HblJNbUlCRzZuVFgvTGRqa215UlZYR2I1ekNXS20vWkZi?= =?utf-8?B?S1NGWWt2ajZnekZhQmpCdzFFVUx2TGR5MVF5dnFZd0FwTnZTVStoS2pTNUh0?= =?utf-8?B?UGkwM1liU3VZeHpiTm9VZU9na1VrQ1UrbDJVcllwZE1uSTNBTWVHTUhtaWRa?= =?utf-8?B?bmVOcTVvTXYyeW1QS2c3aXhoamNsL2lwNjFRZ3FpeEVSbVFocjNpT1FHaDMw?= =?utf-8?B?TDI1NmN3VjZtV015c0VrNjV0SjlnS2lOYkEyWnM0MDQ1Y0ZoVmxlNTFzQ3ZY?= =?utf-8?B?bTg0bVBlalBUNmlPQWFsZkFGMjhVREZxWVpDcXFFNDZOS1J3UUorSm42Z2R6?= =?utf-8?B?UXo1dTJXSnlScDdxM043M2tXdFpaZllnZWxuUzlpSGhldExFMzhETTRBYXZT?= =?utf-8?B?a015Vk5JczBFWndnT1hQeXJKMFpkektzcGJrTU4zcFU0dW0yLzgxOUNOays2?= =?utf-8?Q?lChRf4OUgqLlljCSB8=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR10MB6538.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(1800799015)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dEx2WWxRRFIveWhZUlhOdFVPaExjV3h4dlhsckxIcHpqc3RIVTdabVdMcE9w?= =?utf-8?B?alJzbWFqenNjQ3psVE9yU1Njb2h0TnRNei9YeWZQVVFQaHUvMnZIeHdnbG5R?= =?utf-8?B?Q2E1Tkhlc3hJSlhrb2RrY1lZWlZrcUk5cDRiV3NqaU9WbHEyMUZTdzBMamFq?= =?utf-8?B?V09saGEvcDlSMjZXaGNxbFllbkJSbnpmVVFnKzJmMGNHK0VvR1NrZlFuNWp5?= =?utf-8?B?QUltNGRrcFNvQnVPUEM2R01ST1N4WStCV3N4S2gvWDM0Z1gvQlZhZlNlTjg5?= =?utf-8?B?a2JLR1FmaVBFRlRFY2kxZHlCbUdyQ2duU3M4cFV2enI5MGpWSW1ybXRuSXlG?= =?utf-8?B?cDhLbWp6Y3VOTDlLNUtvWjZnNTRiUGRENVN2MlZCWjcyRERFQVFnYWFxOWZ6?= =?utf-8?B?TTJKdnlQcnRiYlBmTDhUSDdmMzJncm9saUxQS3NFWTAzamhnZm5KYkRnUHlq?= =?utf-8?B?SVZSd0xIRTllUEhrWjVTWVdaZFNSdnlPZGZ2a0pQWVdBa0Q1Ym0yemExa3Uy?= =?utf-8?B?QUZ3K0NyblViN2VaVCtQZktrdFFrODNkNEFHcDZOOTk4QmlDVjY5KzhwRGQr?= =?utf-8?B?SU5oSzV1SnF6RjZsd3BUOTZxQVJXMm8yUVJyZSswOWtGRVBXOTRsbjNwWk5E?= =?utf-8?B?VkZ4MitCY0RMVVJyZDBzRk1hS3FpVXh0S1F2WVNqb0FEN3dlR2tFMEgwc3lq?= =?utf-8?B?UnRvSjdQRTFQRTNaT0RNWlN3TG5xS2dST01ESzAzWnVXTzRkTitPWTZ4Y2g3?= =?utf-8?B?RDVid1paZHVDUzUvWkRBK0Q0YmpCNWdNMkgxZFFGVXZ4QzNLREVmUlJ1bkRa?= =?utf-8?B?MHUzVGNTckdEbFJBZEtsUW5kTVNPakV0dTdWVVJKeU9oU2dBZzg3Y0FYSkJU?= =?utf-8?B?dFFWejBvbUh1cGRvaGVOK2svY2NxYVg5cHJSZ0tlVnRlRFRoR1NjL0gycWlU?= =?utf-8?B?bktWNDNiNnVMVFE2NUp3ckd4Q1ZFRFlTRGJ2bGtjdDVBWVlDbXh3aDNRdU1y?= =?utf-8?B?aDRmaU55eUlYM042N2NMdmJpMlNIODUyOGdhVjNPbzgydXJTa3Brd09hVFhL?= =?utf-8?B?WHJtOXVvSFJhRGsybWpZenFBbTcveVBld3VUNm5kc3ZvK3M3MVk4T2w4eDZ5?= =?utf-8?B?ZFlPRGhaVVhsdzZRRVZnWWhWRVdOZDRDb2pGcFV3TE1FWTJlRmM0OUhtRmFm?= =?utf-8?B?WnZUaDRndjhveDl2OTVVMDF6ZG4rYWZkMVI0L1owMUpvK1pwZDJpUXRmaHVF?= =?utf-8?B?WTZ6dzk3elBXei9COUUwbnB1cXhUZkxmVis3SUtsZGZpZDZzYUJoL3dqK2FU?= =?utf-8?B?d3FLZzFXSkhKZ1FBVmp2ODZPSDA5U1VaU0kxQ1pZWGZqRWMxckR6dkpOWHRL?= =?utf-8?B?MmJ1T3Iyb3d3ZzA3NXRZWEFCd05OU2VFUkxMOWc4SjlueXhoenhsdmdNUkdH?= =?utf-8?B?L3Q0UjdLR08rOXFTYVFXUkFIMmwvVUpPYXNuakVXTDVmVUQ5TGpzeWhXWVJr?= =?utf-8?B?UDVSTnU4ZUladUFCRUpkanpoaENDTnQrYWsydjZ3Tmh4MHJGWkwzdVVhanE4?= =?utf-8?B?NEFNL2ZoWlc5TEdrc1ZzMm5MaktjWm96UlV0YlVOK0hQbWlLSnM0b0lOZGIz?= =?utf-8?B?QTB2Q05waWdGZXkyVlJkZkkvYlJDVW9WK0hQcG1oY0Jqby9RRzZWeE9INThE?= =?utf-8?B?NHRXbjR3R09lVjd1V05OYWEyV1ZaNm5sN01GcFdIOXhNbk5vYWduS2xUODMx?= =?utf-8?B?b1VrVW91RG9GUnRVWElDRnVoVDZRRXc5dHR1dWZxVVE2NjRjcFNKS1BVS0dJ?= =?utf-8?B?Z0lPdG9hdS9tdnJ0Sk1ONC9vNUFHL05odlBUcnh5QlpCb3R4MFdGbzVNZXJy?= =?utf-8?B?VDV2eHBBR0F2b0FoalBqRVViTnlxYVR1ZDVIbCt0SUlGM3lYWVU3bEE0NkVF?= =?utf-8?B?Y3E0WlhnRVRlaHp1djE1eXlGbEFTMFhLemRraVpxYlpDL1RLcDR3SFlrZDNp?= =?utf-8?B?MmQ3N3Y1Y0JGRXhlbFgxL2NjMjlCOElJQzU3RzczKzk5eVVuaHg3dCsvdjZj?= =?utf-8?B?NmhINFZPTnhrSzhOa3ViWE1QcjJMRDBjYUF4K1JvQ0FjQTlURzR6QXBMVXlo?= =?utf-8?Q?0nvKgwhhsOgJRRdrtXFnvVdbV?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: GNHqpp479egjCZHYu0cM16kYP4DNaHN9YRDSTAWFYlO3pJPGppMbxdXfaDPcA+vjBlEfb/7g4bZ/B7yECHe3c1TJit/acnUONNziFTNFSPkS6tc8/Scmblud3jo0uo1a20Op8JTzi+gJjeXul1eh1HUzI+jFY/xIRqKjRNj4zyYDn5NSdHCobMbBs6MEJTIDeQ0baKHSsMzoZFBxRAbgiu+XfJbUAMEbbGrIM/cVQo+6CGbvOyR8i5Bt8q7G9OezvVH4AguuAPe9okdaU+C0YL/gUsWWIyYjJzrO57wxcUK+z5gX6ACXBOQAGAKCnKNrIZ5YjNs9aOZNr7Bpn0iTC02eNrhKxAre35ABAVT3UuhLw+wbcoBDeT/RJxPVn4f9pSfzMBfh8sHuRdXRHN3eEtxnPhyTzRV8oYGhA/0UEGhrJIflokG7dS1e4b3fMUqw3DYfU4eXz/HCYLNrtk5bgjXYuf22/1t3BJV2vGCzX6jGaBk+lzk626/BIV2jdCZG+5aq0A+1IW+gDsdAp/tof/Jttn552MuHjeMvJ3ws/Wt0CY4wArii5SD2wDfn2mC81GYgTTD0qQ83piDyihGziF/xcjlcc+vwWUhSOgAitMg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY8PR10MB6538.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55daeca8-1da1-4fa8-48b4-08dc7fe1cfb8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 May 2024 13:18:20.8906 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lg0VHcR/fz3x65vqvhV3iQhawyRzfHlVnwAuoDAZ3GwXYMbWMzm4dQrNAUbe2nm4+LQMIiZ6ItFTGlL0GToVQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR10MB6287 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.12.28.16 definitions=2024-05-29_10,2024-05-28_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2405290091 X-Proofpoint-GUID: RzF-gBS_jTsupPlDqQyrdtaK0gKbOQe8 X-Proofpoint-ORIG-GUID: RzF-gBS_jTsupPlDqQyrdtaK0gKbOQe8 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,KAM_DMARC_QUARANTINE,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: DQoNCj4gT24gTWF5IDI5LCAyMDI0LCBhdCAwMjo1NywgUmljaGFyZCBCaWVuZXIgPHJpY2hhcmQu Z3VlbnRoZXJAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IE9uIFR1ZSwgTWF5IDI4LCAyMDI0IGF0 IDExOjA54oCvUE0gUWluZyBaaGFvIDxxaW5nLnpoYW9Ab3JhY2xlLmNvbT4gd3JvdGU6DQo+PiAN Cj4+IFRoYW5rIHlvdSBmb3IgdGhlIGNvbW1lbnRzLiBTZWUgbXkgYW5zd2VycyBiZWxvdzoNCj4+ IA0KPj4gSm9zZXBoLCBwbGVhc2Ugc2VlIHRoZSBsYXN0IHF1ZXN0aW9uLCBJIG5lZWQgeW91ciBo ZWxwIG9uIGl0LiBUaGFua3MgYSBsb3QgZm9yIHRoZSBoZWxwLg0KPj4gDQo+PiBRaW5nDQo+PiAN Cj4+PiBPbiBNYXkgMjgsIDIwMjQsIGF0IDAzOjM4LCBSaWNoYXJkIEJpZW5lciA8cmljaGFyZC5n dWVudGhlckBnbWFpbC5jb20+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIEZyaSwgQXByIDEyLCAyMDI0 IGF0IDM6NTTigK9QTSBRaW5nIFpoYW8gPHFpbmcuemhhb0BvcmFjbGUuY29tPiB3cm90ZToNCj4+ Pj4gDQo+Pj4+IEluY2x1ZGluZyB0aGUgZm9sbG93aW5nIGNoYW5nZXM6DQo+Pj4+ICogVGhlIGRl ZmluaXRpb24gb2YgdGhlIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiAuQUNDRVNTX1dJVEhfU0laRQ0K Pj4+PiBpbiBpbnRlcm5hbC1mbi5kZWYuDQo+Pj4+ICogQyBGRSBjb252ZXJ0cyBldmVyeSByZWZl cmVuY2UgdG8gYSBGQU0gd2l0aCBhICJjb3VudGVkX2J5IiBhdHRyaWJ1dGUNCj4+Pj4gdG8gYSBj YWxsIHRvIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiAuQUNDRVNTX1dJVEhfU0laRS4NCj4+Pj4gKGJ1 aWxkX2NvbXBvbmVudF9yZWYgaW4gY190eXBlY2suY2MpDQo+Pj4+IA0KPj4+PiBUaGlzIGluY2x1 ZGVzIHRoZSBjYXNlIHdoZW4gdGhlIG9iamVjdCBpcyBzdGF0aWNhbGx5IGFsbG9jYXRlZCBhbmQN Cj4+Pj4gaW5pdGlhbGl6ZWQuDQo+Pj4+IEluIG9yZGVyIHRvIG1ha2UgdGhpcyB3b3JraW5nLCB0 aGUgcm91dGluZXMgaW5pdGlhbGl6ZXJfY29uc3RhbnRfdmFsaWRfcF8xDQo+Pj4+IGFuZCBvdXRw dXRfY29uc3RhbnQgaW4gdmFyYXNtLmNjIGFyZSB1cGRhdGVkIHRvIGhhbmRsZSBjYWxscyB0bw0K Pj4+PiAuQUNDRVNTX1dJVEhfU0laRS4NCj4+Pj4gKGluaXRpYWxpemVyX2NvbnN0YW50X3ZhbGlk X3BfMSBhbmQgb3V0cHV0X2NvbnN0YW50IGluIHZhcmFzbS5jKQ0KPj4+PiANCj4+Pj4gSG93ZXZl ciwgZm9yIHRoZSByZWZlcmVuY2UgaW5zaWRlICJvZmZzZXRvZiIsIHRoZSAiY291bnRlZF9ieSIg YXR0cmlidXRlIGlzDQo+Pj4+IGlnbm9yZWQgc2luY2UgaXQncyBub3QgdXNlZnVsIGF0IGFsbC4N Cj4+Pj4gKGNfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbiBpbiBjL2MtcGFyc2VyLmNjKQ0KPj4+ PiANCj4+Pj4gSW4gYWRkdGlvbiB0byAib2Zmc2V0b2YiLCBmb3IgdGhlIHJlZmVyZW5jZSBpbnNp ZGUgb3BlcmF0b3IgInR5cGVvZiIgYW5kDQo+Pj4+ICJhbGlnbm9mIiwgd2UgaWdub3JlIGNvdW50 ZWRfYnkgYXR0cmlidXRlIHRvby4NCj4+Pj4gDQo+Pj4+IFdoZW4gYnVpbGRpbmcgQUREUl9FWFBS IGZvciB0aGUgLkFDQ0VTU19XSVRIX1NJWkUgaW4gQyBGRSwNCj4+Pj4gcmVwbGFjZSB0aGUgY2Fs bCB3aXRoIGl0cyBmaXJzdCBhcmd1bWVudC4NCj4+Pj4gDQo+Pj4+ICogQ29udmVydCBldmVyeSBj YWxsIHRvIC5BQ0NFU1NfV0lUSF9TSVpFIHRvIGl0cyBmaXJzdCBhcmd1bWVudC4NCj4+Pj4gKGV4 cGFuZF9BQ0NFU1NfV0lUSF9TSVpFIGluIGludGVybmFsLWZuLmNjKQ0KPj4+PiAqIEFkanVzdCBh bGlhcyBhbmFseXNpcyB0byBleGNsdWRlIHRoZSBuZXcgaW50ZXJuYWwgZnJvbSBjbG9iYmVyaW5n IGFueXRoaW5nLg0KPj4+PiAocmVmX21heWJlX3VzZWRfYnlfY2FsbF9wXzEgYW5kIGNhbGxfbWF5 X2Nsb2JiZXJfcmVmX3BfMSBpbiB0cmVlLXNzYS1hbGlhcy5jYykNCj4+Pj4gKiBBZGp1c3QgZGVh ZCBjb2RlIGVsaW1pbmF0aW9uIHRvIGVsaW1pbmF0ZSB0aGUgY2FsbCB0byAuQUNDRVNTX1dJVEhf U0laRSB3aGVuDQo+Pj4+IGl0J3MgTEhTIGlzIGVsaW1pbmF0ZWQgYXMgZGVhZCBjb2RlLg0KPj4+ PiAoZWxpbWluYXRlX3VubmVjZXNzYXJ5X3N0bXRzIGluIHRyZWUtc3NhLWRjZS5jYykNCj4+Pj4g KiBQcm92aWRlIHRoZSB1dGlsaXR5IHJvdXRpbmVzIHRvIGNoZWNrIHRoZSBjYWxsIGlzIC5BQ0NF U1NfV0lUSF9TSVpFIGFuZA0KPj4+PiBnZXQgdGhlIHJlZmVyZW5jZSBmcm9tIHRoZSBjYWxsIHRv IC5BQ0NFU1NfV0lUSF9TSVpFLg0KPj4+PiAoaXNfYWNjZXNzX3dpdGhfc2l6ZV9wIGFuZCBnZXRf cmVmX2Zyb21fYWNjZXNzX3dpdGhfc2l6ZSBpbiB0cmVlLmNjKQ0KPj4+PiANCj4+Pj4gZ2NjL2Mv Q2hhbmdlTG9nOg0KPj4+PiANCj4+Pj4gICAgICAgKiBjLXBhcnNlci5jYyAoY19wYXJzZXJfcG9z dGZpeF9leHByZXNzaW9uKTogSWdub3JlIHRoZSBjb3VudGVkLWJ5DQo+Pj4+ICAgICAgIGF0dHJp YnV0ZSB3aGVuIGJ1aWxkX2NvbXBvbmVudF9yZWYgaW5zaWRlIG9mZnNldG9mIG9wZXJhdG9yLg0K Pj4+PiAgICAgICAqIGMtdHJlZS5oIChidWlsZF9jb21wb25lbnRfcmVmKTogQWRkIG9uZSBtb3Jl IHBhcmFtZXRlci4NCj4+Pj4gICAgICAgKiBjLXR5cGVjay5jYyAoYnVpbGRfY291bnRlZF9ieV9y ZWYpOiBOZXcgZnVuY3Rpb24uDQo+Pj4+ICAgICAgIChidWlsZF9hY2Nlc3Nfd2l0aF9zaXplX2Zv cl9jb3VudGVkX2J5KTogTmV3IGZ1bmN0aW9uLg0KPj4+PiAgICAgICAoYnVpbGRfY29tcG9uZW50 X3JlZik6IENoZWNrIHRoZSBjb3VudGVkLWJ5IGF0dHJpYnV0ZSBhbmQgYnVpbGQNCj4+Pj4gICAg ICAgY2FsbCB0byAuQUNDRVNTX1dJVEhfU0laRS4NCj4+Pj4gICAgICAgKGJ1aWxkX3VuYXJ5X29w KTogV2hlbiBidWlsZGluZyBBRERSX0VYUFIgZm9yDQo+Pj4+ICAgICAgIC5BQ0NFU1NfV0lUSF9T SVpFLCB1c2UgaXRzIGZpcnN0IGFyZ3VtZW50Lg0KPj4+PiAgICAgICAobHZhbHVlX3ApOiBBY2Nl cHQgY2FsbCB0byAuQUNDRVNTX1dJVEhfU0laRS4NCj4+Pj4gDQo+Pj4+IGdjYy9DaGFuZ2VMb2c6 DQo+Pj4+IA0KPj4+PiAgICAgICAqIGludGVybmFsLWZuLmNjIChleHBhbmRfQUNDRVNTX1dJVEhf U0laRSk6IE5ldyBmdW5jdGlvbi4NCj4+Pj4gICAgICAgKiBpbnRlcm5hbC1mbi5kZWYgKEFDQ0VT U19XSVRIX1NJWkUpOiBOZXcgaW50ZXJuYWwgZnVuY3Rpb24uDQo+Pj4+ICAgICAgICogdHJlZS1z c2EtYWxpYXMuY2MgKHJlZl9tYXliZV91c2VkX2J5X2NhbGxfcF8xKTogU3BlY2lhbCBjYXNlDQo+ Pj4+ICAgICAgIElGTl9BQ0NFU1NfV0lUSF9TSVpFLg0KPj4+PiAgICAgICAoY2FsbF9tYXlfY2xv YmJlcl9yZWZfcF8xKTogU3BlY2lhbCBjYXNlIElGTl9BQ0NFU1NfV0lUSF9TSVpFLg0KPj4+PiAg ICAgICAqIHRyZWUtc3NhLWRjZS5jYyAoZWxpbWluYXRlX3VubmVjZXNzYXJ5X3N0bXRzKTogRWxp bWluYXRlIHRoZSBjYWxsDQo+Pj4+ICAgICAgIHRvIC5BQ0NFU1NfV0lUSF9TSVpFIHdoZW4gaXRz IExIUyBpcyBkZWFkLg0KPj4+PiAgICAgICAqIHRyZWUuY2MgKHByb2Nlc3NfY2FsbF9vcGVyYW5k cyk6IEFkanVzdCBzaWRlIGVmZmVjdCBmb3IgZnVuY3Rpb24NCj4+Pj4gICAgICAgLkFDQ0VTU19X SVRIX1NJWkUuDQo+Pj4+ICAgICAgIChpc19hY2Nlc3Nfd2l0aF9zaXplX3ApOiBOZXcgZnVuY3Rp b24uDQo+Pj4+ICAgICAgIChnZXRfcmVmX2Zyb21fYWNjZXNzX3dpdGhfc2l6ZSk6IE5ldyBmdW5j dGlvbi4NCj4+Pj4gICAgICAgKiB0cmVlLmggKGlzX2FjY2Vzc193aXRoX3NpemVfcCk6IE5ldyBw cm90b3R5cGUuDQo+Pj4+ICAgICAgIChnZXRfcmVmX2Zyb21fYWNjZXNzX3dpdGhfc2l6ZSk6IE5l dyBwcm90b3R5cGUuDQo+Pj4+ICAgICAgICogdmFyYXNtLmNjIChpbml0aWFsaXplcl9jb25zdGFu dF92YWxpZF9wXzEpOiBIYW5kbGUgY2FsbCB0bw0KPj4+PiAgICAgICAuQUNDRVNTX1dJVEhfU0la RS4NCj4+Pj4gICAgICAgKG91dHB1dF9jb25zdGFudCk6IEhhbmRsZSBjYWxsIHRvIC5BQ0NFU1Nf V0lUSF9TSVpFLg0KPj4+PiANCj4+Pj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+Pj4+IA0K Pj4+PiAgICAgICAqIGdjYy5kZy9mbGV4LWFycmF5LWNvdW50ZWQtYnktMi5jOiBOZXcgdGVzdC4N Cj4+Pj4gLS0tDQo+Pj4+IGdjYy9jL2MtcGFyc2VyLmNjICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxMCArLQ0KPj4+PiBnY2MvYy9jLXRyZWUuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0NCj4+Pj4gZ2NjL2MvYy10eXBlY2suY2MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTI4ICsrKysrKysrKysrKysrKysrLQ0KPj4+PiBnY2MvaW50ZXJuYWwt Zm4uY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKysrKysNCj4+Pj4gZ2NjL2lu dGVybmFsLWZuLmRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4+Pj4gLi4u L2djYy5kZy9mbGV4LWFycmF5LWNvdW50ZWQtYnktMi5jICAgICAgICAgIHwgMTEyICsrKysrKysr KysrKysrKw0KPj4+PiBnY2MvdHJlZS1zc2EtYWxpYXMuY2MgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKw0KPj4+PiBnY2MvdHJlZS1zc2EtZGNlLmNjICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDUgKy0NCj4+Pj4gZ2NjL3RyZWUuY2MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDI1ICsrKy0NCj4+Pj4gZ2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA4ICsrDQo+Pj4+IGdjYy92YXJhc20uY2MgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxMCArKw0KPj4+PiAxMSBmaWxlcyBjaGFuZ2VkLCAzMzEg aW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pDQo+Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy5kZy9mbGV4LWFycmF5LWNvdW50ZWQtYnktMi5jDQo+Pj4+IA0KPj4+ PiBkaWZmIC0tZ2l0IGEvZ2NjL2MvYy1wYXJzZXIuY2MgYi9nY2MvYy9jLXBhcnNlci5jYw0KPj4+ PiBpbmRleCBjMzEzNDlkYWUyZmYuLmE2ZWQ1YWM0M2JiMSAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2Nj L2MvYy1wYXJzZXIuY2MNCj4+Pj4gKysrIGIvZ2NjL2MvYy1wYXJzZXIuY2MNCj4+Pj4gQEAgLTEw ODUwLDkgKzEwODUwLDEyIEBAIGNfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbiAoY19wYXJzZXIg KnBhcnNlcikNCj4+Pj4gICAgICAgICAgIGlmIChjX3BhcnNlcl9uZXh0X3Rva2VuX2lzIChwYXJz ZXIsIENQUF9OQU1FKSkNCj4+Pj4gICAgICAgICAgICAgew0KPj4+PiAgICAgICAgICAgICAgIGNf dG9rZW4gKmNvbXBfdG9rID0gY19wYXJzZXJfcGVla190b2tlbiAocGFyc2VyKTsNCj4+Pj4gKyAg ICAgICAgICAgICAgIC8qIElnbm9yZSB0aGUgY291bnRlZF9ieSBhdHRyaWJ1dGUgZm9yIHJlZmVy ZW5jZSBpbnNpZGUNCj4+Pj4gKyAgICAgICAgICAgICAgICAgIG9mZnNldG9mIHNpbmNlIHRoZSBp bmZvcm1hdGlvbiBpcyBub3QgdXNlZnVsIGF0IGFsbC4gICovDQo+Pj4+ICAgICAgICAgICAgICAg b2Zmc2V0b2ZfcmVmDQo+Pj4+ICAgICAgICAgICAgICAgICA9IGJ1aWxkX2NvbXBvbmVudF9yZWYg KGxvYywgb2Zmc2V0b2ZfcmVmLCBjb21wX3Rvay0+dmFsdWUsDQo+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcF90b2stPmxvY2F0aW9uLCBVTktOT1dOX0xP Q0FUSU9OKTsNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b21wX3Rvay0+bG9jYXRpb24sIFVOS05PV05fTE9DQVRJT04sDQo+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpOw0KPj4+PiAgICAgICAgICAgICAgIGNf cGFyc2VyX2NvbnN1bWVfdG9rZW4gKHBhcnNlcik7DQo+Pj4+ICAgICAgICAgICAgICAgd2hpbGUg KGNfcGFyc2VyX25leHRfdG9rZW5faXMgKHBhcnNlciwgQ1BQX0RPVCkNCj4+Pj4gICAgICAgICAg ICAgICAgICAgICAgfHwgY19wYXJzZXJfbmV4dF90b2tlbl9pcyAocGFyc2VyLA0KPj4+PiBAQCAt MTA4NzksMTEgKzEwODgyLDE0IEBAIGNfcGFyc2VyX3Bvc3RmaXhfZXhwcmVzc2lvbiAoY19wYXJz ZXIgKnBhcnNlcikNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAgY190 b2tlbiAqY29tcF90b2sgPSBjX3BhcnNlcl9wZWVrX3Rva2VuIChwYXJzZXIpOw0KPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAvKiBJZ25vcmUgdGhlIGNvdW50ZWRfYnkgYXR0cmlidXRlIGZv ciByZWZlcmVuY2UgaW5zaWRlDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dG9mIHNpbmNlIHRoZSBpbmZvcm1hdGlvbiBpcyBub3QgdXNlZnVsLiAgKi8NCj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldG9mX3JlZg0KPj4+PiAgICAgICAgICAgICAgICAgICAgICAg ICA9IGJ1aWxkX2NvbXBvbmVudF9yZWYgKGxvYywgb2Zmc2V0b2ZfcmVmLA0KPj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBfdG9rLT52YWx1ZSwN Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21w X3Rvay0+bG9jYXRpb24sDQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBVTktOT1dOX0xPQ0FUSU9OKTsNCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOS05PV05fTE9DQVRJT04sDQo+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7DQo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICBjX3BhcnNlcl9jb25zdW1lX3Rva2VuIChwYXJzZXIp Ow0KPj4+PiAgICAgICAgICAgICAgICAgICAgIH0NCj4+Pj4gICAgICAgICAgICAgICAgICAgZWxz ZQ0KPj4+PiBkaWZmIC0tZ2l0IGEvZ2NjL2MvYy10cmVlLmggYi9nY2MvYy9jLXRyZWUuaA0KPj4+ PiBpbmRleCAxMmZhZTg1OTE0NjIuLjQwMmU4Zjc4ZGIyYSAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2Nj L2MvYy10cmVlLmgNCj4+Pj4gKysrIGIvZ2NjL2MvYy10cmVlLmgNCj4+Pj4gQEAgLTc3OCw3ICs3 NzgsNyBAQCBleHRlcm4gdm9pZCBtYXJrX2V4cF9yZWFkICh0cmVlKTsNCj4+Pj4gZXh0ZXJuIHRy ZWUgY29tcG9zaXRlX3R5cGUgKHRyZWUsIHRyZWUpOw0KPj4+PiBleHRlcm4gdHJlZSBsb29rdXBf ZmllbGQgKGNvbnN0X3RyZWUsIHRyZWUpOw0KPj4+PiBleHRlcm4gdHJlZSBidWlsZF9jb21wb25l bnRfcmVmIChsb2NhdGlvbl90LCB0cmVlLCB0cmVlLCBsb2NhdGlvbl90LA0KPj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl90KTsNCj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25fdCwgYm9vbCA9IHRydWUpOw0KPj4+PiBleHRl cm4gdHJlZSBidWlsZF9hcnJheV9yZWYgKGxvY2F0aW9uX3QsIHRyZWUsIHRyZWUpOw0KPj4+PiBl eHRlcm4gdHJlZSBidWlsZF9vbXBfYXJyYXlfc2VjdGlvbiAobG9jYXRpb25fdCwgdHJlZSwgdHJl ZSwgdHJlZSk7DQo+Pj4+IGV4dGVybiB0cmVlIGJ1aWxkX2V4dGVybmFsX3JlZiAobG9jYXRpb25f dCwgdHJlZSwgYm9vbCwgdHJlZSAqKTsNCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy9jL2MtdHlwZWNr LmNjIGIvZ2NjL2MvYy10eXBlY2suY2MNCj4+Pj4gaW5kZXggZmI3NTg3ZjA1ZjFmLi5mZjY2ODVj NmM0YmEgMTAwNjQ0DQo+Pj4+IC0tLSBhL2djYy9jL2MtdHlwZWNrLmNjDQo+Pj4+ICsrKyBiL2dj Yy9jL2MtdHlwZWNrLmNjDQo+Pj4+IEBAIC0yNTc4LDE1ICsyNTc4LDExNiBAQCBzaG91bGRfc3Vn Z2VzdF9kZXJlZl9wICh0cmVlIGRhdHVtX3R5cGUpDQo+Pj4+ICAgIHJldHVybiBmYWxzZTsNCj4+ Pj4gfQ0KPj4+PiANCj4+Pj4gKy8qIEZvciBhIFNVQkRBVFVNIGZpZWxkIG9mIGEgc3RydWN0dXJl IG9yIHVuaW9uIERBVFVNLCBnZW5lcmF0ZSBhIFJFRiB0bw0KPj4+PiArICAgdGhlIG9iamVjdCB0 aGF0IHJlcHJlc2VudHMgaXRzIGNvdW50ZWRfYnkgcGVyIHRoZSBhdHRyaWJ1dGUgY291bnRlZF9i eQ0KPj4+PiArICAgYXR0YWNoZWQgdG8gdGhpcyBmaWVsZCBpZiBpdCdzIGEgZmxleGlibGUgYXJy YXkgbWVtYmVyIGZpZWxkLCBvdGhlcndpc2UNCj4+Pj4gKyAgIHJldHVybiBOVUxMX1RSRUUuDQo+ Pj4+ICsgICBTZXQgQ09VTlRFRF9CWV9UWVBFIHRvIHRoZSBUWVBFIG9mIHRoZSBjb3VudGVkX2J5 IGZpZWxkLg0KPj4+PiArICAgRm9yIGV4YW1wbGUsIGlmOg0KPj4+PiArDQo+Pj4+ICsgICAgc3Ry dWN0IFAgew0KPj4+PiArICAgICAgaW50IGs7DQo+Pj4+ICsgICAgICBpbnQgeFtdIF9fYXR0cmli dXRlX18gKChjb3VudGVkX2J5IChrKSkpOw0KPj4+PiArICAgIH0gKnA7DQo+Pj4+ICsNCj4+Pj4g KyAgICBmb3I6DQo+Pj4+ICsgICAgcC0+eA0KPj4+PiArDQo+Pj4+ICsgICAgdGhlIHJlZiB0byB0 aGUgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBpdHMgZWxlbWVudCBjb3VudCB3aWxsIGJlOg0KPj4+ PiArDQo+Pj4+ICsgICAgJihwLT5rKQ0KPj4+PiArDQo+Pj4+ICsqLw0KPj4+PiArc3RhdGljIHRy ZWUNCj4+Pj4gK2J1aWxkX2NvdW50ZWRfYnlfcmVmICh0cmVlIGRhdHVtLCB0cmVlIHN1YmRhdHVt LCB0cmVlICpjb3VudGVkX2J5X3R5cGUpDQo+Pj4+ICt7DQo+Pj4+ICsgIHRyZWUgdHlwZSA9IFRS RUVfVFlQRSAoZGF0dW0pOw0KPj4+PiArICBpZiAoIWNfZmxleGlibGVfYXJyYXlfbWVtYmVyX3R5 cGVfcCAoVFJFRV9UWVBFIChzdWJkYXR1bSkpKQ0KPj4+PiArICAgIHJldHVybiBOVUxMX1RSRUU7 DQo+Pj4+ICsNCj4+Pj4gKyAgdHJlZSBhdHRyX2NvdW50ZWRfYnkgPSBsb29rdXBfYXR0cmlidXRl ICgiY291bnRlZF9ieSIsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBERUNMX0FUVFJJQlVURVMgKHN1YmRhdHVtKSk7DQo+Pj4+ICsgIHRyZWUgY291bnRl ZF9ieV9yZWYgPSBOVUxMX1RSRUU7DQo+Pj4+ICsgICpjb3VudGVkX2J5X3R5cGUgPSBOVUxMX1RS RUU7DQo+Pj4+ICsgIGlmIChhdHRyX2NvdW50ZWRfYnkpDQo+Pj4+ICsgICAgew0KPj4+PiArICAg ICAgdHJlZSBmaWVsZF9pZCA9IFRSRUVfVkFMVUUgKFRSRUVfVkFMVUUgKGF0dHJfY291bnRlZF9i eSkpOw0KPj4+PiArICAgICAgY291bnRlZF9ieV9yZWYNCj4+Pj4gKyAgICAgICA9IGJ1aWxkX2Nv bXBvbmVudF9yZWYgKFVOS05PV05fTE9DQVRJT04sDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXR1bSwgZmllbGRfaWQsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBVTktOT1dOX0xPQ0FUSU9OLCBVTktOT1dOX0xPQ0FUSU9OKTsNCj4+Pj4gKyAgICAg IGNvdW50ZWRfYnlfcmVmID0gYnVpbGRfZm9sZF9hZGRyX2V4cHIgKGNvdW50ZWRfYnlfcmVmKTsN Cj4+Pj4gKw0KPj4+PiArICAgICAgLyogR2V0IHRoZSBUWVBFIG9mIHRoZSBjb3VudGVkX2J5IGZp ZWxkLiAgKi8NCj4+Pj4gKyAgICAgIHRyZWUgY291bnRlZF9ieV9maWVsZCA9IGxvb2t1cF9maWVs ZCAodHlwZSwgZmllbGRfaWQpOw0KPj4+PiArICAgICAgZ2NjX2Fzc2VydCAoY291bnRlZF9ieV9m aWVsZCk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgIGRvDQo+Pj4+ICsgICAgICAgew0KPj4+PiArICAg ICAgICAgKmNvdW50ZWRfYnlfdHlwZSA9IFRSRUVfVFlQRSAoVFJFRV9WQUxVRSAoY291bnRlZF9i eV9maWVsZCkpOw0KPj4+PiArICAgICAgICAgY291bnRlZF9ieV9maWVsZCA9IFRSRUVfQ0hBSU4g KGNvdW50ZWRfYnlfZmllbGQpOw0KPj4+PiArICAgICAgIH0NCj4+Pj4gKyAgICAgIHdoaWxlIChj b3VudGVkX2J5X2ZpZWxkKTsNCj4+Pj4gKyAgICB9DQo+Pj4+ICsgIHJldHVybiBjb3VudGVkX2J5 X3JlZjsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArLyogR2l2ZW4gYSBDT01QT05FTlRfUkVGIFJF RiB3aXRoIHRoZSBsb2NhdGlvbiBMT0MsIHRoZSBjb3JyZXNwb25kaW5nDQo+Pj4+ICsgICBDT1VO VEVEX0JZX1JFRiwgYW5kIHRoZSBDT1VOVEVEX0JZX1RZUEUsIGdlbmVyYXRlIGFuIElORElSRUNU X1JFRg0KPj4+PiArICAgdG8gYSBjYWxsIHRvIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiAuQUNDRVNT X1dJVEhfU0laRS4NCj4+Pj4gKw0KPj4+PiArICAgUkVGDQo+Pj4+ICsNCj4+Pj4gKyAgIHRvOg0K Pj4+PiArDQo+Pj4+ICsgICAoKi5BQ0NFU1NfV0lUSF9TSVpFIChSRUYsIENPVU5URURfQllfUkVG LCAxLCAoVFlQRV9PRl9TSVpFKTAsIC0xKSkNCj4+Pj4gKw0KPj4+PiArICAgTk9URTogVGhlIHJl dHVybiB0eXBlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdGhlIFBPSU5URVIgdHlwZSBwb2ludGluZw0K Pj4+PiArICAgdG8gdGhlIG9yaWdpbmFsIGZsZXhpYmxlIGFycmF5IHR5cGUuDQo+Pj4+ICsgICBU aGVuIHRoZSB0eXBlIG9mIHRoZSBJTkRJUkVDVF9SRUYgaXMgdGhlIG9yaWdpbmFsIGZsZXhpYmxl IGFycmF5IHR5cGUuDQo+Pj4+ICsNCj4+Pj4gKyAgIFRoZSB0eXBlIG9mIHRoZSBmaXJzdCBhcmd1 bWVudCBvZiB0aGlzIGZ1bmN0aW9uIGlzIGEgUE9JTlRFUiB0eXBlDQo+Pj4+ICsgICB0byB0aGUg b3JpZ2luYWwgZmxleGlibGUgYXJyYXkgdHlwZS4NCj4+Pj4gKw0KPj4+PiArICAgVGhlIDR0aCBh cmd1bWVudCBvZiB0aGUgY2FsbCBpcyBhIGNvbnN0YW50IDAgd2l0aCB0aGUgVFlQRSBvZiB0aGUN Cj4+Pj4gKyAgIG9iamVjdCBwb2ludGVkIGJ5IENPVU5URURfQllfUkVGLg0KPj4+PiArDQo+Pj4+ ICsgICovDQo+Pj4+ICtzdGF0aWMgdHJlZQ0KPj4+PiArYnVpbGRfYWNjZXNzX3dpdGhfc2l6ZV9m b3JfY291bnRlZF9ieSAobG9jYXRpb25fdCBsb2MsIHRyZWUgcmVmLA0KPj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIGNvdW50ZWRfYnlfcmVmLA0KPj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlIGNvdW50ZWRfYnlfdHlw ZSkNCj4+Pj4gK3sNCj4+Pj4gKyAgZ2NjX2Fzc2VydCAoY19mbGV4aWJsZV9hcnJheV9tZW1iZXJf dHlwZV9wIChUUkVFX1RZUEUgKHJlZikpKTsNCj4+Pj4gKyAgLyogVGhlIHJlc3VsdCB0eXBlIG9m IHRoZSBjYWxsIGlzIGEgcG9pbnRlciB0byB0aGUgZmxleGlibGUgYXJyYXkgdHlwZS4gICovDQo+ Pj4+ICsgIHRyZWUgcmVzdWx0X3R5cGUgPSBidWlsZF9wb2ludGVyX3R5cGUgKFRSRUVfVFlQRSAo cmVmKSk7DQo+Pj4+ICsNCj4+Pj4gKyAgdHJlZSBjYWxsDQo+Pj4+ICsgICAgPSBidWlsZF9jYWxs X2V4cHJfaW50ZXJuYWxfbG9jIChsb2MsIElGTl9BQ0NFU1NfV0lUSF9TSVpFLA0KPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHlwZSwgNSwNCj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfdG9fcG9pbnRlcl9jb252ZXJz aW9uIChsb2MsIHJlZiksDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvdW50ZWRfYnlfcmVmLA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgMSksDQo+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2ludF9jc3QgKGNvdW50ZWRfYnlfdHlwZSwg MCksDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkX2ludF9j c3QgKGludGVnZXJfdHlwZV9ub2RlLCAtMSkpOw0KPj4+PiArICAvKiBXcmFwIHRoZSBjYWxsIHdp dGggYW4gSU5ESVJFQ1RfUkVGIHdpdGggdGhlIGZsZXhpYmxlIGFycmF5IHR5cGUuICAqLw0KPj4+ PiArICBjYWxsID0gYnVpbGQxIChJTkRJUkVDVF9SRUYsIFRSRUVfVFlQRSAocmVmKSwgY2FsbCk7 DQo+Pj4+ICsgIFNFVF9FWFBSX0xPQ0FUSU9OIChjYWxsLCBsb2MpOw0KPj4+PiArICByZXR1cm4g Y2FsbDsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiAvKiBNYWtlIGFuIGV4cHJlc3Npb24gdG8gcmVm ZXIgdG8gdGhlIENPTVBPTkVOVCBmaWVsZCBvZiBzdHJ1Y3R1cmUgb3INCj4+Pj4gICB1bmlvbiB2 YWx1ZSBEQVRVTS4gIENPTVBPTkVOVCBpcyBhbiBJREVOVElGSUVSX05PREUuICBMT0MgaXMgdGhl DQo+Pj4+ICAgbG9jYXRpb24gb2YgdGhlIENPTVBPTkVOVF9SRUYuICBDT01QT05FTlRfTE9DIGlz IHRoZSBsb2NhdGlvbg0KPj4+PiAgIG9mIENPTVBPTkVOVC4gIEFSUk9XX0xPQyBpcyB0aGUgbG9j YXRpb24gb2YgdGhlIGZpcnN0IC0+IG9wZXJhbmQgaWYNCj4+Pj4gLSAgIGl0IGlzIGZyb20gLT4g b3BlcmF0b3IuICAqLw0KPj4+PiArICAgaXQgaXMgZnJvbSAtPiBvcGVyYXRvci4NCj4+Pj4gKyAg IElmIEhBTkRMRV9DT1VOVEVEX0JZIGlzIHRydWUsIGNoZWNrIHRoZSBjb3VudGVkX2J5IGF0dHJp YnV0ZSBhbmQgZ2VuZXJhdGUNCj4+Pj4gKyAgIGEgY2FsbCB0byAuQUNDRVNTX1dJVEhfU0laRS4g IE90aGVyd2lzZSwgaWdub3JlIHRoZSBhdHRyaWJ1dGUuICAqLw0KPj4+PiANCj4+Pj4gdHJlZQ0K Pj4+PiBidWlsZF9jb21wb25lbnRfcmVmIChsb2NhdGlvbl90IGxvYywgdHJlZSBkYXR1bSwgdHJl ZSBjb21wb25lbnQsDQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX3QgY29tcG9u ZW50X2xvYywgbG9jYXRpb25fdCBhcnJvd19sb2MpDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAg IGxvY2F0aW9uX3QgY29tcG9uZW50X2xvYywgbG9jYXRpb25fdCBhcnJvd19sb2MsDQo+Pj4+ICsg ICAgICAgICAgICAgICAgICAgIGJvb2wgaGFuZGxlX2NvdW50ZWRfYnkpDQo+Pj4+IHsNCj4+Pj4g IHRyZWUgdHlwZSA9IFRSRUVfVFlQRSAoZGF0dW0pOw0KPj4+PiAgZW51bSB0cmVlX2NvZGUgY29k ZSA9IFRSRUVfQ09ERSAodHlwZSk7DQo+Pj4+IEBAIC0yNjU4LDcgKzI3NTksMTMgQEAgYnVpbGRf Y29tcG9uZW50X3JlZiAobG9jYXRpb25fdCBsb2MsIHRyZWUgZGF0dW0sIHRyZWUgY29tcG9uZW50 LA0KPj4+PiAgICAgICAgIGludCBxdWFsczsNCj4+Pj4gICAgICAgICB0cmVlIHN1YnR5cGU7DQo+ Pj4+ICAgICAgICAgYm9vbCB1c2VfZGF0dW1fcXVhbHM7DQo+Pj4+IC0NCj4+Pj4gKyAgICAgICAg IHRyZWUgY291bnRlZF9ieV90eXBlID0gTlVMTF9UUkVFOw0KPj4+PiArICAgICAgICAgLyogRG8g bm90IGhhbmRsZSBjb3VudGVkX2J5IHdoZW4gaW4gdHlwZW9mIGFuZCBhbGlnbm9mIG9wZXJhdG9y LiAgKi8NCj4+Pj4gKyAgICAgICAgIGhhbmRsZV9jb3VudGVkX2J5ID0gaGFuZGxlX2NvdW50ZWRf YnkgJiYgIWluX3R5cGVvZiAmJiAhaW5fYWxpZ25vZjsNCj4+Pj4gKyAgICAgICAgIHRyZWUgY291 bnRlZF9ieV9yZWYgPSBoYW5kbGVfY291bnRlZF9ieQ0KPj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID8gYnVpbGRfY291bnRlZF9ieV9yZWYgKGRhdHVtLCBzdWJkYXR1bSwNCj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmY291bnRlZF9ieV90eXBlKQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDogTlVMTF9UUkVFOw0KPj4+PiAgICAgICAgIGlmIChUUkVFX1RZUEUgKHN1YmRhdHVtKSA9PSBl cnJvcl9tYXJrX25vZGUpDQo+Pj4+ICAgICAgICAgICByZXR1cm4gZXJyb3JfbWFya19ub2RlOw0K Pj4+PiANCj4+Pj4gQEAgLTI2NzcsNiArMjc4NCwxMiBAQCBidWlsZF9jb21wb25lbnRfcmVmIChs b2NhdGlvbl90IGxvYywgdHJlZSBkYXR1bSwgdHJlZSBjb21wb25lbnQsDQo+Pj4+ICAgICAgICAg cmVmID0gYnVpbGQzIChDT01QT05FTlRfUkVGLCBzdWJ0eXBlLCBkYXR1bSwgc3ViZGF0dW0sDQo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICBOVUxMX1RSRUUpOw0KPj4+PiAgICAgICAgIFNFVF9F WFBSX0xPQ0FUSU9OIChyZWYsIGxvYyk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgIGlmIChjb3Vu dGVkX2J5X3JlZikNCj4+Pj4gKyAgICAgICAgICAgcmVmID0gYnVpbGRfYWNjZXNzX3dpdGhfc2l6 ZV9mb3JfY291bnRlZF9ieSAobG9jLCByZWYsDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZWRfYnlfcmVmLA0KPj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b3VudGVkX2J5X3R5cGUpOw0KPj4+PiArDQo+Pj4+ICAgICAgICAgaWYgKFRSRUVfUkVBRE9OTFkg KHN1YmRhdHVtKQ0KPj4+PiAgICAgICAgICAgICB8fCAodXNlX2RhdHVtX3F1YWxzICYmIFRSRUVf UkVBRE9OTFkgKGRhdHVtKSkpDQo+Pj4+ICAgICAgICAgICBUUkVFX1JFQURPTkxZIChyZWYpID0g MTsNCj4+Pj4gQEAgLTUwODAsNyArNTE5MywxMSBAQCBidWlsZF91bmFyeV9vcCAobG9jYXRpb25f dCBsb2NhdGlvbiwgZW51bSB0cmVlX2NvZGUgY29kZSwgdHJlZSB4YXJnLA0KPj4+PiAgICAgICAg IGdvdG8gcmV0dXJuX2J1aWxkX3VuYXJ5X29wOw0KPj4+PiAgICAgICB9DQo+Pj4+IA0KPj4+PiAt ICAgICAgLyogT3JkaW5hcnkgY2FzZTsgYXJnIGlzIGEgQ09NUE9ORU5UX1JFRiBvciBhIGRlY2wu ICAqLw0KPj4+PiArICAgICAgLyogT3JkaW5hcnkgY2FzZTsgYXJnIGlzIGEgQ09NUE9ORU5UX1JF RiBvciBhIGRlY2wsIG9yIGEgY2FsbCB0bw0KPj4+PiArICAgICAgICAuQUNDRVNTX1dJVEhfU0la RS4gICovDQo+Pj4+ICsgICAgICBpZiAoaXNfYWNjZXNzX3dpdGhfc2l6ZV9wIChhcmcpKQ0KPj4+ PiArICAgICAgIGFyZyA9IFRSRUVfT1BFUkFORCAoVFJFRV9PUEVSQU5EIChDQUxMX0VYUFJfQVJH IChhcmcsIDApLCAwKSwgMCk7DQo+Pj4+ICsNCj4+Pj4gICAgICBhcmd0eXBlID0gVFJFRV9UWVBF IChhcmcpOw0KPj4+PiANCj4+Pj4gICAgICAvKiBJZiB0aGUgbHZhbHVlIGlzIGNvbnN0IG9yIHZv bGF0aWxlLCBtZXJnZSB0aGF0IGludG8gdGhlIHR5cGUNCj4+Pj4gQEAgLTUyMjcsNiArNTM0NCw5 IEBAIGx2YWx1ZV9wIChjb25zdF90cmVlIHJlZikNCj4+Pj4gICAgY2FzZSBCSU5EX0VYUFI6DQo+ Pj4+ICAgICAgcmV0dXJuIFRSRUVfQ09ERSAoVFJFRV9UWVBFIChyZWYpKSA9PSBBUlJBWV9UWVBF Ow0KPj4+PiANCj4+Pj4gKyAgICBjYXNlIENBTExfRVhQUjoNCj4+Pj4gKyAgICAgIHJldHVybiBp c19hY2Nlc3Nfd2l0aF9zaXplX3AgKHJlZik7DQo+Pj4+ICsNCj4+Pj4gICAgZGVmYXVsdDoNCj4+ Pj4gICAgICByZXR1cm4gZmFsc2U7DQo+Pj4+ICAgIH0NCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy9p bnRlcm5hbC1mbi5jYyBiL2djYy9pbnRlcm5hbC1mbi5jYw0KPj4+PiBpbmRleCBhMDdmMjVmM2Fl ZTMuLmU3NDQwODBlZTY3MCAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL2ludGVybmFsLWZuLmNjDQo+ Pj4+ICsrKyBiL2djYy9pbnRlcm5hbC1mbi5jYw0KPj4+PiBAQCAtMzM5Myw2ICszMzkzLDQxIEBA IGV4cGFuZF9ERUZFUlJFRF9JTklUIChpbnRlcm5hbF9mbiwgZ2NhbGwgKnN0bXQpDQo+Pj4+ICAg IH0NCj4+Pj4gfQ0KPj4+PiANCj4+Pj4gKy8qIEV4cGFuZCB0aGUgSUZOX0FDQ0VTU19XSVRIX1NJ WkUgZnVuY3Rpb246DQo+Pj4+ICsgICBBQ0NFU1NfV0lUSF9TSVpFIChSRUZfVE9fT0JKLCBSRUZf VE9fU0laRSwgQ0xBU1NfT0ZfU0laRSwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgVFlQRV9P Rl9TSVpFLCBBQ0NFU1NfTU9ERSkNCj4+Pj4gKyAgIHdoaWNoIHJldHVybnMgdGhlIFJFRl9UT19P Qkogc2FtZSBhcyB0aGUgMXN0IGFyZ3VtZW50Ow0KPj4+PiArDQo+Pj4+ICsgICAxc3QgYXJndW1l bnQgUkVGX1RPX09CSjogVGhlIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0Ow0KPj4+PiArICAgMm5k IGFyZ3VtZW50IFJFRl9UT19TSVpFOiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBzaXplIG9mIHRoZSBv YmplY3QsDQo+Pj4+ICsgICAzcmQgYXJndW1lbnQgQ0xBU1NfT0ZfU0laRTogVGhlIHNpemUgcmVm ZXJlbmNlZCBieSB0aGUgUkVGX1RPX1NJWkUgcmVwcmVzZW50cw0KPj4+PiArICAgICAwOiB0aGUg bnVtYmVyIG9mIGJ5dGVzLg0KPj4+PiArICAgICAxOiB0aGUgbnVtYmVyIG9mIHRoZSBlbGVtZW50 cyBvZiB0aGUgb2JqZWN0IHR5cGU7DQo+Pj4+ICsgICA0dGggYXJndW1lbnQgVFlQRV9PRl9TSVpF OiBBIGNvbnN0YW50IDAgd2l0aCBpdHMgVFlQRSBiZWluZyB0aGUgc2FtZSBhcyB0aGUgVFlQRQ0K Pj4+PiArICAgIG9mIHRoZSBvYmplY3QgcmVmZXJlbmNlZCBieSBSRUZfVE9fU0laRQ0KPj4+PiAr ICAgNXRoIGFyZ3VtZW50IEFDQ0VTU19NT0RFOg0KPj4+PiArICAgIC0xOiBVbmtub3duIGFjY2Vz cyBzZW1hbnRpY3MNCj4+Pj4gKyAgICAgMDogbm9uZQ0KPj4+PiArICAgICAxOiByZWFkX29ubHkN Cj4+Pj4gKyAgICAgMjogd3JpdGVfb25seQ0KPj4+PiArICAgICAzOiByZWFkX3dyaXRlDQo+Pj4+ ICsNCj4+Pj4gKyAgIEJvdGggdGhlIHJldHVybiB0eXBlIGFuZCB0aGUgdHlwZSBvZiB0aGUgZmly c3QgYXJndW1lbnQgb2YgdGhpcw0KPj4+PiArICAgZnVuY3Rpb24gaGF2ZSBiZWVuIGNvbnZlcnRl ZCBmcm9tIHRoZSBpbmNvbXBsZXRlIGFycmF5IHR5cGUgdG8NCj4+Pj4gKyAgIHRoZSBjb3JyZXNw b25kaW5nIHBvaW50ZXIgdHlwZS4NCj4+Pj4gKw0KPj4+PiArICAgRm9yIGVhY2ggY2FsbCB0byBh IC5BQ0NFU1NfV0lUSF9TSVpFLCByZXBsYWNlIGl0IHdpdGggaXRzIDFzdCBhcmd1bWVudC4gICov DQo+Pj4+ICtzdGF0aWMgdm9pZA0KPj4+PiArZXhwYW5kX0FDQ0VTU19XSVRIX1NJWkUgKGludGVy bmFsX2ZuLCBnY2FsbCAqc3RtdCkNCj4+Pj4gK3sNCj4+Pj4gKyAgdHJlZSBsaHMgPSBnaW1wbGVf Y2FsbF9saHMgKHN0bXQpOw0KPj4+PiArICB0cmVlIHJlZl90b19vYmogPSBnaW1wbGVfY2FsbF9h cmcgKHN0bXQsIDApOw0KPj4+PiArICBpZiAobGhzKQ0KPj4+PiArICAgIGV4cGFuZF9hc3NpZ25t ZW50IChsaHMsIHJlZl90b19vYmosIGZhbHNlKTsNCj4+Pj4gKyAgZWxzZQ0KPj4+PiArICAgIGVt aXRfaW5zbiAoZXhwYW5kX25vcm1hbCAocmVmX3RvX29iaikpOw0KPj4+IA0KPj4+IFRoYXQgbG9v a3Mgc3VzcGljaW91cywgZXhwYW5kX25vcm1hbCBkb2VzIG5vdCByZXN1bHQgaW4gYW4gaW5zbi4g IFdoYXQgaXMNCj4+PiB0aGVyZSB0byBkbyB3aGVuIHRoZXJlJ3Mgbm8gTEhTIG9mIHRoZSAuQUND RVNTX1dJVEhfU0laRT8NCj4+IA0KPj4gSSB0aGluayBteSBpbml0aWFsIHB1cnBvc2Ugb2YgdGhh dCBsaW5lIGlzIHRyeWluZyB0byBoYW5kbGUgc3VjaCByYXJlIHNpdHVhdGlvbiB0aGF0IG1pZ2h0 IGhhcHBlbiB3aXRoIGRpZmZlcmVudCBvcHRpbWl6YXRpb25zLi4NCj4+IEkgY2FuIGNoYW5nZSB0 aGUgZWxzZSBwYXRoIHRvIGEgZ2NjX3VucmVhY2hhYmxlKCkgdG8gc2VlIGFueSBpc3N1ZS4NCj4+ IFdoYXQgZG8geW91IHRoaW5rPw0KPiANCj4gQXMgSSd2ZSBzZWVuIGxhdGVyIGluIERDRSB5b3Ug aGFwcGlseSBlbGlkZSAuQUNDRVNTX1dJVEhfU0laRSB3aXRob3V0DQo+IGEgTEhTIHNvIEknZA0K PiBzYXkgeW91IHNob3VsZCBzaW1wbHkgZG8gbm90aGluZyAocmVtb3ZlIHRoZSBlbHNlKSBoZXJl IHdoaWNoIG1lYW5zDQo+IERDRWluZyB0aGUgY2FsbC4NCg0KT2theSwgd2lsbCBkbyB0aGF0LiBU aGFua3MuDQo+IA0KPj4+IA0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+IC8qIFRoZSBzaXplIG9mIGFu IE9wZW5BQ0MgY29tcHV0ZSBkaW1lbnNpb24uICAqLw0KPj4+PiANCj4+Pj4gc3RhdGljIHZvaWQN Cj4+Pj4gZGlmZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50ZXJuYWwtZm4u ZGVmDQo+Pj4+IGluZGV4IGMxNGQzMDM2NWMxNC4uMDgwMWM4YmZlNjFkIDEwMDY0NA0KPj4+PiAt LS0gYS9nY2MvaW50ZXJuYWwtZm4uZGVmDQo+Pj4+ICsrKyBiL2djYy9pbnRlcm5hbC1mbi5kZWYN Cj4+Pj4gQEAgLTUxMCw2ICs1MTAsMTAgQEAgREVGX0lOVEVSTkFMX0ZOIChQSEksIDAsIE5VTEwp DQo+Pj4+ICAgYXV0b21hdGljIHZhcmlhYmxlLiAgKi8NCj4+Pj4gREVGX0lOVEVSTkFMX0ZOIChE RUZFUlJFRF9JTklULCBFQ0ZfQ09OU1QgfCBFQ0ZfTEVBRiB8IEVDRl9OT1RIUk9XLCBOVUxMKQ0K Pj4+PiANCj4+Pj4gKy8qIEEgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIHRoZSBhY2Nlc3Mgc2l6ZSBh bmQgYWNjZXNzIG1vZGUgaW5mb3JtYXRpb24NCj4+Pj4gKyAgIHdpdGggdGhlIGNvcnJlc3BvbmRp bmcgcmVmZXJlbmNlIHRvIGFuIG9iamVjdC4gICovDQo+Pj4+ICtERUZfSU5URVJOQUxfRk4gKEFD Q0VTU19XSVRIX1NJWkUsIEVDRl9MRUFGIHwgRUNGX05PVEhST1csIE5VTEwpDQo+Pj4gDQo+Pj4g RG9lcyAuQUNDRVNTX1dJVEhfU0laRSBzdG9yZSB0byBtZW1vcnk/ICAob3IgZXZlbiBsb2FkPykN Cj4+IEl0IHJlYWRzIGZyb20gdGhlIDJuZCBhcmd1bWVudC4NCj4+IFNvLCBpdOKAmXMgbm90IFBV UkUuDQo+IA0KPiBJZiBpdCBvbmx5IHJlYWRzIGl0IF9pc18gUFVSRS4gIEl0J3Mgbm90IENPTlNU Lg0KDQpKdXN0IHJlYWQgdGhlIGRvY3VtZW50YXRpb24gb2YgR0NDIHB1cmUgYXR0cmlidXRlOg0K aHR0cHM6Ly9nY2MuZ251Lm9yZy9vbmxpbmVkb2NzL2djYy9Db21tb24tRnVuY3Rpb24tQXR0cmli dXRlcy5odG1sI2luZGV4LXB1cmUtZnVuY3Rpb24tYXR0cmlidXRlDQoNClNvLCBFQ0ZfUFVSRSBo YXMgdGhlIHNhbWUgbWVhbmluZyBvZiB0aGUgcHVyZSBhdHRyaWJ1dGU/IA0KSWYgc28sIHllcywg LkFDQ0VTU19XSVRIX1NJWkUgaXMgRUNGX1BVUkUuIA0KDQpUaGFua3MgYSBsb3QgZm9yIGNhdGNo aW5nIHRoaXMgYnVnLg0KDQpXaWxsIHVwZGF0ZSBpdC4gDQo+IA0KPj4gUGxlYXNlIHNlZSBvdXIg ZGlzY3Vzc2lvbiBsYXN0IE5vdmVtYmVyIG9uIHRoaXM6DQo+PiBodHRwczovL2djYy5nbnUub3Jn L3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLU5vdmVtYmVyLzYzNTE1OC5odG1sDQo+PiANCj4+ IEluIHdoaWNoOiAiQWx0aG91Z2ggLkFDQ0VTU19XSVRIX1NJWkUgaXMgbm90IFBVUkUgYW55bW9y ZSwgYnV0IGl04oCZcyBvbmx5IHJlYWQgZnJvbSB0aGUgMm5kIGFyZ3VtZW50LCBhbmQgbm90IG1v ZGlmeSBhbnl0aGluZyBpbiB0aGUgcG9pbnRlZCBvYmplY3RzLiBTbywgd2UgY2FuIGFkanVzdCB0 aGUgSVBBIGFsaWFzIGFuYWx5c2lzIHBoYXNlIHdpdGggdGhpcyBkZXRhaWxzIChyZWZfbWF5YmVf dXNlZF9ieV9jYWxsX3BfMS9jYWxsX21heV9jbG9iYmVyX3JlZl9wXzEpLuKAnQ0KPj4gDQo+PiAo Tk9URSwgaW4gdGhlIGluaXRpYWwgcHJvcG9zYWwgKGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJt YWlsL2djYy1wYXRjaGVzLzIwMjMtT2N0b2Jlci82MzQ4NDQuaHRtbCkgSSBkZWZpbmVkIGl0IGFz DQo+PiBERUZfSU5URVJOQUxfRk4gKEFDQ0VTU19XSVRIX1NJWkUsIEVDRl9DT05TVCB8IEVDRl9M RUFGIHwgRUNGX05PVEhST1csIE5VTEwpLA0KPj4gQW5kIGxhdGVyIGFmdGVyIGRpc2N1c3Npb24s IHdlIGRlbGV0ZWQgRUNGX0NPTlNUIGZyb20gaXQpDQo+IA0KPiBBbmQgeW91IG5vdyBzaG91bGQg cHV0IGluIEVDRl9QVVJFLg0KT2theS4NCj4gDQo+PiANCj4+PiANCj4+Pj4gKw0KPj4+PiAvKiBE SU1fU0laRSBhbmQgRElNX1BPUyByZXR1cm4gdGhlIHNpemUgb2YgYSBwYXJ0aWN1bGFyIGNvbXB1 dGUNCj4+Pj4gICBkaW1lbnNpb24gYW5kIHRoZSBleGVjdXRpbmcgdGhyZWFkJ3MgcG9zaXRpb24g d2l0aGluIHRoYXQNCj4+Pj4gICBkaW1lbnNpb24uICBESU1fUE9TIGlzIHB1cmUgKGFuZCBub3Qg Y29uc3QpIHNvIHRoYXQgaXQgaXNuJ3QNCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL2ZsZXgtYXJyYXktY291bnRlZC1ieS0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9m bGV4LWFycmF5LWNvdW50ZWQtYnktMi5jDQo+Pj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+Pj4+ IGluZGV4IDAwMDAwMDAwMDAwMC4uZDQ4OTlhNjNhZjNjDQo+Pj4+IC0tLSAvZGV2L251bGwNCj4+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvZmxleC1hcnJheS1jb3VudGVkLWJ5LTIuYw0K Pj4+PiBAQCAtMCwwICsxLDExMiBAQA0KPj4+PiArLyogVGVzdCB0aGUgY29kZSBnZW5lcmF0aW9u IGZvciB0aGUgbmV3IGF0dHJpYnV0ZSBjb3VudGVkX2J5Lg0KPj4+PiArICAgQW5kIGFsc28gdGhl IG9mZnNldG9mIG9wZXJhdG9yIG9uIHN1Y2ggYXJyYXkuICAqLw0KPj4+PiArLyogeyBkZy1kbyBy dW4gfSAqLw0KPj4+PiArLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1wLXRyZWUtb3JpZ2luYWwi IH0gKi8NCj4+Pj4gKw0KPj4+PiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPj4+PiArDQo+Pj4+ICtz dHJ1Y3QgYW5ub3RhdGVkIHsNCj4+Pj4gKyAgaW50IGI7DQo+Pj4+ICsgIGNoYXIgY1tdIF9fYXR0 cmlidXRlX18gKChjb3VudGVkX2J5IChiKSkpOw0KPj4+PiArfSAqYXJyYXlfYW5ub3RhdGVkOw0K Pj4+PiArDQo+Pj4+ICtzdGF0aWMgc3RydWN0IGFubm90YXRlZCBzdGF0aWNfYW5ub3RhdGVkID0g eyBzaXplb2YgImhlbGxvIiwgImhlbGxvIiB9Ow0KPj4+PiArc3RhdGljIGNoYXIgKnkgPSBzdGF0 aWNfYW5ub3RhdGVkLmM7DQo+Pj4+ICsNCj4+Pj4gK3N0cnVjdCBmbGV4IHsNCj4+Pj4gKyAgaW50 IGI7DQo+Pj4+ICsgIGNoYXIgY1tdOw0KPj4+PiArfTsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IG5l c3RlZF9hbm5vdGF0ZWQgew0KPj4+PiArICBzdHJ1Y3Qgew0KPj4+PiArICAgIHVuaW9uIHsNCj4+ Pj4gKyAgICAgIGludCBiOw0KPj4+PiArICAgICAgZmxvYXQgZjsNCj4+Pj4gKyAgICB9Ow0KPj4+ PiArICAgIGludCBuOw0KPj4+PiArICB9Ow0KPj4+PiArICBjaGFyIGNbXSBfX2F0dHJpYnV0ZV9f ICgoY291bnRlZF9ieSAoYikpKTsNCj4+Pj4gK30gKmFycmF5X25lc3RlZF9hbm5vdGF0ZWQ7DQo+ Pj4+ICsNCj4+Pj4gK3N0YXRpYyBzdHJ1Y3QgbmVzdGVkX2Fubm90YXRlZCBuZXN0ZWRfc3RhdGlj X2Fubm90YXRlZA0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHsgc2l6 ZW9mICJoZWxsbzEiLCAwLCAiaGVsbG8xIiB9Ow0KPj4+PiArc3RhdGljIGNoYXIgKm5lc3RlZF95 ID0gbmVzdGVkX3N0YXRpY19hbm5vdGF0ZWQuYzsNCj4+Pj4gKw0KPj4+PiArc3RydWN0IG5lc3Rl ZF9mbGV4IHsNCj4+Pj4gKyAgc3RydWN0IHsNCj4+Pj4gKyAgICB1bmlvbiB7DQo+Pj4+ICsgICAg ICBpbnQgYjsNCj4+Pj4gKyAgICAgIGZsb2F0IGY7DQo+Pj4+ICsgICAgfTsNCj4+Pj4gKyAgICBp bnQgbjsNCj4+Pj4gKyAgfTsNCj4+Pj4gKyAgY2hhciBjW107DQo+Pj4+ICt9Ow0KPj4+PiArDQo+ Pj4+ICt2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXykpIHNldHVwIChpbnQgbm9ybWFs X2NvdW50LCBpbnQgYXR0cl9jb3VudCkNCj4+Pj4gK3sNCj4+Pj4gKyAgYXJyYXlfYW5ub3RhdGVk DQo+Pj4+ICsgICAgPSAoc3RydWN0IGFubm90YXRlZCAqKW1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3Qg YW5ub3RhdGVkKQ0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBhdHRy X2NvdW50ICogIHNpemVvZiAoY2hhcikpOw0KPj4+PiArICBhcnJheV9hbm5vdGF0ZWQtPmIgPSBh dHRyX2NvdW50Ow0KPj4+PiArDQo+Pj4+ICsgIGFycmF5X25lc3RlZF9hbm5vdGF0ZWQNCj4+Pj4g KyAgICA9IChzdHJ1Y3QgbmVzdGVkX2Fubm90YXRlZCAqKW1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3Qg bmVzdGVkX2Fubm90YXRlZCkNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArIGF0dHJfY291bnQgKiAgc2l6ZW9mIChjaGFyKSk7DQo+Pj4+ICsgIGFycmF5X25l c3RlZF9hbm5vdGF0ZWQtPmIgPSBhdHRyX2NvdW50Ow0KPj4+PiArDQo+Pj4+ICsgIHJldHVybjsN Cj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiArdm9pZCBfX2F0dHJpYnV0ZV9fKChfX25vaW5saW5lX18p KSB0ZXN0IChjaGFyIGEsIGNoYXIgYikNCj4+Pj4gK3sNCj4+Pj4gKyAgaWYgKF9fYnVpbHRpbl9v ZmZzZXRvZiAoc3RydWN0IGFubm90YXRlZCwgY1swXSkNCj4+Pj4gKyAgICAgICE9IF9fYnVpbHRp bl9vZmZzZXRvZiAoc3RydWN0IGZsZXgsIGNbMF0pKQ0KPj4+PiArICAgIGFib3J0ICgpOw0KPj4+ PiArICBpZiAoX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgYW5ub3RhdGVkLCBjWzFdKQ0KPj4+ PiArICAgICAgIT0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgZmxleCwgY1sxXSkpDQo+Pj4+ ICsgICAgYWJvcnQgKCk7DQo+Pj4+ICsgIGlmIChfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVjdCBu ZXN0ZWRfYW5ub3RhdGVkLCBjWzBdKQ0KPj4+PiArICAgICAgIT0gX19idWlsdGluX29mZnNldG9m IChzdHJ1Y3QgbmVzdGVkX2ZsZXgsIGNbMF0pKQ0KPj4+PiArICAgIGFib3J0ICgpOw0KPj4+PiAr ICBpZiAoX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgbmVzdGVkX2Fubm90YXRlZCwgY1sxXSkN Cj4+Pj4gKyAgICAgICE9IF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IG5lc3RlZF9mbGV4LCBj WzFdKSkNCj4+Pj4gKyAgICBhYm9ydCAoKTsNCj4+Pj4gKw0KPj4+PiArICBpZiAoX19idWlsdGlu X3R5cGVzX2NvbXBhdGlibGVfcCAodHlwZW9mIChhcnJheV9hbm5vdGF0ZWQtPmMpLA0KPj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgKCYoYXJyYXlfYW5ub3Rh dGVkLT5jKVswXSkpKQ0KPj4+PiArICAgIGFib3J0ICgpOw0KPj4+PiArICBpZiAoX19idWlsdGlu X3R5cGVzX2NvbXBhdGlibGVfcCAodHlwZW9mIChhcnJheV9uZXN0ZWRfYW5ub3RhdGVkLT5jKSwN Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mICgmKGFycmF5 X25lc3RlZF9hbm5vdGF0ZWQtPmMpWzBdKSkpDQo+Pj4+ICsgICAgYWJvcnQgKCk7DQo+Pj4+ICsN Cj4+Pj4gKyAgaWYgKF9fYWxpZ25vZiAoYXJyYXlfYW5ub3RhdGVkLT5jKSAhPSBfX2FsaWdub2Yg KGNoYXIpKQ0KPj4+PiArICAgIGFib3J0ICgpOw0KPj4+PiArICBpZiAoX19hbGlnbm9mIChhcnJh eV9uZXN0ZWRfYW5ub3RhdGVkLT5jKSAhPSBfX2FsaWdub2YgKGNoYXIpKQ0KPj4+PiArICAgIGFi b3J0ICgpOw0KPj4+PiArDQo+Pj4+ICsgIGlmICgodW5zaWduZWQgbG9uZykgYXJyYXlfYW5ub3Rh dGVkLT5jICE9ICh1bnNpZ25lZCBsb25nKSAmYXJyYXlfYW5ub3RhdGVkLT5jKQ0KPj4+PiArICAg IGFib3J0ICgpOw0KPj4+PiArICBpZiAoKHVuc2lnbmVkIGxvbmcpIGFycmF5X25lc3RlZF9hbm5v dGF0ZWQtPmMNCj4+Pj4gKyAgICAgICAhPSAodW5zaWduZWQgbG9uZykgJmFycmF5X25lc3RlZF9h bm5vdGF0ZWQtPmMpDQo+Pj4+ICsgICAgYWJvcnQgKCk7DQo+Pj4+ICsNCj4+Pj4gKyAgYXJyYXlf YW5ub3RhdGVkLT5jWzJdID0gYTsNCj4+Pj4gKyAgYXJyYXlfbmVzdGVkX2Fubm90YXRlZC0+Y1sz XSA9IGI7DQo+Pj4+ICsNCj4+Pj4gKyAgaWYgKHlbMl0gIT0gJ2wnKSBhYm9ydCAoKTsNCj4+Pj4g KyAgaWYgKG5lc3RlZF95WzRdICE9J28nKSBhYm9ydCAoKTsNCj4+Pj4gKw0KPj4+PiArfQ0KPj4+ PiArDQo+Pj4+ICtpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0KPj4+PiArew0KPj4+ PiArICBzZXR1cCAoMTAsMTApOw0KPj4+PiArICB0ZXN0ICgnQScsICdCJyk7DQo+Pj4+ICsgIGlm IChhcnJheV9hbm5vdGF0ZWQtPmNbMl0gIT0gJ0EnKSBhYm9ydCAoKTsNCj4+Pj4gKyAgaWYgKGFy cmF5X25lc3RlZF9hbm5vdGF0ZWQtPmNbM10gIT0gJ0InKSBhYm9ydCAoKTsNCj4+Pj4gKyAgcmV0 dXJuIDA7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiQUNDRVNTX1dJVEhfU0laRSIgOCAib3JpZ2luYWwiIH0gfSAqLw0KPj4+PiBk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3NhLWFsaWFzLmNjIGIvZ2NjL3RyZWUtc3NhLWFsaWFzLmNj DQo+Pj4+IGluZGV4IGU3YzFjMWFhNjI0My4uOGMwNzBlMTczYmRkIDEwMDY0NA0KPj4+PiAtLS0g YS9nY2MvdHJlZS1zc2EtYWxpYXMuY2MNCj4+Pj4gKysrIGIvZ2NjL3RyZWUtc3NhLWFsaWFzLmNj DQo+Pj4+IEBAIC0yODIzLDYgKzI4MjMsNyBAQCByZWZfbWF5YmVfdXNlZF9ieV9jYWxsX3BfMSAo Z2NhbGwgKmNhbGwsIGFvX3JlZiAqcmVmLCBib29sIHRiYWFfcCkNCj4+Pj4gICAgICAgcmV0dXJu IGZhbHNlOw0KPj4+PiAgICAgIGNhc2UgSUZOX01BU0tfU1RPUkVfTEFORVM6DQo+Pj4+ICAgICAg Y2FzZSBJRk5fTUFTS19MRU5fU1RPUkVfTEFORVM6DQo+Pj4+ICsgICAgICBjYXNlIElGTl9BQ0NF U1NfV0lUSF9TSVpFOg0KPj4+IA0KPj4+IGJlbG93IHlvdSBtYWtlIGl0IG5vdCBzdG9yZSwgc28g Z3JvdXBpbmcgd2l0aCBzdG9yZSBJRk5zIGlzIGEgYml0IG9kZD8NCj4+PiBXaGF0J3Mgd3Jvbmcg d2l0aA0KPj4+IGdvaW5nIHRocm91Z2ggZGVmYXVsdDogZm9yIElGTl9BQ0NFU1NfV0lUSF9TSVpF PyAgRG9lcyAuQUNDRVNTX1dJVEhfU0laRQ0KPj4+IHBlcmZvcm0gYSByZWFkPyAgSG93J3MgdGhh dCByZXByZXNlbnRlZD8NCj4+IFllcywgaXQgcmVhZHMgZnJvbSB0aGUgMm5kIGFyZ3VtZW50IHdo ZW4gdXNlZCBieSBfX2J1aWx0aW5fZHluYW1pY19vYmplY3Rfc2l6ZSwgb3IgYy11YnNhbiwgIGV0 Yy4NCj4+IA0KPj4gLkFDQ0VTU19XSVRIX1NJWkUgKFJFRl9UT19PQkosIFJFRl9UT19TSVpFLCBD TEFTU19PRl9TSVpFLCBTSVpFX09GX1NJWkUsIEFDQ0VTU19NT0RFLCBJTkRFWCkNCj4+IA0KPj4g VGhlIDJuZCBhcmd1bWVudCBpcyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBzaXplIG9mIHRoZSBvYmpl Y3QgKHdoaWNoIGlzIHRoZSBmaWVsZCB0aGF0IGhvbGRzIHRoZSDigJxjb3VudGVkLWJ54oCdIHZh bHVlIGluIHRoZSBzdHJ1Y3R1cmUpLg0KPj4gV2hlbiBfX2J1aWx0aW5fZHluYW1pY19vYmplY3Rf c2l6ZSBxdWVyaWVzIHRoZSBzaXplIG9mIHRoZSBvYmplY3QsIEdDQyB3aWxsIGdlbmVyYXRlIGEg TUVNX1JFRiB0byB0aGUgMm5kIGFyZ3VtZW50IHRvIGdldCB0aGUgc2l6ZSBvZiB0aGUgb2JqZWN0 LCBwbGVhc2Ugc2VlIHRoZSByb3V0aW5lIOKAnGFjY2Vzc193aXRoX3NpemVfb2JqZWN0X3NpemXi gJ0gaW4gZ2NjL3RyZWUtb2JqZWN0LXNpemUuY2MgPGh0dHA6Ly90cmVlLW9iamVjdC1zaXplLmNj Lz4uDQo+IA0KPiBCdXQgInByb2Nlc3NfYXJncyIgZG9lc24ndCBjb25zaWRlciB0aGF0IC0gdGhh dCBvbmx5IGNvbnNpZGVycyBhZ2dyZWdhdGUgdXNlcy4NCj4gWW91ciBjaGFuZ2UgaGFuZGxlcyB0 aGUgY2FsbCBsaWtlIGlmIGl0IHdlcmUgQ09OU1QuICBUaGUgZGVmYXVsdCBoYW5kbGluZyBzaG91 bGQNCj4gYmUgZmluZSBoZXJlLCB5b3Ugc2hvdWxkbid0IG5lZWQgdG8gaGFuZGxlIC5BQ0NFU1Nf V0lUSF9TSVpFIGluDQo+IHRyZWUtc3NhLWFsaWFzLmNjIGF0IGFsbA0KPiAoaWYgeW91IG1ha2Ug aXQgUFVSRSkuDQoNClllcywgbWFya2luZyBpdCBhcyBQVVJFIHdpbGwgbWFrZSB0aGUgaW1wbGVt ZW50YXRpb24gc2ltcGxlci4gDQoNClRoYW5rcyBhIGxvdC4NCg0KV2lsbCB1cGRhdGUgdGhpcy4N Cg0KUWluZw0KDQo+IA0KPj4+IA0KPj4+PiAgICAgICBnb3RvIHByb2Nlc3NfYQ0KPj4+PiAgICAg IGNhc2UgSUZOX01BU0tfTE9BRDoNCj4+Pj4gICAgICBjYXNlIElGTl9MRU5fTE9BRDoNCj4+Pj4g QEAgLTMwNzMsNiArMzA3NCw3IEBAIGNhbGxfbWF5X2Nsb2JiZXJfcmVmX3BfMSAoZ2NhbGwgKmNh bGwsIGFvX3JlZiAqcmVmLCBib29sIHRiYWFfcCkNCj4+Pj4gICAgICBjYXNlIElGTl9VQlNBTl9P QkpFQ1RfU0laRToNCj4+Pj4gICAgICBjYXNlIElGTl9VQlNBTl9QVFI6DQo+Pj4+ICAgICAgY2Fz ZSBJRk5fQVNBTl9DSEVDSzoNCj4+Pj4gKyAgICAgIGNhc2UgSUZOX0FDQ0VTU19XSVRIX1NJWkU6 DQo+Pj4gDQo+Pj4gaXQgZG9lc24ndCBzdG9yZS4gIFNvIGFib3ZlIGl0IHNob3VsZCBiZSBFQ0Zf UFVSRSBhdCBsZWFzdC4NCj4+IA0KPj4gQXMgc3VtbWFyaXplZCBpbiBodHRwczovL2djYy5nbnUu b3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLU5vdmVtYmVyLzYzNTE1OC5odG1sDQo+PiAN Cj4+IEFDQ0VTU19XSVRIX1NJWkUgaXMgbm90IFBVUkUgYW55bW9yZSwgYnV0IGl04oCZcyBvbmx5 IHJlYWQgZnJvbSB0aGUgMm5kIGFyZ3VtZW50LCBhbmQgbm90IG1vZGlmeSBhbnl0aGluZyBpbiB0 aGUgcG9pbnRlZCBvYmplY3RzLg0KPiANCj4gSSB0aGluayBpdCBpcy4NCj4gDQo+PiBUaGVyZWZv cmUsIEkgdGhpbmsgdGhlIGNoYW5nZSBpbiB0aGUgYWJvdmUgaXMgY29ycmVjdC4NCj4+IA0KPj4g aS5lOg0KPj4gICAgICAgIC8qIFRyZWF0IHRoZXNlIGludGVybmFsIGNhbGxzIGxpa2UgRUNGX1BV UkUgZm9yIGFsaWFzaW5nLA0KPj4gICAgICAgICAgIHRoZXkgZG9uJ3Qgd3JpdGUgdG8gYW55IG1l bW9yeSB0aGUgcHJvZ3JhbSBzaG91bGQgY2FyZSBhYm91dC4NCj4+ICAgICAgICAgICBUaGV5IGhh dmUgaW1wb3J0YW50IG90aGVyIHNpZGUtZWZmZWN0cywgYW5kIHJlYWQgbWVtb3J5LA0KPj4gICAg ICAgICAgIHNvIGNhbid0IGJlIEVDRl9OT1ZPUFMuICAqLw0KPj4gICAgICBjYXNlIElGTl9VQlNB Tl9OVUxMOg0KPj4gICAgICBjYXNlIElGTl9VQlNBTl9CT1VORFM6DQo+PiAgICAgIGNhc2UgSUZO X1VCU0FOX1ZQVFI6DQo+PiAgICAgIGNhc2UgSUZOX1VCU0FOX09CSkVDVF9TSVpFOg0KPj4gICAg ICBjYXNlIElGTl9VQlNBTl9QVFI6DQo+PiAgICAgIGNhc2UgSUZOX0FTQU5fQ0hFQ0s6DQo+PiAg ICAgIGNhc2UgSUZOX0FDQ0VTU19XSVRIX1NJWkU6DQo+PiAgICAgICAgcmV0dXJuIGZhbHNlOw0K Pj4gDQo+PiBXaGF0IGRvIHlvdSB0aGluaz8NCj4+IA0KPj4gDQo+Pj4+ICAgICAgIHJldHVybiBm YWxzZTsNCj4+Pj4gICAgICBjYXNlIElGTl9NQVNLX1NUT1JFOg0KPj4+PiAgICAgIGNhc2UgSUZO X0xFTl9TVE9SRToNCj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXNzYS1kY2UuY2MgYi9nY2Mv dHJlZS1zc2EtZGNlLmNjDQo+Pj4+IGluZGV4IDYzNmM0NzFkNGM4OS4uYTU0ZmIxYjc1NGRkIDEw MDY0NA0KPj4+PiAtLS0gYS9nY2MvdHJlZS1zc2EtZGNlLmNjDQo+Pj4+ICsrKyBiL2djYy90cmVl LXNzYS1kY2UuY2MNCj4+Pj4gQEAgLTE0NTksOCArMTQ1OSw4IEBAIGVsaW1pbmF0ZV91bm5lY2Vz c2FyeV9zdG10cyAoYm9vbCBhZ2dyZXNzaXZlKQ0KPj4+PiAgICAgICAgICAgICAgICAgdXBkYXRl X3N0bXQgKHN0bXQpOw0KPj4+PiAgICAgICAgICAgICAgICAgcmVsZWFzZV9zc2FfbmFtZSAobmFt ZSk7DQo+Pj4+IA0KPj4+PiAtICAgICAgICAgICAgICAgICAvKiBHT01QX1NJTURfTEFORSAodW5s ZXNzIHRocmVlIGFyZ3VtZW50KSBvciBBU0FOX1BPSVNPTg0KPj4+PiAtICAgICAgICAgICAgICAg ICAgICB3aXRob3V0IGxocyBpcyBub3QgbmVlZGVkLiAgKi8NCj4+Pj4gKyAgICAgICAgICAgICAg ICAgLyogR09NUF9TSU1EX0xBTkUgKHVubGVzcyB0aHJlZSBhcmd1bWVudCksIEFTQU5fUE9JU09O DQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIG9yIC5BQ0NFU1NfV0lUSF9TSVpFIHdpdGhvdXQg bGhzIGlzIG5vdCBuZWVkZWQuICAqLw0KPj4+PiAgICAgICAgICAgICAgICAgaWYgKGdpbXBsZV9j YWxsX2ludGVybmFsX3AgKHN0bXQpKQ0KPj4+PiAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGdp bXBsZV9jYWxsX2ludGVybmFsX2ZuIChzdG10KSkNCj4+Pj4gICAgICAgICAgICAgICAgICAgICB7 DQo+Pj4+IEBAIC0xNDcwLDYgKzE0NzAsNyBAQCBlbGltaW5hdGVfdW5uZWNlc3Nhcnlfc3RtdHMg KGJvb2wgYWdncmVzc2l2ZSkNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAvKiBGQUxMVEhSVSAqLw0KPj4+PiAgICAgICAgICAg ICAgICAgICAgIGNhc2UgSUZOX0FTQU5fUE9JU09OOg0KPj4+PiArICAgICAgICAgICAgICAgICAg ICAgY2FzZSBJRk5fQUNDRVNTX1dJVEhfU0laRToNCj4+PiANCj4+PiB0aGlzIHNob3VsZG4ndCBi ZSBuZWNlc3NhcnkgaWYgeW91IG1ha2UgLkFDQ0VTU19XSVRIX1NJWkUgRUNGX1BVUkUNCj4+PiAo b3IgRUNGX0NPTlNUIGlmIGl0IGFsc28gZG9lc24ndCByZWFkIGZyb20gbWVtb3J5KQ0KPj4gQXMg ZXhwbGFpbmVkIGluIHRoZSBhYm92ZSwgLkFDQ0VTU19XSVRIX1NJWkUgaXMgbm90IFBVUkUuDQo+ Pj4gDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfZGVhZF9zdG10ICgmZ3NpLCBi YiwgdG9fcmVtb3ZlX2VkZ2VzKTsNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K Pj4+PiAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQo+Pj4+IGRpZmYgLS1naXQgYS9nY2Mv dHJlZS5jYyBiL2djYy90cmVlLmNjDQo+Pj4+IGluZGV4IDNkZmY4YzUxMDgzMi4uNWZkYjQyNWY2 MTJhIDEwMDY0NA0KPj4+PiAtLS0gYS9nY2MvdHJlZS5jYw0KPj4+PiArKysgYi9nY2MvdHJlZS5j Yw0KPj4+PiBAQCAtNDA2OCw3ICs0MDY4LDggQEAgcHJvY2Vzc19jYWxsX29wZXJhbmRzICh0cmVl IHQpDQo+Pj4+ICBpbnQgaSA9IGNhbGxfZXhwcl9mbGFncyAodCk7DQo+Pj4+IA0KPj4+PiAgLyog Q2FsbHMgaGF2ZSBzaWRlLWVmZmVjdHMsIGV4Y2VwdCB0aG9zZSB0byBjb25zdCBvciBwdXJlIGZ1 bmN0aW9ucy4gICovDQo+Pj4+IC0gIGlmICgoaSAmIEVDRl9MT09QSU5HX0NPTlNUX09SX1BVUkUp IHx8ICEoaSAmIChFQ0ZfQ09OU1QgfCBFQ0ZfUFVSRSkpKQ0KPj4+PiArICBpZiAoKGkgJiBFQ0Zf TE9PUElOR19DT05TVF9PUl9QVVJFKQ0KPj4+PiArICAgICAgfHwgKCEoaSAmIChFQ0ZfQ09OU1Qg fCBFQ0ZfUFVSRSkpICYmICFpc19hY2Nlc3Nfd2l0aF9zaXplX3AgKHQpKSkNCj4+PiANCj4+PiBF cnIsIHNvIHdoeSBub3QgbWFrZSBpdCBFQ0ZfUFVSRSBhdCBsZWFzdD8NCj4+IFNhbWUgYWJvdmUu DQo+Pj4gDQo+Pj4+ICAgIHNpZGVfZWZmZWN0cyA9IHRydWU7DQo+Pj4+ICAvKiBQcm9wYWdhdGUg VFJFRV9SRUFET05MWSBvZiBhcmd1bWVudHMgZm9yIGNvbnN0IGZ1bmN0aW9ucy4gICovDQo+Pj4+ ICBpZiAoaSAmIEVDRl9DT05TVCkNCj4+Pj4gQEAgLTEzMzYyLDYgKzEzMzYzLDI4IEBAIGNvbXBv bmVudF9yZWZfc2l6ZSAodHJlZSByZWYsIHNwZWNpYWxfYXJyYXlfbWVtYmVyICpzYW0gLyogPSBO VUxMICovKQ0KPj4+PiAgICAgICAgID8gTlVMTF9UUkVFIDogc2l6ZV96ZXJvX25vZGUpOw0KPj4+ PiB9DQo+Pj4+IA0KPj4+PiArLyogUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG5vZGUgQ0FMTCBp cyBhIGNhbGwgdG8gYSAuQUNDRVNTX1dJVEhfU0laRQ0KPj4+PiArICAgZnVuY3Rpb24uICAqLw0K Pj4+PiArYm9vbA0KPj4+PiAraXNfYWNjZXNzX3dpdGhfc2l6ZV9wIChjb25zdF90cmVlIGNhbGwp DQo+Pj4+ICt7DQo+Pj4+ICsgIGlmIChUUkVFX0NPREUgKGNhbGwpICE9IENBTExfRVhQUikNCj4+ Pj4gKyAgICByZXR1cm4gZmFsc2U7DQo+Pj4+ICsgIGlmIChDQUxMX0VYUFJfSUZOIChjYWxsKSA9 PSBJRk5fQUNDRVNTX1dJVEhfU0laRSkNCj4+Pj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4+Pj4gKyAg cmV0dXJuIGZhbHNlOw0KPj4+PiArfQ0KPj4+PiArDQo+Pj4+ICsvKiBHZXQgdGhlIGNvcnJlc3Bv bmRpbmcgcmVmZXJlbmNlIGZyb20gdGhlIGNhbGwgdG8gYSAuQUNDRVNTX1dJVEhfU0laRS4NCj4+ Pj4gKyAqIGkuZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhpcyBjYWxsLiAgUmV0dXJuIE5VTExf VFJFRSBvdGhlcndpc2UuICAqLw0KPj4+PiArdHJlZQ0KPj4+PiArZ2V0X3JlZl9mcm9tX2FjY2Vz c193aXRoX3NpemUgKHRyZWUgY2FsbCkNCj4+Pj4gK3sNCj4+Pj4gKyAgaWYgKGlzX2FjY2Vzc193 aXRoX3NpemVfcCAoY2FsbCkpDQo+Pj4+ICsgICAgcmV0dXJuICBDQUxMX0VYUFJfQVJHIChjYWxs LCAwKTsNCj4+Pj4gKyAgcmV0dXJuIE5VTExfVFJFRTsNCj4+Pj4gK30NCj4+Pj4gKw0KPj4+PiAv KiBSZXR1cm4gdGhlIG1hY2hpbmUgbW9kZSBvZiBULiAgRm9yIHZlY3RvcnMsIHJldHVybnMgdGhl IG1vZGUgb2YgdGhlDQo+Pj4+ICAgaW5uZXIgdHlwZS4gIFRoZSBtYWluIHVzZSBjYXNlIGlzIHRv IGZlZWQgdGhlIHJlc3VsdCB0byBIT05PUl9OQU5TLA0KPj4+PiAgIGF2b2lkaW5nIHRoZSBCTEtt b2RlIHRoYXQgYSBkaXJlY3QgVFlQRV9NT0RFIChUKSBtaWdodCByZXR1cm4uICAqLw0KPj4+PiBk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUuaCBiL2djYy90cmVlLmgNCj4+Pj4gaW5kZXggOTcyYTA2N2Ex ZjdhLi5mYmFlZjNlNWZiNWMgMTAwNjQ0DQo+Pj4+IC0tLSBhL2djYy90cmVlLmgNCj4+Pj4gKysr IGIvZ2NjL3RyZWUuaA0KPj4+PiBAQCAtNTc2MCw2ICs1NzYwLDE0IEBAIGV4dGVybiBzcGVjaWFs X2FycmF5X21lbWJlciBjb21wb25lbnRfcmVmX3NhbV90eXBlICh0cmVlKTsNCj4+Pj4gICBjYW5u b3QgYmUgZGV0ZXJtaW5lZC4gICovDQo+Pj4+IGV4dGVybiB0cmVlIGNvbXBvbmVudF9yZWZfc2l6 ZSAodHJlZSwgc3BlY2lhbF9hcnJheV9tZW1iZXIgKiA9IE5VTEwpOw0KPj4+PiANCj4+Pj4gKy8q IFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBub2RlIGlzIGEgY2FsbCB0byBhIC5BQ0NFU1NfV0lU SF9TSVpFDQo+Pj4+ICsgICBmdW5jdGlvbi4gICovDQo+Pj4+ICtleHRlcm4gYm9vbCBpc19hY2Nl c3Nfd2l0aF9zaXplX3AgKGNvbnN0X3RyZWUpOw0KPj4+PiArDQo+Pj4+ICsvKiBHZXQgdGhlIGNv cnJlc3BvbmRpbmcgcmVmZXJlbmNlIGZyb20gdGhlIGNhbGwgdG8gYSAuQUNDRVNTX1dJVEhfU0la RSwNCj4+Pj4gKyAqIGkuZS4gdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoaXMgY2FsbC4gIFJldHVy biBOVUxMX1RSRUUgb3RoZXJ3aXNlLiAgKi8NCj4+Pj4gK2V4dGVybiB0cmVlIGdldF9yZWZfZnJv bV9hY2Nlc3Nfd2l0aF9zaXplICh0cmVlKTsNCj4+Pj4gKw0KPj4+PiBleHRlcm4gaW50IHRyZWVf bWFwX2Jhc2VfZXEgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsNCj4+Pj4gZXh0ZXJuIHVu c2lnbmVkIGludCB0cmVlX21hcF9iYXNlX2hhc2ggKGNvbnN0IHZvaWQgKik7DQo+Pj4+IGV4dGVy biBib29sIHRyZWVfbWFwX2Jhc2VfbWFya2VkX3AgKGNvbnN0IHZvaWQgKik7DQo+Pj4+IGRpZmYg LS1naXQgYS9nY2MvdmFyYXNtLmNjIGIvZ2NjL3ZhcmFzbS5jYw0KPj4+PiBpbmRleCBmYTE3ZWZm NTUxZTguLmQ3NWIyMzY2ODkyNSAxMDA2NDQNCj4+Pj4gLS0tIGEvZ2NjL3ZhcmFzbS5jYw0KPj4+ PiArKysgYi9nY2MvdmFyYXNtLmNjDQo+Pj4+IEBAIC01MDgyLDYgKzUwODIsMTEgQEAgaW5pdGlh bGl6ZXJfY29uc3RhbnRfdmFsaWRfcF8xICh0cmVlIHZhbHVlLCB0cmVlIGVuZHR5cGUsIHRyZWUg KmNhY2hlKQ0KPj4+PiAgICAgICB9DQo+Pj4+ICAgICAgcmV0dXJuIHJldDsNCj4+Pj4gDQo+Pj4+ ICsgICAgY2FzZSBDQUxMX0VYUFI6DQo+Pj4+ICsgICAgICAvKiBGb3IgYSBjYWxsIHRvIC5BQ0NF U1NfV0lUSF9TSVpFLCBjaGVjayB0aGUgZmlyc3QgYXJndW1lbnQuICAqLw0KPj4+PiArICAgICAg aWYgKHRyZWUgcmVmID0gZ2V0X3JlZl9mcm9tX2FjY2Vzc193aXRoX3NpemUgKHZhbHVlKSkNCj4+ Pj4gKyAgICAgICByZXR1cm4gaW5pdGlhbGl6ZXJfY29uc3RhbnRfdmFsaWRfcF8xIChyZWYsIGVu ZHR5cGUsIGNhY2hlKTsNCj4+PiANCj4+PiBJIHRoaW5rIHdlIHNob3VsZCBmb2xkL3N0cmlwIC5B Q0NFU1NfV0lUSF9TSVpFIGZyb20gaW5pdGlhbGl6ZXJzDQo+Pj4gaW5zdGVhZC4gIFRoYXQgd291 bGQgYmUNCj4+PiB0aGUgZnJvbnRlbmRzIGpvYiBJIGd1ZXNzLCBtb3N0IHByb2JhYmx5IG5vdCBl dmVuIGdlbmVyYXRlIHRob3NlIGluDQo+Pj4gdGhlIGZpcnN0IHBsYWNlPw0KPj4gDQo+PiBTb3Vu ZHMgcmVhc29uYWJsZSwgSSB3aWxsIHNlZSBob3cgdG8gZG8gdGhpcyBpbiBDIEZFLg0KPj4gSm9z ZXBoLCBkbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlvbiB3aGVyZSBpbiBDIEZFIEkgc2hvdWxkIGRv IHRoaXMgZm9sZGluZz8NCj4+IA0KPj4gdGhhbmtzLg0KPj4gDQo+PiBRaW5nDQo+Pj4gDQo+Pj4+ ICsgICAgICAvKiBGQUxMVEhST1VHSC4gICovDQo+Pj4+ICAgIGRlZmF1bHQ6DQo+Pj4+ICAgICAg YnJlYWs7DQo+Pj4+ICAgIH0NCj4+Pj4gQEAgLTUyNzYsNiArNTI4MSwxMSBAQCBvdXRwdXRfY29u c3RhbnQgKHRyZWUgZXhwLCB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHNpemUsIHVuc2lnbmVkIGlu dCBhbGlnbiwNCj4+Pj4gICAgICAgZXhwID0gVFJFRV9PUEVSQU5EIChleHAsIDApOw0KPj4+PiAg ICB9DQo+Pj4+IA0KPj4+PiArICAvKiBGb3IgYSBjYWxsIHRvIC5BQ0NFU1NfV0lUSF9TSVpFLCBj aGVjayB0aGUgZmlyc3QgYXJndW1lbnQuICAqLw0KPj4+PiArICBpZiAoVFJFRV9DT0RFIChleHAp ID09IENBTExfRVhQUikNCj4+Pj4gKyAgICBpZiAodHJlZSByZWYgPSBnZXRfcmVmX2Zyb21fYWNj ZXNzX3dpdGhfc2l6ZSAoZXhwKSkNCj4+Pj4gKyAgICAgIGV4cCA9IHJlZjsNCj4+Pj4gKw0KPj4+ PiAgY29kZSA9IFRSRUVfQ09ERSAoVFJFRV9UWVBFIChleHApKTsNCj4+Pj4gIHRoaXNzaXplID0g aW50X3NpemVfaW5fYnl0ZXMgKFRSRUVfVFlQRSAoZXhwKSk7DQo+Pj4+IA0KPj4+PiAtLQ0KPj4+ PiAyLjMxLjENCg0KDQo=