From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 7182D38582B3 for ; Mon, 29 Jan 2024 16:00:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7182D38582B3 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 7182D38582B3 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706544028; cv=pass; b=MbhdO6QjSmqVwMaV7rmGnzMNsPOSFs2KUozxE17GT79AWj5YJGg7of6ctTCvCDuc1AFJVNRn+OqhWj2SVhdqy0EVZPa6nWTlrCT65WVV772tuNx6lpTN4c5pvTu2d6pk6mC8kAWD3XEqbhiOcpg81yw56XirGm2QIHuIROaLCOY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706544028; c=relaxed/simple; bh=nOG+blnxxr4T/j5Y/vWy3vsNiQ1dl9to+WlH/NbpNTA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=oekpYo6/RbCXCpsn6JBeHMQ0tPLknAJ65rgIyOb/6KsDt4DEVTmSjsngL42SJVSz86hWuve4lIgTCrzPGC5on9Y6TfMxbu9iCV3Qt8tmVgCehg7UD06H36/rGr+OorxiRhX8w3xZoEHxl7EGgZ2kpVZslfCJ1W4JtiWQkwScPD8= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40T9iR4n015927; Mon, 29 Jan 2024 16:00:24 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=nOG+blnxxr4T/j5Y/vWy3vsNiQ1dl9to+WlH/NbpNTA=; b=Ac5xOvCBB7cwCXCc9KvxV6sT/1OTJzIBbn8dBdCP1GtQoGlJL50FOyA8EJVgr5xIxtTL KllMn0qJ3qw08ANO7xD8mmr/2NVF5Shxmhg8Ut47XQxS48QYo7vkxc3afnIF5pvdNEtM YyysgMBMAOLRza9twClWcH9NHJ+RynchCHialg1r6ZlCt5lAgkVQnJ6iS4XR0d0xfsDW bCsqdbCfySGz3EiLKZuk2gNWc0dqEkppMPd0De+QFwtyaMEkBZ0gH8R15D8Lq5Ah5w9P PiYenIOxm4D4tfV/+W1pfHomMFOiDMa9xOZ0y3XI1qhsRaNPx2C7ztQsV8e42ROxTMZ4 dg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vvtcuv7g6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 16:00:23 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40TEXfph035241; Mon, 29 Jan 2024 16:00:22 GMT Received: from nam04-bn8-obe.outbound.protection.outlook.com (mail-bn8nam04lp2040.outbound.protection.outlook.com [104.47.74.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3vvr9bu8cc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 16:00:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TfIWHGamzbToPU5Yo2rPrDHUpdhcetAAjtdQfHa6TzsmswVJ0zyx6QXMKh7ci8eZJlDkr0Qw8t6QJ2WPI7ishvkHzcGDMiNfOLgVOMeB17eHAeunaqBfapB46j2n45fHb/vPkxgaihhOw2vg+lBHEQjeS6JctFKdxWFrnpyGDnMLiQzchBnXBlZawobEsJdDhcooWr3auqlj1d0MuqT35IhZviSJxsRfhJBfksOHYFx/KE+7yaD2R6vcxcTvAtrESvgeJmGwVf0BVz9+0IQm5XWt0Hvw848vrYEgwPDEQbSHJLuSxqvDjm5aiKR7w2/FqVkxtpc28gKKwqkh36FmHA== 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=nOG+blnxxr4T/j5Y/vWy3vsNiQ1dl9to+WlH/NbpNTA=; b=LqRvI6bdjtd9a0m4RaefLAyOojRHlTzHSiPYKN5JVq/z7mC5vb4mv5rCRCpspk8eI061eShtjjKMoQUmWW7M/SkmaE3ujQ1HonDV7xzygH1pRpaa/Nm2PN8CipeYzxDyH0eyb7ZtlTJxCzC79evG/IA0auEzPxKCfx7EzvuMplQ5Xe8bPvV5hu0GjRf2eWQxQVzgI3K/oyl3pyKcykEt3ZpQxRMFIDLfSNstikydLyQQWWvy50ythVQSHbLwSpfklPZ1JwbURNVmmBTRxm7UPYQv5H0z1tdrhUJJhyV1t2I8AV9t9GUBKQOWMvsYlMeI5rKWgzF7pdsG73AlMgz61Q== 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=nOG+blnxxr4T/j5Y/vWy3vsNiQ1dl9to+WlH/NbpNTA=; b=o0sfrkAq/Ab52m5hOL/cPFvUiHDAfyBjxPkKJQeESFSphW+EDyuJjy6jeJBcjsA0Do4XkEOT9/DOq0uHlo0tKY0J1rRU6BtE16aKw1SzN+Iimw/y4F/W3lweBf8SzGnRaEQqMOfXg2Uc9ORTwi788+K+p5U+tpqQ4Yf5LWc42FE= Received: from CH3PR10MB7957.namprd10.prod.outlook.com (2603:10b6:610:1bf::19) by CH3PR10MB7629.namprd10.prod.outlook.com (2603:10b6:610:167::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Mon, 29 Jan 2024 16:00:20 +0000 Received: from CH3PR10MB7957.namprd10.prod.outlook.com ([fe80::6234:e7a1:b517:c44]) by CH3PR10MB7957.namprd10.prod.outlook.com ([fe80::6234:e7a1:b517:c44%6]) with mapi id 15.20.7228.029; Mon, 29 Jan 2024 16:00:20 +0000 From: Qing Zhao To: Kees Cook , Martin Uecker , "josmyers@redhat.com" , Richard Biener CC: "jakub@redhat.com" , "siddhesh@gotplt.org" , "isanbard@gmail.com" , "gcc-patches@gcc.gnu.org" Subject: Re: [PATCH v4 0/4]New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Topic: [PATCH v4 0/4]New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Index: AQHaTlx75DG1HCeLGUCpchPuevMS7bDptGoAgAFEIwCABgMxgA== Date: Mon, 29 Jan 2024 16:00:20 +0000 Message-ID: References: <20240124002955.3387096-1-qing.zhao@oracle.com> <202401241624.4DC3D829@keescook> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3731.700.6) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR10MB7957:EE_|CH3PR10MB7629:EE_ x-ms-office365-filtering-correlation-id: dde79ccd-f740-43c4-fc1c-08dc20e36519 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 66nBVLZ41CAme3ECW6LKZLrrUplWMHo7HagiDisANk56OQpRM75u40Rcr8vMBy0sP9nq1rG6gx5u+fb5SlTLuyELKihgj8bCh/zZ7zdkgUPtmzGjxC+OF9Ga7hgn53Pkde42tiMiW8IwU/gTcR4wu8QrHRgDMVpZfhrqWlBoGBC7ZE6Z4jrPv1eDTfdxReEnmtJmXCkCTgpsyytzCYA+9ejKhpNNu6sXok6ey6+ugsk1bERkfKOlc3z5xs96+QIbTDFpF6yFoXzwEJ60k4jiNX9kpiKMiPjqumo8TrnDs962TVQPZjlFxBKvH4/+0FmjMQncYspnY0Cn5aXFS95dnYKCcMTiVTzdFSHSdHLnEJCbKGIazIxy68dWaKwzG7f2XKLi81p7cboL2ZqSU47PguBUScTGYYwy6rp2YWc4/YzQ27lZimMppwMs1B6zczgiqvTdeuZgrGC7RFK6mjBDMGztcR7k0Aq4rFlWwaXgX9WXNIwYtU4Pvpop+74No/jpkow9jhtXoy/gJR5P0FlL5tN19J6zSBoHX3Bd9rGaeSWeHRW3j0Aut7GM0kwuJTEKPZnt5Tn+MyI/6E/OZQqLXrGKKRcFfzVVibfTR1ps7Jp64tApQX2QFiVwEypCLqNOlhp9dabwX5m9R8boVqBvKJc+s2pF52FHjRR+mv/vRWZbDqd0FTSdGRVQu+BiHoAx x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7957.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(346002)(376002)(39860400002)(396003)(230922051799003)(230273577357003)(230173577357003)(64100799003)(186009)(451199024)(1800799012)(66899024)(83380400001)(36756003)(33656002)(38070700009)(86362001)(8936002)(4326008)(44832011)(8676002)(5660300002)(71200400001)(2616005)(316002)(122000001)(38100700002)(76116006)(54906003)(66946007)(66556008)(64756008)(110136005)(6506007)(66446008)(53546011)(66476007)(41300700001)(2906002)(6512007)(6486002)(478600001)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aCtHRm1NU0hmWGhKaWFpNy9hSFZZaXM3dWE3bkdMNHNBelhlVEVBaExEcEl5?= =?utf-8?B?a1BSeHl2cnN6RnA4bStkelhkR0NqMFJXMDQwaGwvZVZCVlUxNlVHTVVIWGZx?= =?utf-8?B?MHc2WUdNZTRBWkJEZ29PSmVXVUxwaXp5L1I1Q3dSNklRaGxEczAxdmpua21T?= =?utf-8?B?RllLVTRoViszb3FBTUlHK1l0Tm10Rys1cjZQTzlwUlhaVlRjY040YXVnVThG?= =?utf-8?B?VWhKb09UNE1ubWVWVENydVRWSWVlUnpCSnZNdllvSkVjbWd0Q2h2V21FOHRJ?= =?utf-8?B?RjhEb3FLSG9uRThQMG4wcUsxSjAwTEd0MXRMYzVsY0JaK1lUNVU4MmVqOHVn?= =?utf-8?B?bk8wcDFSMGlVYVlGdGJSTVgzN1cyd00zdWR2VTRhVE5qTjhMbEkwQ2JQMTFV?= =?utf-8?B?ODBubGxBQW1aNHl5UnF4TDZwaGNKeVFjKytiRFZCcFc1amVmUXBpVWtPZ2x2?= =?utf-8?B?MWpBZDJZMTU3VUNjVWRUU2k5ZUN2L1AyZjd2QWloSjN6Q0hiQ1hRbHovMDNI?= =?utf-8?B?TDFRK1RrakRPZ1hkckZ1M0tldGJ2dVRJRTlrY01BSDlWNldTZEFSM3JoVTNZ?= =?utf-8?B?Mk8xeUVMUDFXR2RZbkhuZkYrbEx6cWY4UjhicUpzdE1qN1pVc1owS1NwZFV2?= =?utf-8?B?L1pKbnRadDVyV2FPbkhXeVJmbytDS3UwVy9MVm5Wa0txSnNFKzZzY0NNeHdt?= =?utf-8?B?cHltMGRnTW1TUUw1c1ZpZGxyRFVsMk50NEpPZ2RTQWFEdzY4eXBmd1lXMWtt?= =?utf-8?B?Y28zdlp6d2poM0hJWW1WS0M1cG93VGxrdVpmekpwd1E2Z0hMR2YrcjA4NXVY?= =?utf-8?B?ZXlWVzF3allrY0lnWFFkV3pqTW5xaFMvM3RFUkNBbm1hbmM1Ty9pNW9mWHhz?= =?utf-8?B?VWp0VVZ5aFdlSUdkY3NXaFRFM3FFN0pkaW8rT1k5UDYzSTBsWHdLMkwzbTVE?= =?utf-8?B?eENJakNoc2J5ZUczcHk2QXVLNFMyUkFGZWFnUnphKzc0R2J3N2hadEpneDhw?= =?utf-8?B?aVF5WXkzM2VwSmtvNjMyaGpKcEdtVE9mcExtNU1vMklQMVhYNFVyWXVCTjBs?= =?utf-8?B?OW1OQ3NOQU9EQnNhV0xsa1pvNUZvbkNjSlhYbWxYSy8weEdDd1VlSmQ4ZkJ2?= =?utf-8?B?amdVR05LbXdjVXFxMGFpaWoyWCtqanlRRE1kb2FQaUZVU0FKcWY4ZDUvcisr?= =?utf-8?B?QUY1amx1RndLMWlDN00rM3ljM2R5V0VJUlA1dEF1TVl3KytNbFB0d01oNkdX?= =?utf-8?B?V0NDM3pHNHJXSUc0bVdFTTUrL0hjMlNwNFJIeXVCUVp4eGlWNWRKbmVnN2RL?= =?utf-8?B?Y0xwS2JvTzV1TjJjNGNTTjBpb09GQmdEWUFub28ydUFQNG0yUkkzallZalFs?= =?utf-8?B?am81TDR3RGJhdnUrKzFMais3UFZHb2w5YzBGbzcwKzIrNG5ha1pmeVBKVXhi?= =?utf-8?B?ZDk4VzBuSG82YzNmN0RFL0Y1ZVVRL0h2RXQ3SXVpT0haQTRpeUU2S1VTL0Jn?= =?utf-8?B?RnFNRGNLTi9FK291aXlHdGgzams0V1FZY2dFNVBJMm1zK0JFN0FSN0dZQVVj?= =?utf-8?B?WWdJWWtQRjVvcHNyRkxSTzkvL21ROHB3eks5NHBVdmFDMEVUVmxPNFRId2Jk?= =?utf-8?B?WDhQcCs0bmxkZ1BSMStKL3FKZzJNdVBEdmRibU5MWGhMdDRuL2xRRFRKc3V2?= =?utf-8?B?dk8rR1BFYWdidUNCTHdMSitHL1lQYXRpM3pndGc0V21vYzczTmVBRFlPUWkv?= =?utf-8?B?TVM1bUYwUGFOaElZVm5xR3BnaDkyRk85VjAxZXFaOThONjhLanpxLy9acm5k?= =?utf-8?B?aHRuNE5pQWRmZi9rNzBzT24vby9DY3VuTlhKRG85dWZkWXZKS0pVbHh3aTV4?= =?utf-8?B?eDlzcTFtSTZ3OHREdVpCOHB1SGxuR0EzYWFGT0U1S0dGL1k2VnZTM2Rvbzgz?= =?utf-8?B?emVIQVk3VkRPZzRpY2YrSTRDcVpUN0p5ZVk0QmtkdlVPYUVtNUQ1SGZmcFNn?= =?utf-8?B?YWJVYWxwSFlQUFZ6T3FxeVVEeDlmZWtOK2tydTAzWHcrQk1RRG90emRoSFZU?= =?utf-8?B?YWZkOFNkdXV1MFBGQ25PM2Zpczd0L0FsWW5aODZzTkwrMzZBY3hXazNnY0Uw?= =?utf-8?B?Qmp2ZzRBOWxPUHh0cW5JMmw5NEFxOFI5VklvTlovS1pLV2h4S2NlOWg4eC9D?= =?utf-8?Q?LQ27Sl7UcrXGJHkd/Ds71xs=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2F452F1D181ECA499D9782B6BEB82D4F@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9F2qNKEHQy6Rlu9bsZ4mQLqAUpdDoegh/1N65oSU3CzbgCJhhCzpubRiaaNW6AYeqWvT3qLgr2Yt9U4HO3DV+ApWhR5C3+9yoBJyVvsKa4S91puv78yBO+yLkg9w8JinVco8PGe0K3sA/8iSFE9DfYJV1diFEWAa0/m/w+pSU2+MUCr/2rSCg4Dn9E3FOUxoFzIff4qJbVylPR0KM+M60WYhW9ErOYapYbJFFXwbm1L1EBYjUZXl8x7avi6zPghdMSQeKkoNKln6D2MzjwsulwP54RlJpxsAkrHC4T3FnERe/PFj5eGOKsyxhcYzgzRhVQ4APGdy6oiR4Dwxulu+hdACdTq6h45OEfK6rGfoTFItmG/TJGNpYATG8yP7Hs/pawccna+rcrqWAozn1PIGEApABZs8IEmO9hGuHARPAk5F13DF+3BbFoZ4DzHKzBWTuT73qsjhBe/HSbcNRDTqSgkMOBVKDZIV88wck+QgQ2Al31wrV3agBNtOImejxpNdbRr/5voAORb5JyOoN77FBuJLVJKBB8VtDH1g2v/KkoIpl50cVIt1Pw6qkDwpD7p34+KDZy6MCPlCg1CZgeg2gI2R1yCk5l9GpB56VOIHJfU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7957.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dde79ccd-f740-43c4-fc1c-08dc20e36519 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2024 16:00:20.5252 (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: Gxu6zhKz6ktnP55yqUrUrHaT8JwpmKb5UxxGs06n416P5eqoxmBCkTJAFHLJ9RbFnUEKiYS2c6k8XwrjfKAR/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7629 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-01-29_10,2024-01-29_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401290117 X-Proofpoint-ORIG-GUID: -JTrOlB0kUCZrOAsWv0-Q8NkjveSw3kC X-Proofpoint-GUID: -JTrOlB0kUCZrOAsWv0-Q8NkjveSw3kC X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H5,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: QW4gdXBkYXRlIG9uIHRoZSBrZXJuZWwgYnVpbGRpbmcgd2l0aCBteSB2ZXJzaW9uIDQgcGF0Y2gu DQoNCktlZXMgcmVwb3J0ZWQgdHdvIEZFIGlzc3VlcyB3aXRoIHRoZSBjdXJyZW50IHZlcnNpb24g NCBwYXRjaDoNCg0KMS4gVGhlIG9wZXJhdG9yIOKAnHR5cGVvZuKAnSBjYW5ub3QgcmV0dXJuIGNv cnJlY3QgdHlwZSBmb3IgYS0+YXJyYXk7DQoyLiBUaGUgb3BlcmF0b3Ig4oCcJuKAnSBjYW5ub3Qg cmV0dXJuIGNvcnJlY3QgYWRkcmVzcyBmb3IgYS0+YXJyYXk7DQoNCkkgZml4ZWQgYm90aCBpbiBt eSBsb2NhbCByZXBvc2l0b3J5LiANCg0KV2l0aCB0aGVzZSBhZGRpdGlvbmFsIGZpeC4gIEtlcm5l bCB3aXRoIGNvdW50ZWQtYnkgYW5ub3RhdGlvbiBjYW4gYmUgYnVpbHQgc3VjY2Vzc2Z1bGx5LiAN Cg0KQW5kIHRoZW4sIEtlZXMgcmVwb3J0ZWQgb25lIGJlaGF2aW9yYWwgaXNzdWUgd2l0aCB0aGUg Y3VycmVudCBjb3VudGVkLWJ5Og0KDQpXaGVuIHRoZSBjb3VudGVkLWJ5IHZhbHVlIGlzIGJlbG93 IHplcm8sIG15IGN1cnJlbnQgcGF0Y2ggDQoNCkEuIERpZG7igJl0IHJlcG9ydCBhbnkgd2Fybmlu ZyBmb3IgaXQuDQpCLiBBY2NlcHRlZCB0aGUgbmVnYXRpdmUgdmFsdWUgYXMgYSB3cmFwcGVkIHNp emUuDQoNCmkuZS4gZm9yOg0KDQpzdHJ1Y3QgZm9vIHsNCnNpZ25lZCBjaGFyIHNpemU7DQp1bnNp Z25lZCBjaGFyIGFycmF5W10gX19jb3VudGVkX2J5KHNpemUpOw0KfSAqYTsNCg0KLi4uDQphLT5z aXplID0gLTM7DQpyZXBvcnQoX19idWlsdGluX2R5bmFtaWNfb2JqZWN0X3NpemUocC0+YXJyYXks IDEpKTsNCg0KdGhpcyByZXBvcnRzIDI1MywgcmF0aGVyIHRoYW4gMC4NCg0KQW5kIHRoZSBhcnJh eS1ib3VuZHMgc2FuaXRpemVyIGRvZXNu4oCZdCBjYXRjaCBuZWdhdGl2ZSBpbmRleCBib3VuZHMg bmVpdGhlci4gDQoNCmEtPnNpemUgPSAtMzsNCnJlcG9ydChhLT5hcnJheVsxXSk7IC8vIGRvZXMg bm90IHRyYXANCg0KDQpTbywgbXkgcXVlc3Rpb25zIGFyZToNCg0KIEhvdyBzaG91bGQgd2UgaGFu ZGxlIHRoZSBuZWdhdGl2ZSBjb3VudGVkLWJ5IHZhbHVlPw0KDQogTXkgYXBwcm9hY2ggaXM6DQoN CiAgIEkgdGhpbmsgdGhhdCB0aGlzIGlzIGEgdXNlciBlcnJvciwgdGhlIGNvbXBpbGVyIG5lZWQg dG8gSXNzdWUgd2FybmluZyBkdXJpbmcgcnVudGltZSBhYm91dCB0aGlzIHVzZXIgZXJyb3IuDQoN ClNpbmNlIEkgaGF2ZSBvbmUgcmVtYWluaW5nIHBhdGNoIHRoYXQgaGFzIG5vdCBiZWVuIGZpbmlz aGVkIHlldDoNCg0KNiAgRW1pdCB3YXJuaW5ncyB3aGVuIHRoZSB1c2VyIGJyZWFrcyB0aGUgcmVx dWlybWVudHMgZm9yIHRoZSBuZXcgY291bnRlZF9ieSBhdHRyaWJ1dGUNCiAgY29tcGlsYXRpb24g dGltZTogLVdjb3VudGVkLWJ5DQogIHJ1biB0aW1lOiAtZnNhbml0aXplcj1jb3VudGVkLWJ5DQog ICAgICogVGhlIGluaXRpYWxpemF0aW9uIHRvIHRoZSBzaXplIGZpZWxkIHNob3VsZCBiZSBkb25l IGJlZm9yZSB0aGUgZmlyc3QgcmVmZXJlbmNlIHRvIHRoZSBGQU0gZmllbGQuDQogICAgICogdGhl IGFycmF5IGhhcyBhdCBsZWFzdCAjIG9mIGVsZW1lbnRzIHNwZWNpZmllZCBieSB0aGUgc2l6ZSBm aWVsZCBhbGwgdGhlIHRpbWUgZHVyaW5nIHRoZSBwcm9ncmFtLg0KICAgICAqIHRoZSB2YWx1ZSBv ZiBjb3VudGVkLWJ5IHNob3VsZCBub3QgYmUgbmVnYXRpdmUuDQoNCkxldCBtZSBrbm93IHlvdXIg Y29tbWVudCBhbmQgc3VnZ2VzdGlvbnMuDQoNClRoYW5rcw0KDQpRaW5nDQoNCj4gT24gSmFuIDI1 LCAyMDI0LCBhdCAzOjExIFBNLCBRaW5nIFpoYW8gPHFpbmcuemhhb0BvcmFjbGUuY29tPiB3cm90 ZToNCj4gDQo+IFRoYW5rcyBhIGxvdCBmb3IgdGhlIHRlc3RpbmcuDQo+IA0KPiBZZXMsIEkgY2Fu IHJlcGVhdCB0aGUgaXNzdWUgd2l0aCB0aGUgZm9sbG93aW5nIHNtYWxsIGV4YW1wbGU6DQo+IA0K PiAjaW5jbHVkZSA8c3RkbGliLmg+DQo+ICNpbmNsdWRlIDxzdGRkZWYuaD4NCj4gI2luY2x1ZGUg PHN0ZGlvLmg+DQo+IA0KPiAjZGVmaW5lIE1BWChhLCBiKSAgKChhKSA+IChiKSA/IChhKSA6ICAo YikpDQo+IA0KPiBzdHJ1Y3QgdW50cmFja2VkIHsNCj4gICAgICAgaW50IHNpemU7DQo+ICAgICAg IGludCBhcnJheVtdIF9fYXR0cmlidXRlX18oKGNvdW50ZWRfYnkgKHNpemUpKSk7DQo+IH0gKmE7 DQo+IHN0cnVjdCB1bnRyYWNrZWQgKiBhbGxvY19idWYgKGludCBpbmRleCkNCj4gew0KPiAgc3Ry dWN0IHVudHJhY2tlZCAqcDsNCj4gIHAgPSAoc3RydWN0IHVudHJhY2tlZCAqKSBtYWxsb2MgKE1B WCAoc2l6ZW9mIChzdHJ1Y3QgdW50cmFja2VkKSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG9mZnNldG9mIChzdHJ1Y3QgdW50cmFja2VkLCBhcnJheVswXSkNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKGluZGV4KSAqIHNpemVv ZiAoaW50KSkpKTsNCj4gIHAtPnNpemUgPSBpbmRleDsNCj4gIHJldHVybiBwOw0KPiB9DQo+IA0K PiBpbnQgbWFpbigpDQo+IHsNCj4gIGEgPSBhbGxvY19idWYoMTApOw0KPiAgICAgcHJpbnRmICgi c2FtZV90eXBlIGlzICVkXG4iLA0KPiAgKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlw ZW9mIChhLT5hcnJheSksIHR5cGVvZiAoJihhLT5hcnJheSlbMF0pKSkpOw0KPiAgcmV0dXJuIDA7 DQo+IH0NCj4gDQo+IA0KPiAvaG9tZS9vcGMvSW5zdGFsbC9sYXRlc3QtZC9iaW4vZ2NjIC1PMiBi dGNwLmMNCj4gc2FtZV90eXBlIGlzIDENCj4gDQo+IExvb2tzIGxpa2UgdGhhdCB0aGUg4oCcdHlw ZW9m4oCdIG9wZXJhdG9yIG5lZWQgdG8gYmUgaGFuZGxlZCBzcGVjaWFsbHkgaW4gQyBGRQ0KPiBm b3IgdGhlIG5ldyBpbnRlcm5hbCBmdW5jdGlvbiAuQUNDRVNTX1dJVEhfU0laRS4gDQo+IA0KPiAo SSBoYXZlIHNwZWNpYWxseSBoYW5kbGUgdGhlIG9wZXJhdG9yIOKAnG9mZnNldG9m4oCdIGluIEMg RkUgYWxyZWFkeSkuDQo+IA0KPiBXaWxsIGZpeCB0aGlzIGlzc3VlLg0KPiANCj4gVGhhbmtzLg0K PiANCj4gUWluZw0KPiANCj4+IE9uIEphbiAyNCwgMjAyNCwgYXQgNzo1MSBQTSwgS2VlcyBDb29r IDxrZWVzY29va0BjaHJvbWl1bS5vcmc+IHdyb3RlOg0KPj4gDQo+PiBPbiBXZWQsIEphbiAyNCwg MjAyNCBhdCAxMjoyOTo1MUFNICswMDAwLCBRaW5nIFpoYW8gd3JvdGU6DQo+Pj4gVGhpcyBpcyB0 aGUgNHRoIHZlcnNpb24gb2YgdGhlIHBhdGNoLg0KPj4gDQo+PiBUaGFua3MgdmVyeSBtdWNoIGZv ciB0aGlzIQ0KPj4gDQo+PiBJIHRyaXBwZWQgb3ZlciBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yYWwg Y2hhbmdlIHRoYXQgdGhlIExpbnV4IGtlcm5lbA0KPj4gZGVwZW5kcyBvbjoNCj4+IA0KPj4gX19i dWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCgpIG5vIGxvbmdlciB0cmVhdHMgYW4gYXJyYXkgbWFy a2VkIHdpdGgNCj4+IGNvdW50ZWRfYnkgYXMgZGlmZmVyZW50IGZyb20gdGhhdCBhcnJheSdzIGRl Y2F5ZWQgcG9pbnRlci4gU3BlY2lmaWNhbGx5LA0KPj4gdGhlIGtlcm5lbCB1c2VzIHRoZXNlIG1h Y3JvczoNCj4+IA0KPj4gDQo+PiAvKg0KPj4gKiBGb3JjZSBhIGNvbXBpbGF0aW9uIGVycm9yIGlm IGNvbmRpdGlvbiBpcyB0cnVlLCBidXQgYWxzbyBwcm9kdWNlIGENCj4+ICogcmVzdWx0IChvZiB2 YWx1ZSAwIGFuZCB0eXBlIGludCksIHNvIHRoZSBleHByZXNzaW9uIGNhbiBiZSB1c2VkDQo+PiAq IGUuZy4gaW4gYSBzdHJ1Y3R1cmUgaW5pdGlhbGl6ZXIgKG9yIHdoZXJlLWV2ZXIgZWxzZSBjb21t YSBleHByZXNzaW9ucw0KPj4gKiBhcmVuJ3QgcGVybWl0dGVkKS4NCj4+ICovDQo+PiAjZGVmaW5l IEJVSUxEX0JVR19PTl9aRVJPKGUpICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEoZSkp OyB9KSkpDQo+PiANCj4+ICNkZWZpbmUgX19zYW1lX3R5cGUoYSwgYikgX19idWlsdGluX3R5cGVz X2NvbXBhdGlibGVfcCh0eXBlb2YoYSksIHR5cGVvZihiKSkNCj4+IA0KPj4gLyogJmFbMF0gZGVn cmFkZXMgdG8gYSBwb2ludGVyOiBhIGRpZmZlcmVudCB0eXBlIGZyb20gYW4gYXJyYXkgKi8NCj4+ ICNkZWZpbmUgX19tdXN0X2JlX2FycmF5KGEpICAgQlVJTERfQlVHX09OX1pFUk8oX19zYW1lX3R5 cGUoKGEpLCAmKGEpWzBdKSkNCj4+IA0KPj4gDQo+PiBUaGlzIGdldHMgdXNlZCBpbiB2YXJpb3Vz IHBsYWNlcyB0byBtYWtlIHN1cmUgd2UncmUgZGVhbGluZyB3aXRoIGFuDQo+PiBhcnJheSBmb3Ig YSBtYWNybzoNCj4+IA0KPj4gI2RlZmluZSBBUlJBWV9TSVpFKGFycikgKHNpemVvZihhcnIpIC8g c2l6ZW9mKChhcnIpWzBdKSArIF9fbXVzdF9iZV9hcnJheShhcnIpKQ0KPj4gDQo+PiANCj4+IFNv IHRoaXMgYnVpbGRzOg0KPj4gDQo+PiBzdHJ1Y3QgdW50cmFja2VkIHsNCj4+ICAgICAgIGludCBz aXplOw0KPj4gICAgICAgaW50IGFycmF5W107DQo+PiB9ICphOw0KPj4gDQo+PiBfX211c3RfYmVf YXJyYXkoYS0+YXJyYXkpDQo+PiA9PiAwIChhcyBleHBlY3RlZCkNCj4+IF9fYnVpbHRpbl90eXBl c19jb21wYXRpYmxlX3AodHlwZW9mKGEtPmFycmF5KSwgdHlwZW9mKCYoYS0+YXJyYXkpWzBdKSkN Cj4+ID0+IDAgKGFzIGV4cGVjdGVkLCBhcnJheSB2cyBkZWNheWVkIGFycmF5IHBvaW50ZXIpDQo+ PiANCj4+IA0KPj4gQnV0IGlmIGNvdW50ZWRfYnkgaXMgYWRkZWQsIHdlIGdldCBhIGJ1aWxkIGZh aWx1cmU6DQo+PiANCj4+IHN0cnVjdCB0cmFja2VkIHsNCj4+ICAgICAgIGludCBzaXplOw0KPj4g ICAgICAgaW50IGFycmF5W10gX19jb3VudGVkX2J5KHNpemUpOw0KPj4gfSAqYjsNCj4+IA0KPj4g X19tdXN0X2JlX2FycmF5KGItPmFycmF5KQ0KPj4gPT4gYnVpbGQgZmFpbHVyZSAobm90IGV4cGVj dGVkKQ0KPj4gX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoYi0+YXJyYXkpLCB0 eXBlb2YoJihiLT5hcnJheSlbMF0pKQ0KPj4gPT4gMSAobm90IGV4cGVjdGVkLCBib3RoIHBvaW50 ZXJzPykNCj4+IA0KPj4gDQo+PiANCj4+IA0KPj4gLS0gDQo+PiBLZWVzIENvb2sNCj4gDQoNCg==