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 B4F9839960C9 for ; Thu, 8 Jul 2021 15:01:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B4F9839960C9 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 168EkUh0022658; Thu, 8 Jul 2021 15:00:56 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 39n4yd3c4m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 08 Jul 2021 15:00:55 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 168F0cO6150939; Thu, 8 Jul 2021 15:00:54 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2168.outbound.protection.outlook.com [104.47.59.168]) by userp3020.oracle.com with ESMTP id 39k1p0k4uq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 08 Jul 2021 15:00:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R1zlpjrGTlZnmbWSKpLpjdy5hAZDhnOjHSzWqkxAb32LoaD8NbBSJr/xvKw5vngB7iEqxicGAAMM/G89cxH3wP8adkPt9kR/qwStz8i0hD+1KX1//ZY5d7zIKHSr3HW+Qon4w4OSsCjFeR5Dpy4wf6dDw4MQqgZIz5/aSn4jpzw4DF2dsiAMRUzc73GqCdSxyV0IlgBIVXrwc0hNm6Us4ORBDzN/80VZkQ8/z51boo/kxGfc9M19glB3ZDCjs+SvGctmciAOa3OzvDJoWAdVLcNDjTDk68U0TchHJU4eQDtyzbMfH0wmVatDdNovWGEi4rwM9IWfBh1dsDvLEX83Xg== 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=M7FgLhlsj9Tzv6uSGholdWckoDgRUvKUl6lFcN7rgXw=; b=ik6JLooxWKJtERVc3Ar5b40n6fSbXxz52/Y5kbBGVdk3d7A3lK/Filn3C9ly+1ggk4bFI2huxSPOEVsxGxtjrC3kwHCYONRb3lNE8UVgs24ZPLw8vcaHr/K7KDhcQxQWZ4U2aerQ0De+wrEeZ+0KPGmsIjZEZfuliio2gF/xu38xGMsUl6inf/MGVyEmtErbEBE/4Ugz3f6ZwoNSrc/05LcWyGrZS7nHIjC3VezVLcnjJ5HNtG6kHrR/gONKap/Xx2M7FWgBkVHlYC0l8I7kZtOdYwKHXcrHYiwYkQ7Bwae52jENzisn8NQYu6flJ6CxM0byonDoUFGApiSg1hPsCA== 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 CH0PR10MB4889.namprd10.prod.outlook.com (2603:10b6:610:d9::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20; Thu, 8 Jul 2021 15:00:34 +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.023; Thu, 8 Jul 2021 15:00:34 +0000 From: Qing Zhao To: Martin Jambor , Richard Sandiford CC: Richard Biener , kees cook , 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/0GDGBORAHTjkKs5E/UAgAAZXAA= Date: Thu, 8 Jul 2021 15:00:33 +0000 Message-ID: References: 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: 65d46e69-7e85-4788-3072-08d94221231e x-ms-traffictypediagnostic: CH0PR10MB4889: 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: 77wZrJrGooBjCgG60BFaQl0DgoxyoHKumX4dn4CCjV/Z/x/8IyabS+NS1PTcPg5GNTc1pzCX6ZZdUvyrZT9vucPmOC5mUIK2+eM1MjLnKc5ER+uovf5pwGWLYDT0/dlFUX5GW5ZCk/O9ULPyrnnw+gEUBBR8HCZZQuTP9pnkr+u8ZDVi4+w2Vfe5fIPLYjzSCBcf9ktVUTlT6DohI/aOy1N5UBJVs0VqaqZF3LJLpAE4ghiAGv3cVVURztOlrFaX1O0XDvTtW9JEkO31YOMPU857jBk0/lobd6x+u9mw0NCs06nVfwgjut1iPUpfi3sGAR0gXANslu1rj1bLjwwRS7XvhAqyE+jHG2VILJ30nqSiI7++oXB3PYMx0q/Do0hwsdPB3cKkMVmIVxf/6YKbjuAUdAXZsvjLk//P3LCpNNgTI+QhyiBsy//MTLdsibGJgoQxwpzazEgkZfNA2rCAX0j4a9NRkYNpijwNtloTgXHk++EMYrHW5QO4mOILHD+mTtLYCigNBl/0gkNAnHdoJY0NXuo2ZyAQjwcr+mbEndXclUPk5B5lpwpqyXqYavCLMKQcYPnO8TG9xNRa25IZzBbty7FWjcKEDMF3qObExPdIIkBG/D7MVnYJ1KXw543fNymdMG4F5gl97CaMzJeh+zK7TQET419MkzfoTMXFllmJmfjWqGUUlvHEis184MyqE+rpLHzWlywt/KMC/wXEsdhskrGgdVKXqb2jkoDg4KDaWDk/GhAEWBqRxG1PUkdGR0UCB9ehxcZkGvC9iwdsKzAHCkoZsGXkdT7kE1BImLQ= 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:(39860400002)(376002)(396003)(346002)(366004)(136003)(91956017)(76116006)(86362001)(166002)(66556008)(6512007)(6506007)(478600001)(83380400001)(36756003)(21615005)(53546011)(66946007)(64756008)(66476007)(66446008)(2616005)(2906002)(44832011)(54906003)(110136005)(5660300002)(8936002)(6486002)(71200400001)(122000001)(33656002)(4326008)(8676002)(186003)(38100700002)(316002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SDIyWjlPSXZrQ09mWVBNUU1JRWFFUWEyTko2TlFROTJKenNwZDVnUEhPZFF2?= =?utf-8?B?SXRTL2JqcmpLdW5nbWx3V3kvdGNyQmxUa0lUOWs3czkxbE9hOS9CbGxmT2dp?= =?utf-8?B?T3dJWDhvZnp0ajZ4RFVrdGIweGNQNWd5VkRyNkdzYjhrVk85THpaS3BJVkY3?= =?utf-8?B?c3oxY21meEh2SGhFY2diNFhLSktjOUhPci84VWhPcFJyTUVGbzI1Z1Q4d3Bh?= =?utf-8?B?MmtOUFYwMisrYmdkYkJUQmxaQnRBMmxWUkhBZEF2RHlVS0xCOEFHQUc3RDBt?= =?utf-8?B?SmNpZ05sNEx0WGxkMS9qR3FzemRoRmZEMXg1R3hOUUJWbG1ibXB3bDZsVmNE?= =?utf-8?B?cWdyT3g3Tmh4a0VJY0RUY2UrVzl5T25XOGpjSFBLV0FILysxOVNlODlvRFBF?= =?utf-8?B?eVNZSmtCWnl3ejhqQ1p1cjVFNjNrTU1tM1QzVXhlZEJTTEpKL05xeHkzNTB1?= =?utf-8?B?R0JldkV3a0MvTEg2Z3VjNnRwQW9wTjVqOUNraC8wdVpBRVprMHphQ29CVFJQ?= =?utf-8?B?TzFnR0hWd0pKeElwbVdDZW14UjB1ZkU5eDNMQmFEWDdWMytNSFRaSTdHeERa?= =?utf-8?B?OFJUaEJXMnkvTGZLbkpueUpqcUJSQXo0S2pWTEVFV2kyelNBR0tTQ3dSQWh0?= =?utf-8?B?ZjdXaXFnbnFoN2ZhbmtHazl2eWtoemE5Uk1mZ2FLQ2FhTVJiaWtqb0JneTh2?= =?utf-8?B?NWJTa2tHSFVHbUdZMlVML1lnclRsbmFpWkhIemxtWEtHMEE4US92Q09UK3VX?= =?utf-8?B?UjA4UmxUUFEvODJqMXRqSk1nMkp6Mm8xK0pOaVQxUGhqTUt1VHdMSU1RdkpV?= =?utf-8?B?VWh1ZUs4MkZHd3VNeStIajNUcTZCSnRQeU1IUENjbFlxZkxqYUtBS1ZZUDM5?= =?utf-8?B?YnRRKzNPSWJ1NGE4K210V1ByVk9yOFY1S1NnNWdiVVJMNjMrY2xiUkZ1Vndr?= =?utf-8?B?MkoveWIraHFqSVVLNEtsZTVneHhDK2xoZGlBYmdBUGtYR3FmRWJlaDFRRmh3?= =?utf-8?B?bTJIelRyVDZqM1MwbVhWWnFSRHE1WGpZRGt0RUdPNUZLcGZnUjY2bjl4T2Rj?= =?utf-8?B?a2F6ODBNaCsxUnBpLzJQSkhjOVdPWUJDbFVkQ3p6MGtaQU1yY1dxd01kNFdC?= =?utf-8?B?Q3kvUEZEVFZ6anM5YnpJWmhxdFBOdUFMbDN2SnRaenBxNTVBalY3YnVQL0V0?= =?utf-8?B?SGNZWEVxODNnTk5HNUFGaU1EbEs5SVZZbEpFQVZQSUYyOHdjV0MxL3YyK1pO?= =?utf-8?B?Nk5mWi9iR3V2UkJuZ2NrQ2c2MUtsWVdPbVl2R0ZpWXpMdG0zbjdXZENtMEhO?= =?utf-8?B?bWN2dUxHZnVMWU9QVzFWWEFuVmYyd2trS1l3ZVk1TjJHUjFpUUlvbXc2RmxR?= =?utf-8?B?OEJ6QTBBeW0rQ1NBbGVqRFArS0cveGZMclVnTStiQ29HbmN1T2g5aFNISHlK?= =?utf-8?B?bEdMZ2lrdnBoWjVZL1hETmptY3R0WjgzcC9pbW1EcDNJcUZjdHlaR3ZhbWtp?= =?utf-8?B?NmlOQ1lzNlZKMEZBWTVkY3pyRDduY29rT0hMTzJrYUN3SnNsR2t0MWdGVXds?= =?utf-8?B?YmcvZ3dua2FhanAwenpxTm9mODgyZmhIdHJ4WnRtcjhud3pZaU9SZlhGV3NN?= =?utf-8?B?V1JQczQzaEJ5T3VNZWZtN1BEQ1FTQUwzTEprRFBKU1lGMERadWhlTDBBNFZq?= =?utf-8?B?c1Vya29ic2JwQU1JL1ZJQ09kMHBnUm53Yk5GU0FDUjh1YzFpVUhSSHM4bVQ0?= =?utf-8?B?ZlZTYjArSHRMampTZGNoeDgvV0orOHcrTjJ0bWdFaUNxVW1BenFDYXRPMlQ4?= =?utf-8?B?LzBNQzNVV2tHSGhxWnoydlN0cFcvNlZjWmw4cVlrYTFtUVJpSkxkWHEreW82?= =?utf-8?Q?hfJlxft/CD5Fo?= x-ms-exchange-transport-forked: True 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: 65d46e69-7e85-4788-3072-08d94221231e X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jul 2021 15:00:33.9702 (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: KNsQRH248CroR5TZz5UwydNr4ycV0/LeXtO1E+pASGYlC04DOfdKNQsNyoSE7P+OnETI7YDOMvawTGHKbJOdbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4889 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10039 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107080080 X-Proofpoint-GUID: EudQSsmo5yhQKxtRHrmysejjXiCtlzGu X-Proofpoint-ORIG-GUID: EudQSsmo5yhQKxtRHrmysejjXiCtlzGu X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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, 08 Jul 2021 15:01:03 -0000 SGksIE1hcnRpbiwNCg0KVGhhbmsgeW91IGZvciB0aGUgcmV2aWV3IGFuZCBjb21tZW50Lg0KDQpP biBKdWwgOCwgMjAyMSwgYXQgODoyOSBBTSwgTWFydGluIEphbWJvciA8bWphbWJvckBzdXNlLmN6 PG1haWx0bzptamFtYm9yQHN1c2UuY3o+PiB3cm90ZToNCg0KZGlmZiAtLWdpdCBhL2djYy90cmVl LXNyYS5jIGIvZ2NjL3RyZWUtc3JhLmMNCmluZGV4IGMwNWQyMmYzZThmMS4uMzUwNTFkN2M2Yjk2 IDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtc3JhLmMNCisrKyBiL2djYy90cmVlLXNyYS5jDQpAQCAt Mzg0LDYgKzM4NCwxMyBAQCBzdGF0aWMgc3RydWN0DQoNCiAgLyogTnVtYmJlciBvZiBjb21wb25l bnRzIGNyZWF0ZWQgd2hlbiBzcGxpdHRpbmcgYWdncmVnYXRlIHBhcmFtZXRlcnMuICAqLw0KICBp bnQgcGFyYW1fcmVkdWN0aW9uc19jcmVhdGVkOw0KKw0KKyAgLyogTnVtYmVyIG9mIGRlZmVycmVk X2luaXQgY2FsbHMgdGhhdCBhcmUgbW9kaWZpZWQuICAqLw0KKyAgaW50IGRlZmVycmVkX2luaXQ7 DQorDQorICAvKiBOdW1iZXIgb2YgZGVmZXJyZWRfaW5pdCBjYWxscyB0aGF0IGFyZSBjcmVhdGVk IGJ5DQorICAgICBnZW5lcmF0ZV9zdWJ0cmVlX2RlZmVycmVkX2luaXQuICAqLw0KKyAgaW50IHN1 YnRyZWVfZGVmZXJyZWRfaW5pdDsNCn0gc3JhX3N0YXRzOw0KDQpzdGF0aWMgdm9pZA0KQEAgLTQw OTYsNiArNDEwMywxMTAgQEAgZ2V0X3JlcGxfZGVmYXVsdF9kZWZfc3NhX25hbWUgKHN0cnVjdCBh Y2Nlc3MgKnJhY2MsIHRyZWUgcmVnX3R5cGUpDQogIHJldHVybiBnZXRfb3JfY3JlYXRlX3NzYV9k ZWZhdWx0X2RlZiAoY2Z1biwgcmFjYy0+cmVwbGFjZW1lbnRfZGVjbCk7DQp9DQoNCisNCisvKiBH ZW5lcmF0ZSBzdGF0ZW1lbnRzIHRvIGNhbGwgLkRFRkVSUkVEX0lOSVQgdG8gaW5pdGlhbGl6ZSBz Y2FsYXIgcmVwbGFjZW1lbnRzDQorICAgb2YgYWNjZXNzZXMgd2l0aGluIGEgc3VidHJlZSBBQ0NF U1M7IGFsbCBpdHMgY2hpbGRyZW4sIHNpYmxpbmdzIGFuZCB0aGVpcg0KKyAgIGNoaWxkcmVuIGFy ZSB0byBiZSBwcm9jZXNzZWQuDQorICAgR1NJIGlzIGEgc3RhdGVtZW50IGl0ZXJhdG9yIHVzZWQg dG8gcGxhY2UgdGhlIG5ldyBzdGF0ZW1lbnRzLiAgKi8NCitzdGF0aWMgdm9pZA0KK2dlbmVyYXRl X3N1YnRyZWVfZGVmZXJyZWRfaW5pdCAoc3RydWN0IGFjY2VzcyAqYWNjZXNzLA0KKyB0cmVlIGlu aXRfdHlwZSwNCisgdHJlZSBpc192bGEsDQorIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksDQor IGxvY2F0aW9uX3QgbG9jKQ0KK3sNCisgIGRvDQorICAgIHsNCisgICAgICBpZiAoYWNjZXNzLT5n cnBfdG9fYmVfcmVwbGFjZWQpDQorIHsNCisgIHRyZWUgcmVwbCA9IGdldF9hY2Nlc3NfcmVwbGFj ZW1lbnQgKGFjY2Vzcyk7DQorICBnaW1wbGUgKmNhbGwNCisgICAgPSBnaW1wbGVfYnVpbGRfY2Fs bF9pbnRlcm5hbCAoSUZOX0RFRkVSUkVEX0lOSVQsIDMsDQorICBUWVBFX1NJWkVfVU5JVCAoVFJF RV9UWVBFIChyZXBsKSksDQorICBpbml0X3R5cGUsIGlzX3ZsYSk7DQorICBnaW1wbGVfY2FsbF9z ZXRfbGhzIChjYWxsLCByZXBsKTsNCisgIGdzaV9pbnNlcnRfYmVmb3JlIChnc2ksIGNhbGwsIEdT SV9TQU1FX1NUTVQpOw0KKyAgdXBkYXRlX3N0bXQgKGNhbGwpOw0KKyAgZ2ltcGxlX3NldF9sb2Nh dGlvbiAoY2FsbCwgbG9jKTsNCisgIHNyYV9zdGF0cy5zdWJ0cmVlX2RlZmVycmVkX2luaXQrKzsN CisgfQ0KKyAgICAgIGVsc2UgaWYgKGFjY2Vzcy0+Z3JwX3RvX2JlX2RlYnVnX3JlcGxhY2VkKQ0K KyB7DQorICB0cmVlIGRyZXBsID0gZ2V0X2FjY2Vzc19yZXBsYWNlbWVudCAoYWNjZXNzKTsNCisg IHRyZWUgY2FsbCA9IGJ1aWxkX2NhbGxfZXhwcl9pbnRlcm5hbF9sb2MNCisgICAgIChVTktOT1dO X0xPQ0FUSU9OLCBJRk5fREVGRVJSRURfSU5JVCwNCisgICAgICBUUkVFX1RZUEUgKGRyZXBsKSwg MywNCisgICAgICBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChkcmVwbCkpLA0KKyAgICAgIGlu aXRfdHlwZSwgaXNfdmxhKTsNCisgIGdkZWJ1ZyAqZHMgPSBnaW1wbGVfYnVpbGRfZGVidWdfYmlu ZCAoZHJlcGwsIGNhbGwsDQorIGdzaV9zdG10ICgqZ3NpKSk7DQorICBnc2lfaW5zZXJ0X2JlZm9y ZSAoZ3NpLCBkcywgR1NJX1NBTUVfU1RNVCk7DQoNCklzIGhhbmRsaW5nIG9mIGdycF90b19iZV9k ZWJ1Z19yZXBsYWNlZCBhY2Nlc3NlcyBuZWNlc3NhcnkgaGVyZT8gIElmIHNvLA0Kd2h5PyAgZ3Jw X3RvX2JlX2RlYnVnX3JlcGxhY2VkIGFjY2Vzc2VzIGFyZSB0aGVyZSBvbmx5IHRvIGZhY2lsaXRh dGUNCmRlYnVnIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydCBvZiBhbiBhZ2dyZWdhdGUgZGVjbCBp cyB0aGF0IGlzIGxpa2VseQ0KZ29pbmcgdG8gYmUgZW50aXJlbHkgcmVtb3ZlZCAtIHNvIHRoYXQg ZGVidWdnZXJzIGNhbiBzb21ldGltZXMgc2hvdyB0bw0KdXNlcnMgaW5mb3JtYXRpb24gYWJvdXQg d2hhdCB0aGV5IHdvdWxkIGNvbnRhaW4gaGFkIHRoZXkgbm90IHJlbW92ZWQuDQpJdCBzZWVtcyBz dHJhbmdlIHlvdSBuZWVkIHRvIG1hcmsgdGhlbSBhcyB1bmluaXRpYWxpemVkIGJlY2F1c2UgdGhl eQ0Kc2hvdWxkIG5vdCBoYXZlIGFueSBjb25zdW1lcnMuICAoQnV0IHBlcmhhcHMgaXQgaXMgYWxz byBoYXJtbGVzcy4pDQoNClRoaXMgcGFydCBoYXMgYmVlbiBkaXNjdXNzZWQgZHVyaW5nIHRoZSAy bmQgdmVyc2lvbiBvZiB0aGUgcGF0Y2gsIGJ1dCBJIHRoaW5rIHRoYXQgbW9yZSBkaXNjdXNzaW9u IG1pZ2h0IGJlIG5lY2Vzc2FyeS4NCg0KSW4gdGhlIHByZXZpb3VzIGRpc2N1c3Npb24sIFJpY2hh cmQgU2FuZGlmb3JkIG1lbnRpb25lZDogKGh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2dj Yy1wYXRjaGVzLzIwMjEtQXByaWwvNTY4NjIwLmh0bWwpOg0KDQo9PT09PQ0KDQpJIGd1ZXNzIHRo ZSB0aGluZyB3ZSBuZWVkIHRvIGRlY2lkZSBoZXJlIGlzIHdoZXRoZXIgLWZ0cml2aWFsLWF1dG8t dmFyLWluaXQNCnNob3VsZCBhZmZlY3QgZGVidWctb25seSBjb25zdHJ1Y3RzIHRvby4gIElmIGl0 IGRvZXNuJ3QsIGV4bWFpbmluZyByZW1vdmVkDQpjb21wb25lbnRzIGluIGEgZGVidWdnZXIgbWln aHQgc2hvdyB1bmluaXRpYWxpc2VkIHZhbHVlcyBpbiBjYXNlcyB3aGVyZQ0KdGhlIHVzZXIgd2Fz IGV4cGVjdGluZyBpbml0aWFsaXNlZCBvbmVzLiAgVGhlcmUgd291bGQgYmUgbm8gc2VjdXJpdHkN CmNvbmNlcm4sIGJ1dCBpdCBtaWdodCBiZSBzdXJwcmlzaW5nLg0KDQpJIHRoaW5rIGluIHByaW5j aXBsZSB0aGUgRFJIUyBjYW4gY29udGFpbiBhIGNhbGwgdG8gREVGRVJSRURfSU5JVC4NCkRvaW5n IHRoYXQgd291bGQgcHJvYmFibHkgcmVxdWlyZSBmdXJ0aGVyIGhhbmRsaW5nIGVsc2V3aGVyZSB0 aG91Z2guDQoNCj09PT09DQoNCkkgYW0gc3RpbGwgbm90IHZlcnkgY29uZmlkZW50IG5vdyBmb3Ig dGhpcyBwYXJ0IG9mIHRoZSBjaGFuZ2UuDQoNCk15IHF1ZXN0aW9uczoNCg0KMS4gSWYgd2UgZG9u 4oCZdCBoYW5kbGUgZ3JwX3RvX2JlX2RlYnVnX3JlcGxhY2VkIGF0IGFsbCwgd2hhdCB3aWxsIGhh cHBlbj8gICggdGhlIHVzZXIgb2YgdGhlIGRlYnVnZ2VyIHdpbGwgc2VlIHVuaW5pdGlhbGl6ZWQg dmFsdWVzIGluDQp0aGUgcmVtb3ZlZCBwYXJ0IG9mIHRoZSBhZ2dyZWdhdGU/ICBPciBzb21ldGhp bmcgZWxzZT8pDQoyLiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgd2UgaGFuZGxlIGdycF90b19iZV9k ZWJ1Z19yZXBsYWNlZCBhcyB0aGUgY3VycmVudCBwYXRjaCwgd2hhdCB3aWxsIHRoZSB1c2VyIG9m IHRoZSBkZWJ1Z2dlciBzZWU/DQoNCg0KDQpPbiBhIHJlbGF0ZWQgbm90ZSwgaWYgdGhlIGludGVu dCBvZiB0aGUgZmVhdHVyZSBpcyBmb3Igb3B0aW1pemVycyB0bw0KYmVoYXZlIChhbG1vc3Q/KSBh cyBpZiBpdCB3YXMgbm90IHRha2luZyBwbGFjZSwNCg0KV2hhdOKAmXMgeW91IG1lYW4gYnkg4oCc aXTigJ0gaGVyZT8NCkkgYmVsaWV2ZSB5b3UgbmVlZCB0bw0KaGFuZGxlIHNwZWNpYWxseSwgYW5k IHByb2JhYmx5IGp1c3QgaWdub3JlLCBjYWxscyB0byBJRk5fREVGRVJSRURfSU5JVA0KaW4gc2Nh bl9mdW5jdGlvbiBpbiB0cmVlLXNyYS5jLg0KDQpEbyB5b3UgbWVhbiB0byBsZXQgdHJlZS1zcmEg cGhhc2UgaWdub3JlIElGTl9ERUZFUlJFRF9JTklUIGNhbGxzIGNvbXBsZXRlbHk/DQoNCk15IG1h am9yIHB1cnBvc2Ugb2YgY2hhbmdlIHRyZWUtc3JhLmMgcGhhc2UgaXM6DQoNCkNoYW5nZToNCg0K dG1wID0gLkRFRkVSUkVEX0lOSVQgKDI0LCAyLCAwKQ0KDQpUbw0KDQp0bXAxID0gLkRFRkVSUkVE X0lOSVQgKDgsIDIsIDApOw0KdG1wMiA9IC5ERUZFUlJFRF9JTklUICg4LCAyLCAwKTsNCnRtcDMg PSAuREVGRVJSRURfSU5JVCAoOCwgMiwgMCk7DQoNCkRvaW5nIHRoaXMgaXMgdG8gcmVkdWNlIHRo ZSBzdGFjayB1c2FnZS4NCg0KIE90aGVyd2lzZSB0aGUgZ2VuZXJhdGVkIFNSQSBhY2Nlc3MNCnN0 cnVjdHVyZXMgd2lsbCBoYXZlIGV4dHJhIHdyaXRlIGZsYWdzIHR1cm5lZCBvbiBpbiB0aGVtIGFu ZCB0aGF0IHdpbGwNCmxlYWQgdG8gZGlmZmVyZW50IGJlaGF2aW9yIG9mIHRoZSBwYXNzLg0KDQpD b3VsZCB5b3UgcGxlYXNlIGV4cGxhaW4gdGhpcyBtb3JlPw0KDQp0aGFua3MuDQoNClFpbmcNCg0K TWFydGluDQoNCg0KDQorIH0NCisgICAgICBpZiAoYWNjZXNzLT5maXJzdF9jaGlsZCkNCisgZ2Vu ZXJhdGVfc3VidHJlZV9kZWZlcnJlZF9pbml0IChhY2Nlc3MtPmZpcnN0X2NoaWxkLCBpbml0X3R5 cGUsDQorIGlzX3ZsYSwgZ3NpLCBsb2MpOw0KKw0KKyAgICAgIGFjY2VzcyA9IGFjY2VzcyAtPm5l eHRfc2libGluZzsNCisgICAgfQ0KKyAgd2hpbGUgKGFjY2Vzcyk7DQorfQ0KKw0KKy8qIEZvciBh IGNhbGwgdG8gLkRFRkVSUkVEX0lOSVQ6DQorICAgdmFyID0gLkRFRkVSUkVEX0lOSVQgKHNpemVf b2ZfdmFyLCBpbml0X3R5cGUsIGlzX3ZsYSk7DQorICAgZXhhbWluZSB0aGUgTEhTIHZhcmlhYmxl IFZBUiBhbmQgcmVwbGFjZSBpdCB3aXRoIGEgc2NhbGFyIHJlcGxhY2VtZW50IGlmDQorICAgdGhl cmUgaXMgb25lLCBhbHNvIHJlcGxhY2UgdGhlIFJIUyBjYWxsIHRvIGEgY2FsbCB0byAuREVGRVJS RURfSU5JVCBvZg0KKyAgIHRoZSBjb3JyZXNwb25kaW5nIHNjYWxhciByZWxhY2VtZW50IHZhcmlh YmxlLiAgRXhhbWluZSB0aGUgc3VidHJlZSBhbmQNCisgICBkbyB0aGUgc2NhbGFyIHJlcGxhY2Vt ZW50cyBpbiB0aGUgc3VidHJlZSB0b28uICBTVE1UIGlzIHRoZSBjYWxsLCBHU0kgaXMNCisgICB0 aGUgc3RhdG1lbnQgaXRlcmF0b3IgdG8gcGxhY2UgbmV3bHkgY3JlYXRlZCBzdGF0ZW1lbnQuICAq Lw0KKw0KK3N0YXRpYyBlbnVtIGFzc2lnbm1lbnRfbW9kX3Jlc3VsdA0KK3NyYV9tb2RpZnlfZGVm ZXJyZWRfaW5pdCAoZ2ltcGxlICpzdG10LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpKQ0KK3sN CisgIHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxfbGhzIChzdG10KTsNCisgIHRyZWUgaW5pdF90eXBl ID0gZ2ltcGxlX2NhbGxfYXJnIChzdG10LCAxKTsNCisgIHRyZWUgaXNfdmxhID0gZ2ltcGxlX2Nh bGxfYXJnIChzdG10LCAyKTsNCisNCisgIHN0cnVjdCBhY2Nlc3MgKmxoc19hY2Nlc3MgPSBnZXRf YWNjZXNzX2Zvcl9leHByIChsaHMpOw0KKyAgaWYgKCFsaHNfYWNjZXNzKQ0KKyAgICByZXR1cm4g U1JBX0FNX05PTkU7DQorDQorICBsb2NhdGlvbl90IGxvYyA9IGdpbXBsZV9sb2NhdGlvbiAoc3Rt dCk7DQorDQorICBpZiAobGhzX2FjY2Vzcy0+Z3JwX3RvX2JlX3JlcGxhY2VkKQ0KKyAgICB7DQor ICAgICAgdHJlZSBsaHNfcmVwbCA9IGdldF9hY2Nlc3NfcmVwbGFjZW1lbnQgKGxoc19hY2Nlc3Mp Ow0KKyAgICAgIGdpbXBsZV9jYWxsX3NldF9saHMgKHN0bXQsIGxoc19yZXBsKTsNCisgICAgICB0 cmVlIGFyZzBfcmVwbCA9IFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKGxoc19yZXBsKSk7DQor ICAgICAgZ2ltcGxlX2NhbGxfc2V0X2FyZyAoc3RtdCwgMCwgYXJnMF9yZXBsKTsNCisgICAgICBz cmFfc3RhdHMuZGVmZXJyZWRfaW5pdCsrOw0KKyAgICB9DQorICBlbHNlIGlmIChsaHNfYWNjZXNz LT5ncnBfdG9fYmVfZGVidWdfcmVwbGFjZWQpDQorICAgIHsNCisgICAgICB0cmVlIGxoc19kcmVw bCA9IGdldF9hY2Nlc3NfcmVwbGFjZW1lbnQgKGxoc19hY2Nlc3MpOw0KKyAgICAgIHRyZWUgY2Fs bCA9IGJ1aWxkX2NhbGxfZXhwcl9pbnRlcm5hbF9sb2MNCisgIChVTktOT1dOX0xPQ0FUSU9OLCBJ Rk5fREVGRVJSRURfSU5JVCwNCisgIFRSRUVfVFlQRSAobGhzX2RyZXBsKSwgMywNCisgIFRZUEVf U0laRV9VTklUIChUUkVFX1RZUEUgKGxoc19kcmVwbCkpLA0KKyAgaW5pdF90eXBlLCBpc192bGEp Ow0KKyAgICAgIGdkZWJ1ZyAqZHMgPSBnaW1wbGVfYnVpbGRfZGVidWdfYmluZCAobGhzX2RyZXBs LCBjYWxsLA0KKyAgICBnc2lfc3RtdCAoKmdzaSkpOw0KKyAgICAgIGdzaV9pbnNlcnRfYmVmb3Jl IChnc2ksIGRzLCBHU0lfU0FNRV9TVE1UKTsNCisgICAgfQ0KKw0KKyAgaWYgKGxoc19hY2Nlc3Mt PmZpcnN0X2NoaWxkKQ0KKyAgICBnZW5lcmF0ZV9zdWJ0cmVlX2RlZmVycmVkX2luaXQgKGxoc19h Y2Nlc3MtPmZpcnN0X2NoaWxkLA0KKyAgICBpbml0X3R5cGUsIGlzX3ZsYSwgZ3NpLCBsb2MpOw0K KyAgaWYgKGxoc19hY2Nlc3MtPmdycF9jb3ZlcmVkKQ0KKyAgICB7DQorICAgICAgdW5saW5rX3N0 bXRfdmRlZiAoc3RtdCk7DQorICAgICAgZ3NpX3JlbW92ZSAoZ3NpLCB0cnVlKTsNCisgICAgICBy ZWxlYXNlX2RlZnMgKHN0bXQpOw0KKyAgICAgIHJldHVybiBTUkFfQU1fUkVNT1ZFRDsNCisgICAg fQ0KKw0KKyAgcmV0dXJuIFNSQV9BTV9NT0RJRklFRDsNCit9DQorDQovKiBFeGFtaW5lIGJvdGgg c2lkZXMgb2YgdGhlIGFzc2lnbm1lbnQgc3RhdGVtZW50IHBvaW50ZWQgdG8gYnkgU1RNVCwgcmVw bGFjZQ0KICAgdGhlbSB3aXRoIGEgc2NhbGFyZSByZXBsYWNlbWVudCBpZiB0aGVyZSBpcyBvbmUg YW5kIGdlbmVyYXRlIGNvcHlpbmcgb2YNCiAgIHJlcGxhY2VtZW50cyBpZiBzY2FsYXJpemVkIGFn Z3JlZ2F0ZXMgaGF2ZSBiZWVuIHVzZWQgaW4gdGhlIGFzc2lnbm1lbnQuICBHU0kNCkBAIC00NDYw LDE3ICs0NTcxLDI3IEBAIHNyYV9tb2RpZnlfZnVuY3Rpb25fYm9keSAodm9pZCkNCiAgICAgYnJl YWs7DQoNCiAgIGNhc2UgR0lNUExFX0NBTEw6DQotICAgICAgLyogT3BlcmFuZHMgbXVzdCBiZSBw cm9jZXNzZWQgYmVmb3JlIHRoZSBsaHMuICAqLw0KLSAgICAgIGZvciAoaSA9IDA7IGkgPCBnaW1w bGVfY2FsbF9udW1fYXJncyAoc3RtdCk7IGkrKykNCisgICAgICAvKiBIYW5kbGUgY2FsbHMgdG8g LkRFRkVSUkVEX0lOSVQgc3BlY2lhbGx5LiAgKi8NCisgICAgICBpZiAoZ2ltcGxlX2NhbGxfaW50 ZXJuYWxfcCAoc3RtdCwgSUZOX0RFRkVSUkVEX0lOSVQpKQ0Kew0KLSAgdCA9IGdpbXBsZV9jYWxs X2FyZ19wdHIgKHN0bXQsIGkpOw0KLSAgbW9kaWZpZWQgfD0gc3JhX21vZGlmeV9leHByICh0LCAm Z3NpLCBmYWxzZSk7DQorICBhc3NpZ25fcmVzdWx0ID0gc3JhX21vZGlmeV9kZWZlcnJlZF9pbml0 IChzdG10LCAmZ3NpKTsNCisgIG1vZGlmaWVkIHw9IGFzc2lnbl9yZXN1bHQgPT0gU1JBX0FNX01P RElGSUVEOw0KKyAgZGVsZXRlZCA9IGFzc2lnbl9yZXN1bHQgPT0gU1JBX0FNX1JFTU9WRUQ7DQp9 DQotDQotICAgICAgaWYgKGdpbXBsZV9jYWxsX2xocyAoc3RtdCkpDQorICAgICAgZWxzZQ0Kew0K LSAgdCA9IGdpbXBsZV9jYWxsX2xoc19wdHIgKHN0bXQpOw0KLSAgbW9kaWZpZWQgfD0gc3JhX21v ZGlmeV9leHByICh0LCAmZ3NpLCB0cnVlKTsNCisgIC8qIE9wZXJhbmRzIG11c3QgYmUgcHJvY2Vz c2VkIGJlZm9yZSB0aGUgbGhzLiAgKi8NCisgIGZvciAoaSA9IDA7IGkgPCBnaW1wbGVfY2FsbF9u dW1fYXJncyAoc3RtdCk7IGkrKykNCisgICAgew0KKyAgICAgIHQgPSBnaW1wbGVfY2FsbF9hcmdf cHRyIChzdG10LCBpKTsNCisgICAgICBtb2RpZmllZCB8PSBzcmFfbW9kaWZ5X2V4cHIgKHQsICZn c2ksIGZhbHNlKTsNCisgICAgfQ0KKw0KKyAgICAgICAgaWYgKGdpbXBsZV9jYWxsX2xocyAoc3Rt dCkpDQorICAgIHsNCisgICAgICB0ID0gZ2ltcGxlX2NhbGxfbGhzX3B0ciAoc3RtdCk7DQorICAg ICAgbW9kaWZpZWQgfD0gc3JhX21vZGlmeV9leHByICh0LCAmZ3NpLCB0cnVlKTsNCisgICAgfQ0K fQ0KICAgICBicmVhazsNCg0KDQo=