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 E3A8E3853811 for ; Mon, 12 Jul 2021 20:29:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E3A8E3853811 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16CKHHKq026268; Mon, 12 Jul 2021 20:29:00 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 39rnxdh265-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jul 2021 20:28:59 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16CKGQP8185396; Mon, 12 Jul 2021 20:28:58 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by userp3030.oracle.com with ESMTP id 39q0p1fenw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jul 2021 20:28:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DpeYHq4gRUiZuciaD2JXebIACBr/NVeN0UjQjjSlC6NoXj3WumBasiRrClwV5TeSXcQ5yt4C3XmwdhwAurJ6jPhWwmbAlteba0soYMfV1EgFccniIGO8iRWAgJbOyGjJgoInKD50sbrNCPqPBLUH+Ybq/jyYJLXWagL1UkkYwXMAUSXrI8oKTTwOUzBfUzKoqdtdrfc9pTB4LV3i4HCumUDLf+MpgAY7RR2IKK/YX499MhB7JiqUpgTjGBwfEph8gkG7rRAkv4O77OQqRLVRIHaLsgh80X1OwT+8003hUF4SecVUARf2yHJu5UfpkwyTBggKSX/NKkC+E9zirs5RXQ== 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-SenderADCheck; bh=0JObpOxvdODuxNwIigT6v0bf4AUEw/e84T1zjbCTfIU=; b=Y0nkacOxV29S7pPwYhvVm0VYfH6HbLMsq8QCrvDoNkow+x7W3pATiPcSlrpawDYYrh/jB2ANtmpE1JMdWgMMA5VkGaW2gf9LiJYvh46rUGTNDCQmc4TjyBb1FOPmLUWaqPGP0DbGU3jkce6SkwU2N4Uu6QMFnYWezy4IhGjS2poKqb2uAMQLq60xu7yBZaKDNJ7rtMXkxIUi5asbqKyNN2G6+C1sLMEep/bCjeNDq9AAuF6CuNCHvCiO52vtdeLNuUA0AeiDK0r3zGQPgosNTsMHOuvUz9pJllWlmV4xaGNFIlu05inJjyVw8qLz2Udh1Kx28MyvsC+p784kUWa8GA== 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 CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH2PR10MB4008.namprd10.prod.outlook.com (2603:10b6:610:c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.24; Mon, 12 Jul 2021 20:28:55 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::40d3:31ef:73a8:802]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::40d3:31ef:73a8:802%3]) with mapi id 15.20.4308.026; Mon, 12 Jul 2021 20:28:55 +0000 From: Qing Zhao To: Kees Cook CC: Richard Biener , Richard Sandiford , gcc-patches Qing Zhao via Subject: Re: [patch][version 4]add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 4]add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXc1bW8CMg6dRG/0GDGBORAHTjkKs/p8uAgAAqmAA= Date: Mon, 12 Jul 2021 20:28:55 +0000 Message-ID: <80CAE4C0-237B-4F1A-9569-7EC789563CB8@oracle.com> References: <202107121030.295D4E590@keescook> In-Reply-To: <202107121030.295D4E590@keescook> 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: e6177553-4ab3-4380-b0a0-08d94573abb5 x-ms-traffictypediagnostic: CH2PR10MB4008: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mMErHeLhgrdx/30rAniHUp6fSdxM1ZpsbzgIU7ImVx7J85pv5uZvmZCrZwT4BJhAFjvQI23ICuS2se+S7+hTNbnyNfDeyBdaSUCvEEelo3zzB6L/KGXO08WhN0eGkWBQKJeSZL3XFRvAQurzSwaaWHf58Vk8xwY62BZAQqNfzFzeT/7xWDz2Q3DjMJ85u0dNarhv+b0JJ4MRH/RPP0uqX3ZVrPpwqvn7dpQ02/pDRIAmNR8Dbrql2DBqliMqXu1znOrZQ9FEVh2W7vMt2n8xvv+XZjL7+MwUwOK1N1Yec8oayFeM9kKD1e7dPDgpfmjY0QS9uA4DciIZpGNKpi5YbLX6i0uR3T5fKyMazPwtKhyKyEAvXLdx1yPmtPVD2+w8qbRwN740APFoJW5xgIRMae75DyTTlLrSvR+rX8On2ymDgWhLesRwBGrMqDmB3ig/UTcon+3zOcriCXZcKdZMAns1p52LoE8qcXIyhxZlzTNR3flesaChwgCHO38gX/U04ttUoxCcc6QwgCVdQFrNAEm7U5C6Ic9eFcjeirS/ePupkA+KJk0x+F1SCGFaVgBw3FyzcTULYdMGYed+U/+H3006L3a7NQ2uIAI71dkhJvwTJbfbINmIoHq4YbYoNrLz0HC+sQMiDqfZXB5NObleds3l1HV8J+NtIPTfIvydheQh9pBSCqPKK83/eQ/bk8nVDtgZIPnvdgpFU7j9GggR8pR/WT/26Bt9XKKR0bpILfvyKuxfWz5/lsaFu+JGa2u/iNJIevrqrY1HLXfdBcjEp/2UuqwJ1f88r1Aey1eGboiEFzoqfyMdAqv0M0F8MKFwR09ZGAPkfchzz84tUNjY0A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(136003)(39860400002)(376002)(346002)(396003)(38100700002)(64756008)(86362001)(54906003)(83380400001)(71200400001)(122000001)(6916009)(316002)(6512007)(966005)(2616005)(66556008)(66446008)(44832011)(2906002)(5660300002)(6486002)(8936002)(66476007)(8676002)(6506007)(478600001)(36756003)(66946007)(91956017)(76116006)(186003)(4326008)(33656002)(53546011)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZU0zQUlWQ1RrNDRhSVdwV2lWT0tOZGRPUnI1akllWklyUG43TU5aNyt5UEJV?= =?utf-8?B?ZFY0OXV1c0hrZDdPTVVYQ2FFRkIrTjBSVnJQQ0N3Witma1ZmYnBzVnpVNmdB?= =?utf-8?B?N0hVVTVieUgrdklKNCtEWFROdVI4L1BxQlVuNWtrQ0dZdzZ6ay85VS83bGl5?= =?utf-8?B?Rjk4TStza1h1UDdOdlAxWDNwdXpMem9oRisrQ3ZuVFBGay9OaXBHU2dzTm14?= =?utf-8?B?VE9IVk5nT2RFTXR6N0dBRW9BU052TFBNcUpYQk5XdVZQMTNSUFVMTm0wUkts?= =?utf-8?B?WVNDTGpGQjY1OU5EcmpEZDVaenRlOGJaZVVma0JhNk93R2duT1hYYjhsSEVD?= =?utf-8?B?RWRjM29mTXVucWlqMzZiWFd1VGtjeE9QMG5na2s3OElmcHlqRkxCSVZiWkZM?= =?utf-8?B?SUU2dGtqMXRFN0tCbSt5WGpzTnNQaXNpNHJ3RG1CNGpIM1lFZkN2Mm40NCs2?= =?utf-8?B?UVE2VDRwczhQaGRiT25RNmxwTThHYXJZZEJjMjdGTHlFV1B0SFhOOFZhRk0w?= =?utf-8?B?SVJhK0lQNzBpNU1ZSnRmT2lFMDVMeVhMbTVGTmR3ekZSaU9Fb085dW1Tdkt1?= =?utf-8?B?QitMbHBnb2pwZTVMNzFkbHRyYUNiTWVtR0Y2bGk2YWV6ZTBFZmdjWjJSSE0x?= =?utf-8?B?RUhKVVlKaWN6QTVYWVZ2WXhRNnRLQ0I4RjdDeEE3dENobmhmQ2hSK3F3L21S?= =?utf-8?B?aFpUNWJXbW5pMldWSGM2NUh1NVRoVHdhMlF0Z2hBd2NDV0pIL1d3ZkdsWExF?= =?utf-8?B?UGFuNE5iRnNvYmVjb1d5ZDZlSnRCdnROcHVQVVNTd3lqbVVnWUs3M05wc3BK?= =?utf-8?B?dTRnd0NYenBBOU9zQ0lBdVpDMXB5bm1wNHB5M2g3L3dFN3RFR1BTZ1lXQi9x?= =?utf-8?B?WVlBN1Z5SGJFbVVYMWdkeFRSeVhFeXAraTdPQ3N5emV2WnNyWTZiKzEvRzlv?= =?utf-8?B?VER0SHludDk2N0FUcVhDZzRzSjY2ZzRzaUgvTU1yam5OeDZObnMwbkFqMlpk?= =?utf-8?B?SXAvRU1mc09kNTBEL2xlcVJ0aEhkNkZaanRUQ0JJRFNtdFBjRW45YUZ5VEN3?= =?utf-8?B?alIveFdDbWdqOFhQb3RvOFZBYTlQSVAza1oxRFA1VEZKMXFtM0s2L29wdU95?= =?utf-8?B?MjgwaUZGVTg1aHJBbHlCRlNleUhGQzAwL2xMMUQrYTErU0hBTlhVTWVPZHMz?= =?utf-8?B?alQ4RERJbzh2SThNMXVXV0lRaEJENlYybnR1VUVGcWtMZnFBbkY2V0hIbGdh?= =?utf-8?B?bUxhV1pKRVlETW1XaVpRRW5KYzFOY3NBd1d4cnBxQ2N4UGFhNExIR1AxY0gr?= =?utf-8?B?L2pYWWtPRkgrcVlRWXNKa2hsZTZ2eFZRZ3JOQlF5N2JGek5rditXeWFmRTFx?= =?utf-8?B?SUozdVRMcUZHMGtsZVVDTVNJR001MzJlTjk4UVRQbkczNkxxeTBsL3R2NUdv?= =?utf-8?B?SitNOWJ4aWN3Z1U5WDhWTEFxVkFtaDVHeEg4a3ZyUWcwK1NwZFBiMllVcjJX?= =?utf-8?B?eEQxL3EyUTBIeVlwaE9XNVpTUUN6c04zaWh0Skd1L2tHaHZocUNuMXVTODdD?= =?utf-8?B?SjBBNUdoRHhXSU5hM0orbStWUlROMFpENEZ0ekY1NzdjK0JEcXIzT0VQaE8y?= =?utf-8?B?cVV3UGp2WUpBUjRwZitnckU1bnJmRGpXNXZWL2ZqSGlZUS9tQi9vdzB6ZEtP?= =?utf-8?B?c2N2SlpIZjk5WFZzNUVpN0tXcFdPK2dvU2RMY2ZxTnE5MUpMWEw5U0JhTkNV?= =?utf-8?B?clhGdHdkY01MNEdsRHBGbWlSOVRndUxqR0x3Q2hXMmlYN2h6RmRBTDlua2I5?= =?utf-8?B?QmhmY043NFhoVW1ldUpPeUVNV1hodi8xbzdTM0xSeTkxUlEybVF1aVVOM1JR?= =?utf-8?Q?R+ZXvxm3SXSPL?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6177553-4ab3-4380-b0a0-08d94573abb5 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2021 20:28:55.3355 (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: Q0WpUXNSVIf8bPOeObQEVJXp1OhEegmH+Eut7b3TgH8SwgIFfFZrgu/I9Ci1ASUrjVwNyK8Yr5SKsnVRJfH08A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4008 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10043 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 phishscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107120141 X-Proofpoint-GUID: 3n_ZDK3Dv9zM3Ap66j8kBBE8TBJgjoI8 X-Proofpoint-ORIG-GUID: 3n_ZDK3Dv9zM3Ap66j8kBBE8TBJgjoI8 X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Mon, 12 Jul 2021 20:29:07 -0000 SGksIEtlZXMsDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciB0ZXN0aW5nIG9uIGtlcm5lbCB0ZXN0 aW5nIGNhc2VzLiANCg0KSSBoYXZlIHNvbWUgcXVlc3Rpb24gaW4gYmVsb3c6DQoNCj4gT24gSnVs IDEyLCAyMDIxLCBhdCAxMjo1NiBQTSwgS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+ IHdyb3RlOg0KPiANCj4gT24gV2VkLCBKdWwgMDcsIDIwMjEgYXQgMDU6Mzg6MDJQTSArMDAwMCwg UWluZyBaaGFvIHdyb3RlOg0KPj4gSGksIA0KPj4gDQo+PiBUaGlzIGlzIHRoZSA0dGggdmVyc2lv biBvZiB0aGUgcGF0Y2ggZm9yIHRoZSBuZXcgc2VjdXJpdHkgZmVhdHVyZSBmb3IgR0NDLg0KPj4g DQo+PiBJIGhhdmUgdGVzdGVkIGl0IHdpdGggYm9vdHN0cmFwIG9uIGJvdGggeDg2IGFuZCBhYXJj aDY0LCByZWdyZXNzaW9uIHRlc3Rpbmcgb24gYm90aCB4ODYgYW5kIGFhcmNoNjQuDQo+PiBBbHNv IGNvbXBpbGUgYW5kIHJ1biBDUFUyMDE3LCB3aXRob3V0IGFueSBpc3N1ZS4NCj4+IA0KPj4gUGxl YXNlIHRha2UgYSBsb29rIGFuZCBsZXQgbWUga25vdyB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0 aW9ucy4NCj4gDQo+IFRoYW5rcyBmb3IgdGhlIHVwZGF0ZSENCj4gDQo+IEl0IGxvb2tzIGxpa2Ug cGFkZGluZyBpbml0aWFsaXphdGlvbiBoYXMgcmVncmVzc2VkIHRvIHdoZXJlIHRoaW5ncyB3aGVy ZQ0KPiBpbiB2ZXJzaW9uIDFbMV0gKGl0IHdhcywgaG93ZXZlciwgd29ya2luZyBpbiB2ZXJzaW9u IDJbMl0pLiBJJ20gc2VlaW5nDQo+IHRoZXNlIGZhaWx1cmVzIGFnYWluIGluIHRoZSBrZXJuZWwg c2VsZi10ZXN0Og0KPiANCj4gdGVzdF9zdGFja2luaXQ6IHNtYWxsX2hvbGVfc3RhdGljX2FsbCBG QUlMICh1bmluaXQgYnl0ZXM6IDMpDQo+IHRlc3Rfc3RhY2tpbml0OiBiaWdfaG9sZV9zdGF0aWNf YWxsIEZBSUwgKHVuaW5pdCBieXRlczogNjEpDQo+IHRlc3Rfc3RhY2tpbml0OiB0cmFpbGluZ19o b2xlX3N0YXRpY19hbGwgRkFJTCAodW5pbml0IGJ5dGVzOiA3KQ0KPiB0ZXN0X3N0YWNraW5pdDog c21hbGxfaG9sZV9keW5hbWljX2FsbCBGQUlMICh1bmluaXQgYnl0ZXM6IDMpDQo+IHRlc3Rfc3Rh Y2tpbml0OiBiaWdfaG9sZV9keW5hbWljX2FsbCBGQUlMICh1bmluaXQgYnl0ZXM6IDYxKQ0KPiB0 ZXN0X3N0YWNraW5pdDogdHJhaWxpbmdfaG9sZV9keW5hbWljX2FsbCBGQUlMICh1bmluaXQgYnl0 ZXM6IDcpDQogDQpBcmUgdGhlIGFib3ZlIGZhaWx1cmVzIGZvciAtZnRyaXZpYWwtYXV0by12YXIt aW5pdD16ZXJvIG9yIC1mdHJpdmlhbC1hdXRvLXZhci1pbml0PXBhdHRlcm4/ICBPciBib3RoPw0K DQpGb3IgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24sIEkgYmVsaWV2ZSB0aGF0IGFsbCBwYWRk aW5ncyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGlzIG9wdGlvbiwgDQpmb3IgLWZ0cml2 aWFsLWF1dG8tdmFyLWluaXQ9emVybywgdGhlIHBhZGRpbmcgd2lsbCBiZSBpbml0aWFsaXplZCB0 byB6ZXJvIGFzIGJlZm9yZSwgaG93ZXZlciwgZm9yDQotZnRyaXZpYWwtYXV0by12YXItaW5pdD1w YXR0ZXJuLCB0aGUgcGFkZGluZyB3aWxsIGJlIGluaXRpYWxpemVkIHRvIDB4RkUgYnl0ZS1yZXBl YXRhYmxlIHBhdHRlcm5zLg0KDQo+IA0KPiBJbiBsb29raW5nIGF0IHRoZSBnY2MgdGVzdCBjYXNl cywgSSB0aGluayB0aGUgd3JvbmcgdGhpbmcgaXMNCj4gYmVpbmcgY2hlY2tlZDogd2Ugd2FudCB0 byB2ZXJpZnkgdGhlIHBhZGRpbmcgaXRzZWxmLiBGb3IgZXhhbXBsZSwNCj4gaW4gYXV0by1pbml0 LTE3LmMsIHRoZSBhY3R1YWwgYnl0ZXMgYWZ0ZXIgImZvdXIiIG5lZWQgdG8gYmUgY2hlY2tlZCwN Cj4gcmF0aGVyIHRoYW4gImZvdXIiIGl0c2VsZi4NCg0KKioqKioqRm9yIHRoZSBjdXJyZW50IGF1 dG8taW5pdC0xNy5jDQoNCiAgMSAvKiBWZXJpZnkgemVybyBpbml0aWFsaXphdGlvbiBmb3IgYXJy YXkgdHlwZSB3aXRoIHN0cnVjdHVyZSBlbGVtZW50IHdpdGgNCiAgMiAgICBwYWRkaW5nLiAgKi8N CiAgMyAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KICA0IC8qIHsgZGctb3B0aW9ucyAiLWZ0cml2 aWFsLWF1dG8tdmFyLWluaXQ9emVybyIgfSAqLw0KICA1IA0KICA2IHN0cnVjdCB0ZXN0X3RyYWls aW5nX2hvbGUgew0KICA3ICAgICAgICAgaW50IG9uZTsNCiAgOCAgICAgICAgIGludCB0d287DQog IDkgICAgICAgICBpbnQgdGhyZWU7DQogMTAgICAgICAgICBjaGFyIGZvdXI7DQogMTEgICAgICAg ICAvKiAic2l6ZW9mKHVuc2lnbmVkIGxvbmcpIC0gMSIgYnl0ZSBwYWRkaW5nIGhvbGUgaGVyZS4g Ki8NCiAxMiB9Ow0KIDEzIA0KIDE0IA0KIDE1IGludCBmb28gKCkNCiAxNiB7DQogMTcgICBzdHJ1 Y3QgdGVzdF90cmFpbGluZ19ob2xlIHZhclsxMF07DQogMTggICByZXR1cm4gdmFyWzJdLmZvdXI7 DQogMTkgfQ0KIDIwIA0KIDIxIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAibW92bFx0 XFxcJDAsIiB9IH0gKi8NCiAyMiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgIm1vdmxc dFxcXCQyMCwiIH0gfSAqLw0KIDIzIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAicmVw IHN0b3NxIiB9IH0gKi8NCn4gIA0KKioqKioqV2UgaGF2ZSB0aGUgYXNzZW1ibHkgYXM6ICgtZnRy aXZpYWwtYXV0by12YXItaW5pdD16ZXJvKQ0KDQogICAgICAgIC5maWxlICAgImF1dG8taW5pdC0x Ny5jIg0KICAgICAgICAudGV4dA0KICAgICAgICAuZ2xvYmwgIGZvbw0KICAgICAgICAudHlwZSAg IGZvbywgQGZ1bmN0aW9uDQpmb286DQouTEZCMDoNCiAgICAgICAgLmNmaV9zdGFydHByb2MNCiAg ICAgICAgcHVzaHEgICAlcmJwDQogICAgICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYNCiAgICAg ICAgLmNmaV9vZmZzZXQgNiwgLTE2DQogICAgICAgIG1vdnEgICAgJXJzcCwgJXJicA0KICAgICAg ICAuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIgNg0KICAgICAgICBzdWJxICAgICQ0MCwgJXJzcA0KICAg ICAgICBsZWFxICAgIC0xNjAoJXJicCksICVyYXgNCiAgICAgICAgbW92cSAgICAlcmF4LCAlcnNp DQogICAgICAgIG1vdmwgICAgJDAsICVlYXgNCiAgICAgICAgbW92bCAgICAkMjAsICVlZHgNCiAg ICAgICAgbW92cSAgICAlcnNpLCAlcmRpDQogICAgICAgIG1vdnEgICAgJXJkeCwgJXJjeA0KICAg ICAgICByZXAgc3Rvc3ENCiAgICAgICAgbW92emJsICAtMTE2KCVyYnApLCAlZWF4DQogICAgICAg IG1vdnNibCAgJWFsLCAlZWF4DQogICAgICAgIGxlYXZlDQogICAgICAgIC5jZmlfZGVmX2NmYSA3 LCA4DQogICAgICAgIHJldA0KICAgICAgICAuY2ZpX2VuZHByb2MNCi5MRkUwOg0KICAgICAgICAu c2l6ZSAgIGZvbywgLi1mb28NCiAgICAgICAgLnNlY3Rpb24gICAgICAgIC5ub3RlLkdOVS1zdGFj aywiIixAcHJvZ2JpdHMNCg0KRnJvbSB0aGUgYWJvdmUsIHdlIGNhbiBzZWUsICDigJx6ZXJv4oCd IHdpbGwgYmUgdXNlZCB0byBpbml0aWFsaXplIDggKiAyMCA9IDE2ICogMTAgYnl0ZXMgb2YgbWVt b3J5IHN0YXJ0aW5nIGZyb20gdGhlIGJlZ2lubmluZyBvZiDigJx2YXLigJ0sIHRoYXQgaW5jbHVk ZSBhbGwgdGhlIHBhZGRpbmcgaG9sZXMgaW5zaWRlDQpUaGlzIGFycmF5IG9mIHN0cnVjdHVyZS4g DQoNCkkgZGlkbuKAmXQgc2VlIGlzc3VlIHdpdGggcGFkZGluZyBpbml0aWFsaXphdGlvbiBoZXJl Lg0KDQpEbyBJIG1pc3MgYW55dGhpbmcgaGVyZT8NCg0KRm9yIHBhdHRlcm4gaW5pdGlhbGl6YXRp b24sIHNpbmNlIHdlIGN1cnJlbnRseSBpbml0aWFsaXplIGFsbCBwYWRkaW5ncyB3aXRoIDB4RkUg Ynl0ZS1yZXBlYXRhYmxlIHBhdHRlcm5zLCBpZiB0aGUgdGVzdGluZyBjYXNlIHN0aWxsIGFzc3Vt ZXMgemVybyBpbml0aWFsaXphdGlvbiwgdGhlbiB0aGUgdGVzdGluZyBjYXNlcw0KTmVlZCB0byBi ZSB1cGRhdGVkIHdpdGggdGhpcyBmYWN0Lg0KDQo+IEZvciBleGFtcGxlLCBzb21ldGhpbmcgbGlr ZSB0aGlzOg0KPiANCj4gc3RydWN0IHRlc3RfdHJhaWxpbmdfaG9sZSB7DQo+ICAgICAgICBpbnQg b25lOw0KPiAgICAgICAgaW50IHR3bzsNCj4gICAgICAgIGludCB0aHJlZTsNCj4gICAgICAgIGNo YXIgZm91cjsNCj4gICAgICAgIC8qICJzaXplb2YodW5zaWduZWQgbG9uZykgLSAxIiBieXRlIHBh ZGRpbmcgaG9sZSBoZXJlLiAqLw0KPiB9Ow0KPiANCj4gI2RlZmluZSBvZmZzZXRvZmVuZChTVFJV Q1QsIE1FTUJFUikgXA0KPiAgKF9fYnVpbHRpbl9vZmZzZXRvZihTVFJVQ1QsIE1FTUJFUikgKyBz aXplb2YoKCgoU1RSVUNUICopMCktPk1FTUJFUikpKQ0KPiANCj4gaW50IGZvbyAoKQ0KPiB7IA0K PiAgc3RydWN0IHRlc3RfdHJhaWxpbmdfaG9sZSB2YXJbMTBdOw0KPiAgdW5zaWduZWQgY2hhciAq cHRyID0gKHVuc2lnbmVkIGNoYXIgKikmdmFyWzJdOw0KPiAgaW50IGk7DQo+IA0KPiAgZm9yIChp ID0gMDsgaSA8IHNpemVvZih2YXJbMl0pIC0gb2Zmc2V0b2ZlbmQodHlwZW9mKHZhclsyXSksIGZv dXIpOyBpKyspIHsNCj4gICAgaWYgKHB0cltpXSAhPSAwKQ0KPiAgICAgIHJldHVybiAxOw0KPiAg fSANCj4gIHJldHVybiAwOw0KPiB9DQo+IA0KPiBCdXQgdGhpcyBpc24ndCBhY3R1YWxseSBzdWZm aWNpZW50IGJlY2F1c2UgdGhleSBtYXkgX2FjY2lkZW50YWxseV8NCj4gYmUgemVybyBhbHJlYWR5 LiBUaGUga2VybmVsIHRlc3RzIHNwZWNpZmljYWxseSBtYWtlIHN1cmUgdG8gZmlsbCB0aGUNCj4g YWJvdXQtdG8tYmUtdXNlZCBzdGFjayB3aXRoIDB4ZmYgYmVmb3JlIGNhbGxpbmcgYSBmdW5jdGlv biBsaWtlIGZvbygpDQo+IGFib3ZlLg0KPiANCj4gKEFuZCBhcyBhbiBhc2lkZSwgaXQgc2VlbXMg bGlrZSBuYW1pbmcgdGhlIHRlc3QgY2FzZXMgd2l0aCBzb21lIGRldGFpbHMNCj4gYWJvdXQgd2hh dCBpcyBiZWluZyB0ZXN0ZWQgaW4gdGhlIGZpbGVuYW1lIHdvdWxkIGJlIG5pY2UgLS0gaXQgd2Fz DQo+IGEgbGl0dGxlIHdlaXJkIGhhdmluZyB0byBkaWcgdGhyb3VnaCB0aGVpciBudW1lcmljIG5h bWVzIHRvIGZpbmQgdGhlDQo+IHBhZGRpbmcgdGVzdHMuKQ0KDQpZZXMsIEkgd2lsbCBmaXggdGhl IHRlc3RpbmcgbmFtZXMgdG8gbW9yZSByZWZsZWN0IHRoZSB0ZXN0aW5nIGRldGFpbHMuIA0KDQp0 aGFua3MuDQoNClFpbmcNCj4gDQo+IE90aGVyd2lzZSwgdGhpcyBsb29rcyBsaWtlIGl0J3MgY29t aW5nIGFsb25nOyBJIHJlbWFpbiB2ZXJ5IGV4Y2l0ZWQhDQo+IFRoYW5rIHlvdSBmb3Igc3RpY2tp bmcgd2l0aCBpdC4gOikNCj4gDQo+IC1LZWVzDQo+IA0KPiBbMV0gaHR0cHM6Ly9nY2MuZ251Lm9y Zy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMS1GZWJydWFyeS81NjU4NDAuaHRtbA0KPiBbMl0g aHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMS1BcHJpbC81Njc3 NTQuaHRtbA0KPiANCj4gLS0gDQo+IEtlZXMgQ29vaw0KDQo=