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 E14783842AFC for ; Thu, 30 Jun 2022 14:07:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E14783842AFC Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25UCwsJT019297; Thu, 30 Jun 2022 14:07:55 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gwsysm780-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 30 Jun 2022 14:07:54 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 25UDp5D0004622; Thu, 30 Jun 2022 14:07:54 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2042.outbound.protection.outlook.com [104.47.56.42]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3gwrta1ww7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 30 Jun 2022 14:07:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TjWRQ0C1otA2zvn+5ocueHojk17CZkU5BOOsuuZDi4xIUozICbsEx9hEBhUG9RU+n+ehMKWy7hC7WBhzG2Cx+cdmV+MzStBTGW88sD7ax/wB/BTtPCVm8Q7Z7v3RquS9LZFpPVbQ/2DKlXIrrxszewRgw4CunQNaw1Uj64U0GijJQ5fUw15gh5mkEyJWkYaB9c9ewP0HeD7vrUrmLK9Ux8ghB9+rapxbV5iJYxCbvLYG35SjINX5iWWV7UCC5LlsoUjE6zOave2DV3FulJcJ8ZRXW4Ectb9i4wRsBoI5en1hagCu3UTUzeJXsEtYVC85Hut+A0qwJXwZfuLSVB2IJA== 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=oo/fz1YMvvtWJroChS4Ac1yOcmdjsAxioW5YEAGcudw=; b=D3PscSsxTPPxSiyqjKYFT1qcOoN/GcJLLAKhXOda0aeox8JgV0MeA5c2KXzjFY+cqfcc0CNWt4pCiMl5EYfhBqeyfuibeh1xfFok955yvSuaF8869ADB5JKQ9fvt6DfR//zoBGVUgrdWFRT5tvR7JlDjpKVYSuhkZ6cqod0r2r6YD6Ijp9TAY4ie4yyjQTbGU3CXX+bJKVOXiwV6np1UKv1sPvHgzVn1CMyRqrVX695KRBF+vhYp6EHhWCOlCIk6WEE3DUiHavWlFiut0fUM4em02jzVST7rIbwqGstXYCLVSY64hRouAsS+KGEMjRwtGWvTIavZJGhVI68dJOxiqA== 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 Received: from MN2PR10MB4349.namprd10.prod.outlook.com (2603:10b6:208:1d4::9) by SJ0PR10MB4496.namprd10.prod.outlook.com (2603:10b6:a03:2d5::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Thu, 30 Jun 2022 14:07:51 +0000 Received: from MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::3c70:77df:d9fb:b484]) by MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::3c70:77df:d9fb:b484%8]) with mapi id 15.20.5395.014; Thu, 30 Jun 2022 14:07:51 +0000 From: Qing Zhao To: Martin Sebor , Jakub Jelinek CC: gcc-patches Paul A Clarke via , kees Cook Subject: Re: [GCC 13][PATCH] PR101836: Add a new option -fstrict-flex-array[=n] and use it in __builtin_object_size Thread-Topic: [GCC 13][PATCH] PR101836: Add a new option -fstrict-flex-array[=n] and use it in __builtin_object_size Thread-Index: AQHYijDoIYnVra++TU2IvHpSLMV5Da1kaY2AgACCboCAAAGbgIAADheAgAAMVgCAABnUgIAAAcsAgAAB2wCAAAW8AIAAA0aAgAG3owCAARsNgA== Date: Thu, 30 Jun 2022 14:07:51 +0000 Message-ID: References: <45936DE9-4099-4ED2-8B2B-6956A2FB493D@oracle.com> <5281C7CE-2677-4FE3-8ED3-C5B378685DCB@oracle.com> <2DDA999B-58B1-4390-9E2E-C4D68C0FD913@oracle.com> <865160D2-76C2-4B90-BD42-0CA676E6D3F0@oracle.com> <529B0DDA-852A-4E32-AF69-67080A7FEFD6@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.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9d560654-12d8-49f9-8ab1-08da5aa1ebc6 x-ms-traffictypediagnostic: SJ0PR10MB4496:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qpwMgzurpJLVGxYnu78R2PJCXTSocv7Uj5BJYuX/JzLRwbtOWR7OO4bfyfqKVwe6JVfTKki2A/8hqH1kAzIodsy8iHOMagrNLxYNlP/L1vZ8kjeZyVmCHJuhaR+Q2oLw87CaLqEd/ns9J9GeqxONYpKcBhjZ9BhHjmzp90qOnTcdnpjLRuvMkfLuc5lMrfT04gtrG1fJpNn1BGRis9JIsnmNCCWuGd4Acuahm+HS8Eynx9R+8e3rY0yjXVtZ/MwD4zSg/RH9JMYGgkI7oPdYvf48K4l/i0U3njDMIv/sYw91pOTFuM4rJ9VD8bYz/y9LSw2nn7IIby88G9CAm5dtX+G7/0kEe55LpMlcA/CJtsbf1pDSsQF8Nm8nqctbeLmHfCEINI6+VB7LaQhhzhVYFytgoZarwPNJPK4rUKbYlRBYvVlMSkwoLJnqJRdHK9LGoAsE+xteSEKnA/8rL0/vnYoilpKO1i9atp0arejJ1g9mMuLhiUIYknYgFr//yS10SO5V9QCmZOSM9Day8II8d/axWyzWE/xcH4rAaqAl+8QZOJ07BFi/CW3KUPpR9tjVJ28PSkWFCRmMBPfv4gx21m8hbkowkJJZajepxEvok/d02vEQA6x5k1f/gQuv3AUHjhFUxP8+nDpTihCcKI2kjucoFwPXvCmpIHXw//3hEwrgQoHIWERt5yGxGMXo8yzFvflQXmZVq4pAAyRivvZrfTNfVUO7d3m3CU9o8l3njWbwFjt5FxECXB/aBoWLdQFlgNmQEDBDbCMxYUymUjLT+x+XWfgK+t0r5eXDFai1dVQFfmn3SmcnhrIhTVSbBBjWXH+KrYkPaX90LT8Ic7Dt3K/i7g0BucubzKDMh1MzjHk= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB4349.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(376002)(366004)(136003)(396003)(346002)(39860400002)(83380400001)(110136005)(54906003)(33656002)(8936002)(36756003)(2906002)(86362001)(5660300002)(44832011)(6512007)(122000001)(8676002)(66476007)(38100700002)(64756008)(66946007)(76116006)(316002)(4326008)(66446008)(66556008)(38070700005)(6506007)(478600001)(41300700001)(6486002)(2616005)(186003)(53546011)(91956017)(71200400001)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VS9IVUhtTUxJYUQ5NkU4eHVKb1dHUXNvNXJWUWFkSGVxL1M2aStPQTRFdHZa?= =?utf-8?B?ZHQwS2pRU0NlMm5OdXkvZVFPdzFpVVFTQWR1ZVM4a2tJOG03bXNYRVdHUUpX?= =?utf-8?B?MVdnRTVqbGpTTjFMblVaTDUzbjJzcUZwNHlHWENuQ1lFVHVXeEtrUGVSek1a?= =?utf-8?B?dHRUaEJTTlAwOWMyb2dLeGdseTFUZFp1MDF6YjZ3Ui9YNFVhTlJuWitHVlZr?= =?utf-8?B?eHo4bUo2Sy9nTHlMUitOTGxCTVF5b3dOQ042dlgxVDcyWTR0c2J5eml4WUgv?= =?utf-8?B?Q3Ixbmdrck1UWHlZTHJCcHpnLzhKMlFqbENnVjFNZWZoRjZpT0ZYUWlscUhr?= =?utf-8?B?TmdDUTNDVEhqVWFyUjljTFV5NjQ3QWNtbVp4M1QwOXVyQnJEVDhBR25JLzVk?= =?utf-8?B?NEpudHZKNExScCtBcGVydHhmSmRGbVdpRHpoekZLem8yZk1lemhZQmlmMytI?= =?utf-8?B?UTdYdzR0OGJGN2kyUDFaL202dm1MWHZUUzRmZHU3MzRjYW1lMDNpTktKQ1JR?= =?utf-8?B?Y09oamt5T0piSUJtcys3OUdFMlJWdnFNMng5eTdoVFV1TGptajZsM3VtRUx6?= =?utf-8?B?dzhFdXJRUTJzMG9mTEpLSWtYcXBKWG52VG1BVmIya29FNTAvaXFEQ2xWYU9v?= =?utf-8?B?cTUxN0RFRFpOS2tGL2JYMlg4WFQ4RHR5WStmY0dGWG8xd3piclpIVjRHZkd3?= =?utf-8?B?ZFZwbmNuMmFwcmdmZEZuSjZMK3NmbWZVZVBxQW5GOFBMSFI0N0g3UTVLb1lh?= =?utf-8?B?SWsyM21OUnFhR2tzRy9jbUFXS0dHZlAyYzdQT1NyMCtudlMzMEFseTl6c2hs?= =?utf-8?B?WitNdDRuQzVFbGgwTkR4dXhGVWpUZVpDSmdnUGJWTFlkTEhmUmVweVZ4M0RV?= =?utf-8?B?Wlp5bGxQeFVIT09WN01OM0dHMlFXNExLWFQ1ZXJDL2dleDNYYjFmTVBxeHpJ?= =?utf-8?B?VXQxd1Z1VEVBc1VzVHcrNlVXbnJzT3hvdlBmOG5hVFdaUnNqM3ZINnZNSXZr?= =?utf-8?B?eEdxR2NEL2JMQlNBWWFEYTJ2bVpmRXJIWjNjM25zNndsblVsT2NpaGlmeGQw?= =?utf-8?B?MERNa2EybDlTMzlFRmp3bGJaVE92Z2hHSWtRU0h2NW9EaWwvUU1ic0twc1VX?= =?utf-8?B?bnE0YjlVaHNVcjVCOGFkUmllSEl1NFUwWlpIMnorTUorV1RkaGw1RlZkaVBt?= =?utf-8?B?blljUVlmZzA3WmFuNUQyZEoxQUljejNVNjhXOG1rWnZFenlCaGpKRWpCR0pt?= =?utf-8?B?ZWFOeDlUTjBacU52bFU4clFHYTdxQllZRytnMDVtdmR2RndkR3FtWHUwQTUy?= =?utf-8?B?MVdRVDBNNDZuYzg1Nzcyd2JLV21HbDhicEp0RHEvYTZqcmtlZUZ6Sy95NC84?= =?utf-8?B?azJHdkNacmdWVE02Tzd3VDR6L016VEVNU0IzLy9YS1JCd25LWGova1pSZHM2?= =?utf-8?B?eE5xaXZtQVZod3licEZ4L1J6TzRwWlQ4a1BOYjUyQzdGWXlVeEorQW5lbDdi?= =?utf-8?B?Y0srckNYYmxnSEwvTkEzVy8vcnFDOC9TWDlIc001cU5sa0QxaENzSVBOZjFk?= =?utf-8?B?cE5SMGJBS3FadzlZSGNMRFY4SW1INUE2NHAxK2p2Q0x6MUpNanllcXBkcU5y?= =?utf-8?B?ZFZpTFVDTlpua0RvTENqb3R4NEM3WW93WjUza3pqcXgyWkpwRXpmV1VLMWZM?= =?utf-8?B?T1lBU3FOSUYzM1RDWHEyNkwxc3RzR1FEL25hYmpZb0ZHSnVpdERQbTh6S05y?= =?utf-8?B?UjJ3eE1Da2xFeGZKd2djK3ZYUXFhNTBUbnB3ZTBjNWNlN2NKY1JoQmY1akUr?= =?utf-8?B?M0VJbk9hT2ZrVDVEUXpZNWt2bHMvNi9mMXljZzY4M3gxLzhUdGxLQWVEYmhW?= =?utf-8?B?NEhacll1YXp4U3FPRHFMa3VYK1dta3Y0RUlJQlFyNm5EZ0luRVlOUTZpUEJu?= =?utf-8?B?TmRXRkc2SzdicVNvZGtlQnVudURtYjJZQVg2enpLckphell5Y0lkRFFVV2NY?= =?utf-8?B?SUd3Z0hQYjM2Yzh4YWdWV1ZLNjNqTDRQOGpqN1dWV3NPM1ovUDFERHVPLzRm?= =?utf-8?B?YUdPSlhJcnBGeEg4VEIyRGJkdkNibXpjUU9mQ21UN09HSkVWd1FDd3Q1OTBS?= =?utf-8?B?TTBxZ3FPeEJZUHRsVUdTc3Roa3Z6ZGllSjBpR1NFWVAyczV2cTJXdldNYXZm?= =?utf-8?Q?sKmQ64s84rfqVADqGsfMkcE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <381312BEDD027A49851A6AE4CD74FD79@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4349.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9d560654-12d8-49f9-8ab1-08da5aa1ebc6 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2022 14:07:51.7925 (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: 7D1i5NofwmAVcffhLdisa6QrTVCCgpbubbCiBynZeXExr2W5TcfQdDY4sGm9nZ8tmfmyXK7qh4HS/hQi4H+8lQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4496 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.883 definitions=2022-06-30_09:2022-06-28, 2022-06-30 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206300056 X-Proofpoint-ORIG-GUID: B8tzM-9ksoqVlxm7mMCM-rXePQNcBSNL X-Proofpoint-GUID: B8tzM-9ksoqVlxm7mMCM-rXePQNcBSNL X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jun 2022 14:07:57 -0000 DQoNCj4gT24gSnVuIDI5LCAyMDIyLCBhdCA1OjE0IFBNLCBNYXJ0aW4gU2Vib3IgPG1zZWJvckBn bWFpbC5jb20+IHdyb3RlOg0KPiANCj4gT24gNi8yOC8yMiAxMzowMSwgUWluZyBaaGFvIHdyb3Rl Og0KPj4+IE9uIEp1biAyOCwgMjAyMiwgYXQgMjo0OSBQTSwgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4gT24gVHVlLCBKdW4gMjgsIDIwMjIgYXQgMDY6 Mjk6MDFQTSArMDAwMCwgUWluZyBaaGFvIHdyb3RlOg0KPj4+PiANCj4+Pj4gDQo+Pj4+PiBPbiBK dW4gMjgsIDIwMjIsIGF0IDI6MjIgUE0sIEpha3ViIEplbGluZWsgPGpha3ViQHJlZGhhdC5jb20+ IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+PiBPbiBUdWUsIEp1biAyOCwgMjAyMiBhdCAwNjoxNTo1OFBN ICswMDAwLCBRaW5nIFpoYW8gd3JvdGU6DQo+Pj4+Pj4+IEJlY2F1c2UgdGhlIGZsYWcganVzdCB0 ZWxscyB3aGV0aGVyIHNvbWUgYXJyYXkgc2hvdWxkbid0IGJlIHRyZWF0ZWQgYXMgKHBvb3IgbWFu J3MpDQo+Pj4+Pj4+IGZsZXhpYmxlIGFycmF5IG1lbWJlci4gIFdlIHN0aWxsIG5lZWQgdG8gZmlu ZCBvdXQgaWYgc29tZSBGSUVMRF9ERUNMIGlzIHRvDQo+Pj4+Pj4+IGJlIHRyZWF0ZWQgbGlrZSBh IGZsZXhpYmxlIGFycmF5IG1lbWJlciwgd2hpY2ggaXMgYSBtaW5vcml0eSBvZg0KPj4+Pj4+PiBD T01QT05FTlRfUkVGcy4NCj4+Pj4+Pj4gc3RydWN0IFMgeyBpbnQgYTsgY2hhciBiWzBdOyBpbnQg YzsgfSBzOw0KPj4+Pj4+PiBzdHJ1Y3QgVCB7IGludCBkOyBjaGFyIGVbXTsgfTsNCj4+Pj4+Pj4g c3RydWN0IFUgeyBpbnQgZjsgc3RydWN0IFQgZzsgaW50IGg7IH0gdTsNCj4+Pj4+Pj4gTmVpdGhl ciBzLmIgbm9yIHUuZy5lIGlzIHRvIGJlIHRyZWF0ZWQgbGlrZSBmbGV4aWJsZSBhcnJheSBtZW1i ZXIsDQo+Pj4+Pj4+IG5vIG1hdHRlciB3aGF0IC1mc3RyaWN0LWZsZXgtYXJyYXk9IG9wdGlvbiBp cyB1c2VkLg0KPj4+Pj4+IA0KPj4+Pj4+IFRoZW4sIHRvIHJlc29sdmUgdGhpcyBpc3N1ZSwgd2Ug bWlnaHQgbmVlZCBhIG9wcG9zaXRlICBmbGFnIERFQ0xfSVNfRkxFWEFSUkFZIGluIEZJRUxEX0RF Q0w/DQo+Pj4+Pj4gDQo+Pj4+Pj4gVGhlIGRlZmF1bHQgaXMgRkFMU0UgZm9yIGFsbCBGSUVMRF9E RUNMLg0KPj4+Pj4gDQo+Pj4+PiBEb2Vzbid0IG1hdHRlciB3aGV0aGVyIGl0IGlzIHBvc2l0aXZl IG9yIG5lZ2F0aXZlLCB5b3Ugc3RpbGwgbmVlZCB0byBhbmFseXplDQo+Pj4+PiBpdC4gIFNlZSB0 aGUgYWJvdmUgZXhhbXBsZS4gIElmIHlvdSBoYXZlIHN0cnVjdCBUIHQ7IGFuZCB0ZXN0IHQuZSwg dGhlbiBpdA0KPj4+Pj4gaXMgZmxleGFycmF5LiAgQnV0IHUuZy5lIGlzIG5vdCwgZXZlbiB3aGVu IHRoZSBDT01QT05FTlRfUkVGIHJlZmVycyB0byB0aGUNCj4+Pj4+IHNhbWUgRklFTERfREVDTC4g IEluIHRoZSB0LmUgY2FzZSBlIGlzIHRoZSB2ZXJ5IGxhc3QgZmllbGQsIGluIHRoZSBsYXR0ZXIN Cj4+Pj4+IGNhc2UgdS5nLmUgaXMgdGhlIGxhc3QgZmllbGQgaW4gc3RydWN0IFQsIGJ1dCBzdHJ1 Y3QgVSBoYXMgdGhlIGggZmllbGQgYWZ0ZXINCj4+Pj4gDQo+Pj4+IFNvLCBkbyB5b3UgbWVhbiB0 aGF0IHRoZSBjdXJyZW50IEZFIGFuYWx5c2lzIHdpbGwgbm90IGJlIGFibGUgdG8gZGVjaWRlIHdo ZXRoZXIgYSBzcGVjaWZpYyBhcnJheSBmaWVsZCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBlbmNsb3Np bmcgc3RydWN0dXJlPw0KPj4+PiBPbmx5IHRoZSBtaWRkbGUgZW5kIGNhbiBkZWNpZGUgdGhpcyA/ DQo+Pj4gDQo+Pj4gV2VsbCwgYW55dGhpbmcgdGhhdCBhbmFseXplcyBpdCwgY2FuIGJlIGluIHRo ZSBGRSBvciBtaWRkbGUtZW5kLCBidXQgdGhlcmUNCj4+PiBpcyBubyBwbGFjZSB0byBzdG9yZSBp dCBmb3IgbGF0ZXIuDQo+PiBUaGVuIEkgYW0gYSBsaXR0bGUgY29uZnVzZWQ6DQo+PiBJZiB0aGUg RkUgY2FuIGRlY2lkZSB3ZXRoZXIgYW4gYXJyYXkgZmllbGQgaXMgYXQgdGhlIGVuZCBvZiB0aGUg ZW5jbG9zaW5nIHN0cnVjdHVyZSwgIHRoZW4gY29tYmluZWQgd2l0aCB3aGV0aGVyIGl04oCZcyBh IFswXSwgWzFdIG9yIFtdLCBhbmQgd2hpY2ggbGV2ZWwgb2YgLWZzdHJpY3QtZmxleC1hcnJheSwN Cj4+IFRoZSBGRSBzaG91bGQgYmUgYWJsZSB0byBkZWNpZGUgd2hldGhlciB0aGlzIGFycmF5IGZp ZWxkIGlzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIG9yIG5vdCwgdGhlbiBzZXQgdGhlIGZsYWcg REVDTF9JU19GTEVYQVJSQVkgKG9yIERFQ0xfTk9UX0ZMRVhBUlJBWSkuDQo+PiBUaGUgbmV3IGZs YWcgaXMgdGhlIHBsYWNlIHRvIHN0b3JlIHN1Y2ggaW5mbywgcmlnaHQ/DQo+PiBEbyBJIG1pc3Mg YW55dGhpbmcgaGVyZT8NCj4gDQo+IEkgdGhpbmsgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGVyZSBp cyBqdXN0IG9uZSBGSUVMRF9ERUNMIGZvciBtZW1iZXINCj4gTSBvZiBhIGdpdmVuIHR5cGUgVCBi dXQgdGhlcmUgY2FuIGJlIG1vcmUgdGhhbiBvbmUgaW5zdGFuY2Ugb2YgdGhhdA0KPiBtZW1iZXIs IG9uZSBpbiBlYWNoIHN0cnVjdCB0aGF0IGhhcyBhIHN1Ym9iamVjdCBvZiBUIGFzIGl0cyBvd24N Cj4gbWVtYmVyLiAgV2hldGhlciBNIGlzIG9yIGlzbid0IGEgKHZhbGlkKSBmbGV4aWJsZSBhcnJh eSBtZW1iZXINCj4gdmFyaWVzIGJldHdlZW4gdGhlIHR3byBpbnN0YW5jZXMuDQoNCk9rYXksIEkg c2VlLiANCkEgRklFTERfREVDTCBtaWdodCBiZSBzaGFyZWQgYnkgbXVsdGlwbGUgc3RydWN0dXJl IG9yIHVuaW9ucywgYW5kIHdoZXRoZXIgDQppdOKAmXMgYSBmbGV4aWJsZSBhcnJheSBtZW1iZXIg dmFyaWVzIGJldHdlZW4gZGlmZmVyZW50IGVuY2xvc2luZyBzdHJ1Y3R1cmVzIG9yIHVuaW9ucy4N ClRoZXJlZm9yZSBGSUVMRF9ERUNMIGNhbm5vdCBjYXJyeSB0aGUgZmxleGlibGUgYXJyYXkgbWVt YmVyIGluZm9ybWF0aW9uIGFjY3VyYXRlbHkuIA0KDQpUaGVuLCBob3cgYWJvdXQgZW5jb2Rpbmcg dGhlIGZsZXhpYmxlIGFycmF5IG1lbWJlciBpbmZvcm1hdGlvbiBpbnRvIHRoZSBlbmNsb3Npbmcg c3RydWN0dXJlIG9yIHVuaW9uPyANCg0KDQpBbm90aGVyIHRoaW5nIGlzOiAgQWxsIHRoaXMgY29t cGxleGl0eSBpcyBjYXVzZWQgYnkgR05VIGV4dGVuc2lvbiB3aGljaCBwZXJtaXRzIHRoZSBmbGV4 aWJsZSBhcnJheSANCm1lbWJlciBub3QgYXQgdGhlIGVuZCBvZiB0aGUgc3RydWN0LiAoQXMgSSBt ZW50aW9uZWQgaW4gYSBwcmV2aW91cyBlbWFpbCwgSSBsaXN0ZWQgaGVyZSBhZ2FpbikNCg0KRm9y IGV4YW1wbGUgdGhlIGZvbGxvd2luZyB0d28gZXhhbXBsZXM6DQoNCjEuIFtvcGNAcWluemhhby1v bDh1My14ODYgdHJhaWxpbmdfYXJyYXldJCBjYXQgdDEuYw0Kc3RydWN0IEFYDQp7DQogIGludCBu Ow0KICBzaG9ydCBheFtdOw0KICBpbnQgbTsNCn07DQoNCnZvaWQgd2Fybl9heF9sb2NhbCAoc3Ry dWN0IEFYICpwKQ0Kew0KICBwLT5heFsyXSA9IDA7ICAgDQp9DQoNCjIuIFtvcGNAcWluemhhby1v bDh1My14ODYgdHJhaWxpbmdfYXJyYXldJCBjYXQgdDIuYw0Kc3RydWN0IEFYDQp7DQogIGludCBu Ow0KICBzaG9ydCBheFtdOw0KfTsNCg0Kc3RydWN0IFVYDQp7DQogIHN0cnVjdCBBWCBiOw0KICBp bnQgbTsNCn07DQoNCnZvaWQgd2Fybl9heF9sb2NhbCAoc3RydWN0IEFYICpwLCBzdHJ1Y3QgVVgg KnEpDQp7DQogIHAtPmF4WzJdID0gMDsgICANCiAgcS0+Yi5heFsyXSA9IDA7DQp9DQoNCltvcGNA cWluemhhby1vbDh1My14ODYgdHJhaWxpbmdfYXJyYXldJCBnY2MgLU8yIC1XYWxsIHQxLmMgLVMN CnQ0LmM6NDo5OiBlcnJvcjogZmxleGlibGUgYXJyYXkgbWVtYmVyIG5vdCBhdCBlbmQgb2Ygc3Ry dWN0DQogICAgNCB8ICAgc2hvcnQgYXhbXTsNCg0KW29wY0BxaW56aGFvLW9sOHUzLXg4NiB0cmFp bGluZ19hcnJheV0kIGdjYyAtTzIgLVdhbGwgdDIuYyAtUw0KDQpJdOKAmXMgY2xlYXIgdG8gc2Vl IHRoYXQgaW4gdGhlIGFib3ZlIHQxLmMsICBHQ0MgIHJlcG9ydHMgZXJyb3Igd2hlbiB0aGUgZmxl eGlibGUgYXJyYXkgbWVtYmVyIGlzIE5vdCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3R1cmUgIChB WCkgdGhhdCBpbW1lZGlhdGVseSBlbmNsb3NpbmcgdGhlIGZpZWxkLg0KSG93ZXZlciwgZm9yIHQy LmMsIHdoZW4gdGhlIGZsZXhpYmxlIGFycmF5IG1lbWJlciBpcyBOb3QgYXQgdGhlIGVuZCBvZiB0 aGUgc3RydWN0dXJlIHRoYXQgZG9lcyBub3QgaW1tZWRpYXRlbHkgZW5jbG9zaW5nIGl0IChVWCks IHRoZW4gaXTigJlzIGFjY2VwdGVkLiAgIA0KDQpJIGFtIHZlcnkgY29uZnVzZWQgYWJvdXQgdDIu YywgaXMgdGhlIHN0cnVjdCBVWCBhIGNvcnJlY3QgZGVjbGFyYXRpb24/IA0KDQpUaGFua3MuDQoN ClFpbmcNCg0KPiANCj4gTWFydGluDQoNCg==