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 521993853C28 for ; Tue, 17 Aug 2021 14:53:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 521993853C28 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17HErTVn006922; Tue, 17 Aug 2021 14:53:29 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3afgmbc4e3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 14:53:29 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17HEorVw155931; Tue, 17 Aug 2021 14:53:28 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2173.outbound.protection.outlook.com [104.47.56.173]) by aserp3020.oracle.com with ESMTP id 3ae5n7q5kk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 14:53:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NTdnX4S2VF2Wm8XAwVv349AzuFkTA4cQmp67kHSn50nEdEcdBEsvxZ84Hzn/03fD1xLCDO13caFkWezer83f/Kglr1/lsHFSuAbPeKWvFMrZ6QZBmdr76/vHm+DRs0ECi5VHy3zGeYiwkkzd9CtK0fnFO9TzeGOMSGfW4WEYxZytU5CdxtWrm4WpWsumExxXnMcj1UuSSjJ8CcGNXNP4rGgJ0c2jBp4LhihpkEFb/+9mcSQiSstPJVp4IvONtlTHbsbyORdYbAzzdnpCnuXxZnSNjIlS+yrpuAn71mWWGOMHZvrYSqgL+MEdpJ7KidNFP+xfBHbHrDL/xfaCaoU3vA== 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=k2VHjaNpdrdVVngOp7LPlhexsgoi+2eyAImi4FCyhoM=; b=PXNVRxg5N3cPD5os3YzhKnvfJiBEFwUULGC4iLz+p+NsR0btKpFTxXK2JwUsltf1O1S1OlMjLMbhk6c53ZeKgtBCc6WcuyiTX7v4amjrqsjR3CNtSWpMkk0U7/7LplFPv12krTpfxQSH7/9w9KlHq6wQcCVCibICf2esWVxIVB9Iwq7sPw0JOACxpArj25M2yv/hZ6O+Ee7fyvcJsHUV2rmctur9mL+0uwKje6+kPuhCXMqUAEuANe5DI2VoN6nookRBXBWTKcZk0lSRRdNVD9ABmfCOsx6pxR5bUFUZR9YY5K+Az8VGs/91cbSDnPTqoAFHOg60spmMWFeWLIi8/g== 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.4415.17; Tue, 17 Aug 2021 14:53:24 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547%9]) with mapi id 15.20.4415.024; Tue, 17 Aug 2021 14:53:24 +0000 From: Qing Zhao To: Richard Biener CC: Martin Jambor , Jakub Jelinek , Kees Cook , Nick Alcock via Gcc-patches , Richard Biener Subject: Re: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAUO6ICABYSmgIAAy6WAgADYMQCAAFltAIAAC8EAgAACToA= Date: Tue, 17 Aug 2021 14:53:24 +0000 Message-ID: <3368C2C3-1401-42D7-9423-E424CA81608B@oracle.com> References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <517EA40B-9500-4090-8F03-B4A9CECC62F8@oracle.com> <6987380F-4DF9-4A42-9989-C1991E0BE3FA@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: f028b24a-9d19-42a2-6e25-08d9618ec3ae x-ms-traffictypediagnostic: CH2PR10MB4008: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gHiqv7pAq1Wh8S1wfCuYe2FBS1qW0fjPx8MLJ3aKQm8h+PaL2CQSBf+efFvfHhPHcSqMLLrU9vrhPBaypEDOmoeeeEfaFSa9cv6Ph0ZKAt7eCPKH+NpL6E6QwJcX9VTuFFZUBiJdFRJeTaIfNzTu+pWjvg1ftSBNRMioBcX6GdjJy1U1d0PxnsqGDo6kPV33gpaktUpMYqVBNccsN066epUX/uvetfAJC+haiIqueUCKHpXIilUe/sLfCmJo9ubAtnIysTEtxPCNi5krxSoH4g9fUZoWG28QL546IoXO4sFRRaSCWaoXuzjdncKgELftjkAN8yCyHO45/agoOa3kzvdSDTYqby5bPP3yl1pahILENF1ynPtOZZkCd0c9Jos1gtbYkBMuCYZ3Vl2cjJL8waDE5Zj7TyqYyp2sU8jfRTLGpu+AniQXYy0DwFKBNhXZuWQDXL698kVQgWU84EpCz5HPIDhFGLXsmq1c20l5juTm0v0F+HTy7ypqLwviRWoT8tLne9jdHraoilvyrAFcXQpUJd+Nlg8zGYael0Tva/zisGuw5I6jKjOLIQ3tzqfFa4yOAruTGSYbuwVCiZyEooz8cnp+lw2QF8zF0OlHxFpgBaxmaNyiA+sTYq04GeoNrOZBVHr65QlOp+hxfu7AXDLPTaG+3KqrkprQFCogOzwc5k582UKDRng5EcUY7PeoW7pcBgiAvG6UKBm0G1rFWYsnS6S3lcFbKfiG2ij2zQY9J+Oz1u7BVVXwa2OcmddB 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:(376002)(366004)(136003)(346002)(39860400002)(396003)(2906002)(8676002)(8936002)(478600001)(4326008)(316002)(54906003)(6916009)(30864003)(38070700005)(5660300002)(44832011)(6506007)(53546011)(86362001)(76116006)(66446008)(66476007)(66946007)(91956017)(66556008)(64756008)(6486002)(66574015)(6512007)(38100700002)(83380400001)(71200400001)(36756003)(122000001)(33656002)(186003)(2616005)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OW1ndHNzbGVPR0Q5ZzV5aENldUZjM1YxSTZ4ZVpXMXZESVpheGJYbTQ0cnpD?= =?utf-8?B?VDRKY1B6VlozNHRqbm5TVzNlWllUV09BV0g0Y2ZTVTNCNkZIbHVCbGV4WVUx?= =?utf-8?B?RGtOWDEvR2FkaHFqdFMyaEYxM1d3TnJUMytMQ0w0YWRpSjhWWWpDSzVRcUdF?= =?utf-8?B?elNwblUvVDZTeDkwanRFclh2RmJjT0tuaTNPaHNXSzZtVUJ0UW41T3F2ZGRt?= =?utf-8?B?WFJENTBZeWR6QzNrQ1hMeVduQ0xYdDdnT1FjSmpVMlhpZjhQekcvdTJiUE5j?= =?utf-8?B?a2Nwc1JOUXBBekJsSndNdlc0T2RhdzE1YldzMUl3cTFXRWs4QjZkNmRCazRl?= =?utf-8?B?bE1qTERoYUU1TUViUnFaRmRGQ3FnQVBONXdFUDFZc3JsOFFLdlpiQk5HRG5z?= =?utf-8?B?ZlJxYzd4aVA3OVM0N2ZkNzZVa2ROS3N6WjIzZGtRS1g4NzNndm9MVmVRNDA2?= =?utf-8?B?ZzVCUHNTTHE0ZDVOL01LYVNrOVBvcUZSTStvS21DZjJNNnVUd3ZNRyt3RXVH?= =?utf-8?B?UXhVNkhkOHFOYmxCclVhNWRyR3ROcmx0cytDMWFFcHVydUZrK0ViSnhFT2xK?= =?utf-8?B?dXZBaGEwLzNoOVNXUWlkakhwMlMxZ2NHZGIxZ2lUckhiUVZhY3huUFFvVXZ3?= =?utf-8?B?MHIvS3oxc1M5ZTBRZ2FTNzZPckZYMlNhZndONEtCUGRKR1lET1NQRjkvcUJ4?= =?utf-8?B?dW5zVGI4aVc2emFTYmMyNzlNYVQ1bWNpWlZub3cyTVFienhETkJGcDZ6bmFw?= =?utf-8?B?RE03dzZZWFlrR3RFQ1BNMDU2aE5kYk1WMml3QUJxMjFFQjNQdmVFTFowL3d6?= =?utf-8?B?OW1VYUJZNndCbjRlVTE4RC9pZjA4b1ZUcld2bHp0VnRQcEU0V25BdWUyRmRR?= =?utf-8?B?UlBTSEdVMGgxQTRHM09XU0F2dkw5MDhHN2lGd2pudzdEVHZ0R3E2emRFdjlC?= =?utf-8?B?SnRwdzNpS2lUc1pCa240aks5VFJxY3R3R09jUmFUZHM4NGhFM1dSYndTelJw?= =?utf-8?B?ZUw3c1JPV0xPenhkUDNiYmJ3L281MEVZU2ZlbTJFZEJ6ZHdTR2tSdVc0QVZE?= =?utf-8?B?c3ZvYWl6aUo0dmZNWmVPaGlraHlGcHdrckF5SFpaRElvRDZQVk90QjNmRUZD?= =?utf-8?B?TG12dkZTN2ZScFRDOWgraVJ3UjBXRWtLYUszQllCenQxWU9iUnFRL3BMa3RZ?= =?utf-8?B?dHcwdUFob0hxSHRRU0tqRFJOM1E5SENqcDlsQlR6MkVYZ2pyOUNSdFlLNjgw?= =?utf-8?B?UTVMT1dJczV0REt6ZWhsNGhURzZaRHdsUndxMDhKNVpuNlJMb3BXeThpYjJI?= =?utf-8?B?T0hiVS9BeThTOVpuaGNUdXRVZTNTdkhiOHJKMVR3allRZmY1Z3BCdzYwWWdm?= =?utf-8?B?UDdER3RsL2VrNGRDYlN2eWYvUkVpRzZYaVZBbzVYYVNNbjRTZUF1K256YVNB?= =?utf-8?B?blFZOGU0ZzlrSmxmamZuNFBiYTRCM2tjZzFBZERhM0VSay91ODZJZmtTb2xl?= =?utf-8?B?MmNJcUJBelRLRXlBa3ltWThHZjBqWmJSWENPdkw1VTZsRVZjWWdlVGpQVlR0?= =?utf-8?B?NzdSa05ScG50TkZQbnpUUWprSFJ0Vm9qOHBGMElTczlaeGJYYkU3dncrSkdR?= =?utf-8?B?S3c2OEN4c05oaUpzc2hxQ2dBTC9ieG1LS2R0Mi83QzZ3VW0wNmltNzBLVHVs?= =?utf-8?B?V1VtVGlFVHRRK3lmdExYajNZTU1KTmdoYy9QNjdDMkZEaUNxcXdnd3hvQjFq?= =?utf-8?B?bjk1RWxlaDJUaFR3Q0JWdlM1NVF2VlpXeXRWM0crNm9EQzN5QldYNHZwVUh3?= =?utf-8?Q?iTqea3qoXHmooW0eXjl0utFoe5sSWHxymvugQ=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <34BEC8B4805BCD4BAD329F973CDC3A7C@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: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f028b24a-9d19-42a2-6e25-08d9618ec3ae X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2021 14:53:24.4600 (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: X2yuleD7o0lwVv0gfmK9CTuT2B886jG6D8arUCtvEEpbfeHDsoqmLJV/5ydnrENoCxFBb4hAlnvuFE5rWYi5Jw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4008 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10079 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108170091 X-Proofpoint-ORIG-GUID: 7gHJF0LEVDqdr9Gd6t3tusLt5HRxgG5e X-Proofpoint-GUID: 7gHJF0LEVDqdr9Gd6t3tusLt5HRxgG5e X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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: Tue, 17 Aug 2021 14:53:40 -0000 DQoNCj4gT24gQXVnIDE3LCAyMDIxLCBhdCA5OjQ1IEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gVHVlLCAxNyBBdWcgMjAyMSwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IA0KPj4gDQo+Pj4gT24gQXVnIDE3LCAyMDIxLCBhdCAzOjQzIEFNLCBS aWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIE1v biwgMTYgQXVnIDIwMjEsIFFpbmcgWmhhbyB3cm90ZToNCj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4+ Pj4gT24gQXVnIDE2LCAyMDIxLCBhdCAyOjQwIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVy QHN1c2UuZGU+IHdyb3RlOg0KPj4+Pj4gDQo+Pj4+PiBPbiBUaHUsIDEyIEF1ZyAyMDIxLCBRaW5n IFpoYW8gd3JvdGU6DQo+Pj4+PiANCj4+Pj4+PiBIaSwgUmljaGFyZCwNCj4+Pj4+PiANCj4+Pj4+ PiBGb3IgUlRMIGV4cGFuc2lvbiBvZiBjYWxsIHRvIC5ERUZFUlJFRF9JTklULCBJIGNoYW5nZWQg bXkgY29kZSBwZXIgeW91ciBzdWdnZXN0aW9ucyBsaWtlIGZvbGxvd2luZzoNCj4+Pj4+PiANCj4+ Pj4+PiA9PT09PT09PT09PT09PT09PT09PT09DQo+Pj4+Pj4gI2RlZmluZSBJTklUX1BBVFRFUk5f VkFMVUUgIDB4RkUNCj4+Pj4+PiBzdGF0aWMgdm9pZA0KPj4+Pj4+IGV4cGFuZF9ERUZFUlJFRF9J TklUIChpbnRlcm5hbF9mbiwgZ2NhbGwgKnN0bXQpDQo+Pj4+Pj4gew0KPj4+Pj4+IHRyZWUgbGhz ID0gZ2ltcGxlX2NhbGxfbGhzIChzdG10KTsNCj4+Pj4+PiB0cmVlIHZhcl9zaXplID0gZ2ltcGxl X2NhbGxfYXJnIChzdG10LCAwKTsNCj4+Pj4+PiBlbnVtIGF1dG9faW5pdF90eXBlIGluaXRfdHlw ZQ0KPj4+Pj4+ICA9IChlbnVtIGF1dG9faW5pdF90eXBlKSBUUkVFX0lOVF9DU1RfTE9XIChnaW1w bGVfY2FsbF9hcmcgKHN0bXQsIDEpKTsNCj4+Pj4+PiBib29sIGlzX3ZsYSA9IChib29sKSBUUkVF X0lOVF9DU1RfTE9XIChnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDIpKTsNCj4+Pj4+PiANCj4+Pj4+ PiB0cmVlIHZhcl90eXBlID0gVFJFRV9UWVBFIChsaHMpOw0KPj4+Pj4+IGdjY19hc3NlcnQgKGlu aXRfdHlwZSA+IEFVVE9fSU5JVF9VTklOSVRJQUxJWkVEKTsNCj4+Pj4+PiANCj4+Pj4+PiBpZiAo aXNfdmxhIHx8ICghY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wICh2YXJfdHlwZSkpKQ0KPj4+ Pj4+ICB7DQo+Pj4+Pj4gIC8qIElmIHRoaXMgaXMgYSBWTEEgb3IgdGhlIHR5cGUgb2YgdGhlIHZh cmlhYmxlIGNhbm5vdCBiZSBuYXRpdmVseQ0KPj4+Pj4+ICAgICBpbnRlcnByZXRlZCwgZXhwYW5k IHRvIGEgbWVtc2V0IHRvIGluaXRpYWxpemUgaXQuICAqLw0KPj4+Pj4+ICAgIGlmIChUUkVFX0NP REUgKGxocykgPT0gU1NBX05BTUUpDQo+Pj4+Pj4gICAgICBsaHMgPSBTU0FfTkFNRV9WQVIgKGxo cyk7DQo+Pj4+Pj4gICAgdHJlZSB2YXJfYWRkciA9IE5VTExfVFJFRTsNCj4+Pj4+PiAgICBpZiAo aXNfdmxhKQ0KPj4+Pj4+ICAgICAgdmFyX2FkZHIgPSBUUkVFX09QRVJBTkQgKGxocywgMCk7DQo+ Pj4+Pj4gICAgZWxzZQ0KPj4+Pj4+ICAgICAgew0KPj4+Pj4+ICAgICAgIFRSRUVfQUREUkVTU0FC TEUgKGxocykgPSAxOw0KPj4+Pj4+ICAgICAgIHZhcl9hZGRyID0gYnVpbGRfZm9sZF9hZGRyX2V4 cHIgKGxocyk7DQo+Pj4+Pj4gICAgICB9DQo+Pj4+Pj4gICAgdHJlZSB2YWx1ZSA9IChpbml0X3R5 cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8NCj4+Pj4+PiAgICAgICAgICAgICAgICAgIGJ1aWxk X2ludF9jc3QgKHVuc2lnbmVkX2NoYXJfdHlwZV9ub2RlLA0KPj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU5JVF9QQVRURVJOX1ZBTFVFKSA6DQo+Pj4+Pj4gICAgICAgICAg ICAgICAgICBidWlsZF96ZXJvX2NzdCAodW5zaWduZWRfY2hhcl90eXBlX25vZGUpOw0KPj4+Pj4+ ICAgIHRyZWUgbV9jYWxsID0gYnVpbGRfY2FsbF9leHByIChidWlsdGluX2RlY2xfaW1wbGljaXQg KEJVSUxUX0lOX01FTVNFVCksDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDMsIHZhcl9hZGRyLCB2YWx1ZSwgdmFyX3NpemUpOw0KPj4+Pj4+ICAgIC8qIEV4cGFuZCB0 aGlzIG1lbXNldCBjYWxsLiAgKi8NCj4+Pj4+PiAgICBleHBhbmRfYnVpbHRpbl9tZW1zZXQgKG1f Y2FsbCwgTlVMTF9SVFgsIFRZUEVfTU9ERSAodmFyX3R5cGUpKTsNCj4+Pj4+PiAgfQ0KPj4+Pj4+ IGVsc2UNCj4+Pj4+PiAgew0KPj4+Pj4+ICAvKiBJZiB0aGlzIGlzIG5vdCBhIFZMQSBhbmQgdGhl IHR5cGUgb2YgdGhlIHZhcmlhYmxlIGNhbiBiZSBuYXRpdmVseSANCj4+Pj4+PiAgICAgaW50ZXJw cmV0ZWQsIGV4cGFuZCB0byBhc3NpZ25tZW50IHRvIGdlbmVyYXRlIGJldHRlciBjb2RlLiAgKi8N Cj4+Pj4+PiAgICB0cmVlIHBhdHRlcm4gPSBOVUxMX1RSRUU7DQo+Pj4+Pj4gICAgdW5zaWduZWQg SE9TVF9XSURFX0lOVCB0b3RhbF9ieXRlcw0KPj4+Pj4+ICAgICAgPSB0cmVlX3RvX3Vod2kgKFRZ UEVfU0laRV9VTklUICh2YXJfdHlwZSkpOw0KPj4+Pj4+IA0KPj4+Pj4+ICAgIGlmIChpbml0X3R5 cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pDQo+Pj4+Pj4gICAgICB7DQo+Pj4+Pj4gICAgICAgIHVu c2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKHRvdGFsX2J5dGVz KTsNCj4+Pj4+PiAgICAgICAgbWVtc2V0IChidWYsIElOSVRfUEFUVEVSTl9WQUxVRSwgdG90YWxf Ynl0ZXMpOw0KPj4+Pj4+ICAgICAgICBwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByICh2 YXJfdHlwZSwgYnVmLCB0b3RhbF9ieXRlcyk7DQo+Pj4+Pj4gICAgICAgIGdjY19hc3NlcnQgKHBh dHRlcm4pOw0KPj4+Pj4+ICAgICAgfQ0KPj4+Pj4+IA0KPj4+Pj4+ICAgIHRyZWUgaW5pdCA9IChp bml0X3R5cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8NCj4+Pj4+PiAgICAgICAgICAgICAgICAg cGF0dGVybiA6DQo+Pj4+Pj4gICAgICAgICAgICAgICAgIGJ1aWxkX3plcm9fY3N0ICh2YXJfdHlw ZSk7DQo+Pj4+Pj4gICAgZXhwYW5kX2Fzc2lnbm1lbnQgKGxocywgaW5pdCwgZmFsc2UpOw0KPj4+ Pj4+ICB9DQo+Pj4+Pj4gfQ0KPj4+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4+ Pj4+IA0KPj4+Pj4+IE5vdywgSSB1c2VkIOKAnGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAo dmFyX3R5cGUp4oCdIGluc3RlYWQgb2Yg4oCcdXNlX3JlZ2lzdGVyX2Zvcl9kZWNsIChsaHMp4oCd IHRvIGRlY2lkZSANCj4+Pj4+PiB3aGV0aGVyIHRvIHVzZSDigJxtZW1zZXTigJ0gb3IgdXNlIOKA nGFzc2lnbuKAnSB0byBleHBhbmQgdGhpcyBmdW5jdGlvbi4NCj4+Pj4+PiANCj4+Pj4+PiBIb3dl dmVyLCB0aGlzIGV4cG9zZWQgYW4gYnVnIHRoYXQgaXMgdmVyeSBoYXJkIHRvIGJlIGFkZHJlc3Nl ZDoNCj4+Pj4+PiANCj4+Pj4+PiAqKioqKioqRm9yIHRoZSB0ZXN0aW5nIGNhc2U6IHRlc3Qgc3Vp dGUvZ2NjLmRnL3VuaW5pdC1JLmM6DQo+Pj4+Pj4gDQo+Pj4+Pj4gLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCj4+Pj4+PiAvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3VuaW5pdGlhbGl6ZWQiIH0gKi8N Cj4+Pj4+PiANCj4+Pj4+PiBpbnQgc3lzX21zZ2N0bCAodm9pZCkNCj4+Pj4+PiB7DQo+Pj4+Pj4g c3RydWN0IHsgaW50IG1vZGU7IH0gc2V0YnVmOw0KPj4+Pj4+IHJldHVybiBzZXRidWYubW9kZTsg IC8qIHsgZGctd2FybmluZyAiJ3NldGJ1ZlwubW9kZScgaXMgdXNlZCIgfSAqLw0KPj4+Pj4+ID09 DQo+Pj4+Pj4gDQo+Pj4+Pj4gKioqKioqdGhlIGFib3ZlIGF1dG8gdmFyIOKAnHNldGJ1ZuKAnSBo YXMg4oCcc3RydWN04oCdIHR5cGUsIHdoaWNoIOKAnGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVf cCh2YXJfdHlwZSnigJ0gaXMgZmFsc2UsIHRoZXJlZm9yZSwgDQo+Pj4+Pj4gRXhwYW5kaW5nIHRo aXMgLkRFRkVSUkVEX0lOSVQgY2FsbCB3ZW50IGRvd24gdGhlIOKAnG1lbXNldOKAnSBleHBhbnNp b24gcm91dGUuIA0KPj4+Pj4+IA0KPj4+Pj4+IEhvd2V2ZXIsIHRoaXMgc3RydWN0dXJlIHR5cGUg Y2FuIGJlIGZpdHRlZCBpbnRvIGEgcmVnaXN0ZXIsIHRoZXJlZm9yZSBjYW5ub3QgYmUgdGFrZW4g YWRkcmVzcyBhbnltb3JlIGF0IHRoaXMgc3RhZ2UsIGV2ZW4gdGhvdWdoIEkgdHJpZWQ6DQo+Pj4+ Pj4gDQo+Pj4+Pj4gICAgICAgVFJFRV9BRERSRVNTQUJMRSAobGhzKSA9IDE7DQo+Pj4+Pj4gICAg ICAgdmFyX2FkZHIgPSBidWlsZF9mb2xkX2FkZHJfZXhwciAobGhzKTsNCj4+Pj4+PiANCj4+Pj4+ PiBUbyBjcmVhdGUgYW4gYWRkcmVzcyB2YXJpYWJsZSBmb3IgaXQsIHRoZSBleHBhbnNpb24gc3Rp bGwgZmFpbGVkIGF0IGV4cHIuYzogbGluZSA4NDEyOg0KPj4+Pj4+IGR1cmluZyBSVEwgcGFzczog ZXhwYW5kDQo+Pj4+Pj4gL2hvbWUvb3BjL1dvcmsvR0NDL2xhdGVzdC1nY2MvZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvYXV0by1pbml0LXVuaW5pdC1JLmM6NjoyNDogaW50ZXJuYWwgY29tcGlsZXIgZXJy b3I6IGluIGV4cGFuZF9leHByX2FkZHJfZXhwcl8xLCBhdCBleHByLmM6ODQxMg0KPj4+Pj4+IDB4 ZDA0MTA0IGV4cGFuZF9leHByX2FkZHJfZXhwcl8xDQo+Pj4+Pj4gCS4uLy4uL2xhdGVzdC1nY2Mv Z2NjL2V4cHIuYzo4NDEyDQo+Pj4+Pj4gMHhkMDRhOTUgZXhwYW5kX2V4cHJfYWRkcl9leHByDQo+ Pj4+Pj4gCS4uLy4uL2xhdGVzdC1nY2MvZ2NjL2V4cHIuYzo4NTI1DQo+Pj4+Pj4gMHhkMTM1OTIg ZXhwYW5kX2V4cHJfcmVhbF8xKHRyZWVfbm9kZSosIHJ0eF9kZWYqLCBtYWNoaW5lX21vZGUsIGV4 cGFuZF9tb2RpZmllciwgcnR4X2RlZioqLCBib29sKQ0KPj4+Pj4+IAkuLi8uLi9sYXRlc3QtZ2Nj L2djYy9leHByLmM6MTE3NDENCj4+Pj4+PiAweGQwNTE0MiBleHBhbmRfZXhwcl9yZWFsKHRyZWVf bm9kZSosIHJ0eF9kZWYqLCBtYWNoaW5lX21vZGUsIGV4cGFuZF9tb2RpZmllciwgcnR4X2RlZioq LCBib29sKQ0KPj4+Pj4+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9leHByLmM6ODcxMw0KPj4+Pj4+ IDB4YWVkMWQzIGV4cGFuZF9leHByDQo+Pj4+Pj4gCS4uLy4uL2xhdGVzdC1nY2MvZ2NjL2V4cHIu aDozMDENCj4+Pj4+PiAweGFmMGQ4OSBnZXRfbWVtb3J5X3J0eA0KPj4+Pj4+IAkuLi8uLi9sYXRl c3QtZ2NjL2djYy9idWlsdGlucy5jOjEzNzANCj4+Pj4+PiAweGFmYjRmYiBleHBhbmRfYnVpbHRp bl9tZW1zZXRfYXJncw0KPj4+Pj4+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9idWlsdGlucy5jOjQx MDINCj4+Pj4+PiAweGFmYWNkZSBleHBhbmRfYnVpbHRpbl9tZW1zZXQodHJlZV9ub2RlKiwgcnR4 X2RlZiosIG1hY2hpbmVfbW9kZSkNCj4+Pj4+PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvYnVpbHRp bnMuYzozODg2DQo+Pj4+Pj4gMHhlOTdmYjMgZXhwYW5kX0RFRkVSUkVEX0lOSVQNCj4+Pj4+PiAN Cj4+Pj4+PiAqKioqKipUaGF04oCZcyB0aGUgbWFqb3IgcmVhc29uIHdoeSBJIGNob3NlIOKAnHVz ZV9yZWdpc3Rlcl9mb3JfZGVjbChsaHMp4oCdIHRvIGRlY2lkZSDigJxtZW1zZXTigJ0gZXhwYW5z aW9uIG9yIOKAnGFzc2lnbuKAnSBleHBhbnNpb24sIOKAnG1lbXNldOKAnSBleHBhbnNpb24NCj4+ Pj4+PiBuZWVkcyB0byB0YWtlIGFkZHJlc3Mgb2YgdGhlIHZhcmlhYmxlLCBpZiB0aGUgdmFyaWFi bGUgaGFzIGJlZW4gZGVjaWRlZCB0byBmaXQgaW50byBhIHJlZ2lzdGVyLCB0aGVuIGl0cyBhZGRy ZXNzIGNhbm5vdCB0YWtlbiBhbnltb3JlIGF0IHRoaXMgc3RhZ2UuDQo+Pj4+Pj4gDQo+Pj4+Pj4g KioqKioqdXNpbmcg4oCcY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9w4oCdIGRpZCBtYWtlIHRo ZSDigJxwYXR0ZXJu4oCdIGdlbmVyYXRpb24gcGFydCBtdWNoICBjbGVhbmVyIGFuZCBzaW1wbGVy LCBob3dldmVyLCBsb29rcyBsaWtlIGl0IGRpZG7igJl0IHdvcmsgY29ycmVjdGx5Lg0KPj4+Pj4+ IA0KPj4+Pj4+IEJhc2VkIG9uIHRoaXMsIEnigJlkIGxpa2UgdG8ga2VlcCBteSBwcmV2aW91cyBp bXBsZW1lbnRhdGlvbiBieSB1c2luZyDigJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2zigJ0gdG8gZGVj aWRlIHdoZXRoZXIgdG8gdGFrZSDigJxtZW1zZXTigJ0gZXhwYW5zaW9uIG9yIOKAnGFzc2lnbuKA nSBleHBhbnNpb24uDQo+Pj4+Pj4gVGhlcmVmb3JlLCBJIG1pZ2h0IHN0aWxsIG5lZWQgdG8ga2Vl cCB0aGUg4oCcVUdMWeKAnSAgaW1wbGVtZW50YXRpb24gb2YgZ2VuZXJhdHRpbmcg4oCccGF0dGVy buKAnSBjb25zdGFudCBmb3IgZGlmZmVyZW50IHR5cGVzPw0KPj4+Pj4+IA0KPj4+Pj4+IExldCBt ZSBrbm93IHlvdXIgb3BpbmlvbiBvbiB0aGlzLg0KPj4+Pj4gDQo+Pj4+PiBIbW0sIEkgdGhpbmsg eW91IGNhbiB1c2UgdXNlX3JlZ2lzdGVyX2Zvcl9kZWNsKGxocykgdG8gZGVjaWRlIHRvIHVzZSBh bg0KPj4+Pj4gYWx0ZXJuYXRlIHR5cGUgdG8gZ2VuZXJhdGUgdGhlIHBhdHRlcm4gKGFuZCBmZWVk IHRvIA0KPj4+Pj4gY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wKSBieSB1c2luZw0KPj4+Pj4g bGFuZ19ob29rcy50eXBlX2Zvcl9tb2RlIChUWVBFX01PREUgKFRSRUVfVFlQRSAobGhzKSkpLg0K Pj4+PiANCj4+Pj4gRG8geW91IG1lYW4gdGhhdCB0aGUgVFlQRSByZXR1cm5lZCBieSDigJxsYW5n X2hvb2tzLnR5cGVfZm9yX21vZGUoVFlQRV9NT0RFIChUUkVFX1RZUEUgKGxocykp4oCdIHdpbGwg YWx3YXlzIHNhdGlzZnkg4oCcY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9w4oCdPyANCj4+Pj4g RXZlbiBmb3IgYmlnIHN0cnVjdHVyZSB0eXBlcz8NCj4+PiANCj4+PiBJIG1lYW50IHRoYXQgZm9y IHVzZV9yZWdpc3Rlcl9mb3JfZGVjbCAobGhzKSB0aGUgc3RydWN0dXJlcyB3aWxsIGJlDQo+Pj4g YWx3YXlzIHNtYWxsIGFuZCB0aGUgc3RydWN0dXJlIHR5cGUgd2lsbCBoYXZlIGEgbW9kZSB0aGF0 IGlzIG5vdCBCTEttb2RlDQo+Pj4gKGJ1dCBmb3IgZXhhbXBsZSBESW1vZGUgZm9yIHN0cnVjdCB7 IGludCBpOyBpbnQgajsgfSkuDQo+PiANCj4+IE9oLCBJIHNlZS4NCj4+IA0KPj4+IA0KPj4+PiBp LmUsIA0KPj4+PiANCj4+Pj4gdHJlZSB2YXJfdHlwZSA9IFRSRUVfVFlQRShsaHMpOw0KPj4+PiB0 cmVlIHBhdHRlcm4gPSBOVUxMX1RSRUU7DQo+Pj4+IHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgdG90 YWxfYnl0ZXMNCj4+Pj4gICAgICAgPSB0cmVlX3RvX3Vod2kgKFRZUEVfU0laRV9VTklUICh2YXJf dHlwZSkpOw0KPj4+PiANCj4+Pj4gSWYgKHVzZV9yZWdpc3Rlcl9mb3JfZGVjbChsaHMpPT1mYWxz ZSkNCj4+Pj4gew0KPj4+PiAgIHRyZWUgYWx0X3R5cGUgPSBsYW5nX2hvb2tzLnR5cGVfZm9yX21v ZGUoVFlQRV9NT0RFKHZhcl90eXBlKSwgVFlQRV9VTlNJR05FRCh2YXJfdHlwZSk7DQo+Pj4+ICAg SWYgKGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAoYWx0X3R5cGUpKQ0KPj4+PiAgICAgew0K Pj4+PiAJdW5zaWduZWQgY2hhciAqYnVmID0gKHVuc2lnbmVkIGNoYXIgKikgeG1hbGxvYyAodG90 YWxfYnl0ZXMpOyANCj4+Pj4gCW1lbXNldCAoYnVmLCBJTklUX1BBVFRFUk5fVkFMVUUsIHRvdGFs X2J5dGVzKTsgDQo+Pj4+IAlwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByIChhbHRfdHlw ZSwgYnVmLCB0b3RhbF9ieXRlcyk7IA0KPj4+PiAJZ2NjX2Fzc2VydCAocGF0dGVybik7IA0KPj4+ PiAgICAgfQ0KPj4+PiAgIGVsc2UNCj4+Pj4gICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCj4+Pj4g fQ0KPj4+PiANCj4+Pj4gPw0KPj4+PiBEb27igJl0IHF1aXRlIHVuZGVyc3RhbmQgaGVyZS4gUGxl YXNlIGNsYXJpZnkuDQo+Pj4gDQo+Pj4gRm9yICF1c2VfcmVnaXN0ZXJfZm9yX2RlY2wgeW91IHVz ZSBtZW1zZXQgYWxyZWFkeSwgYnV0IGZvcg0KPj4+IHVzZV9yZWdpc3Rlcl9mb3JfZGVjbCBub3Qg YWxsIHR5cGVzIHNhdGlzZnkgY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wDQo+Pj4gKGluIHBh cnRpY3VsYXIgYWxsIHN0cnVjdCBhbmQgdW5pb24gdHlwZXMpLiAgQnV0IHdoZW4gd2UgdXNlIGEN Cj4+PiByZWdpc3RlciBmb3IgdGhlIGRlY2wgdGhlbiB3ZSBjYW4gb2YgY291cnNlIGRpcmVjdGx5 IGluaXRpYWxpemUgdGhlDQo+Pj4gcmVnaXN0ZXIuDQo+PiANCj4+IFNvLCB5b3UgbWVhbiB0aGUg Zm9sbG93aW5nOg0KPj4gDQo+PiBJZiAoaXNfdmxhIHx8ICghdXNlX3JlZ2lzdGVyX2Zvcl9kZWNs IChsaHMpKSkNCj4+IHsNCj4+ICAvKiBleHBhbmQgYXMgbWVtc2V0IHRoYXQgaXMgZG9uZSBjdXJy ZW50bHkuICAqLw0KPj4gfQ0KPj4gZWxzZSANCj4+IHsNCj4+ICAgdHJlZSBhbHRfdHlwZSA9IGxh bmdfaG9va3MudHlwZV9mb3JfbW9kZShUWVBFX01PREUodmFyX3R5cGUpLCBUWVBFX1VOU0lHTkVE KHZhcl90eXBlKTsNCj4+ICAgSWYgKGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAoYWx0X3R5 cGUpKQ0KPiANCj4geW91IGNhbiB1c2UgdmFyX3R5cGUgd2hlbiBpdCBzYXRpc2ZpZXMgY2FuX25h dGl2ZV9pbnRlcnByZXRfdHlwZV9wDQoNClllcywgdGhlbiB1bmRlciB0aGF0IHNpdHVhdGlvbiwg bm8gVklFV19DT05WRVJUIGlzIG5lZWRlZC4NCg0KPiANCj4+ICAgICB7DQo+PiAJdW5zaWduZWQg Y2hhciAqYnVmID0gKHVuc2lnbmVkIGNoYXIgKikgeG1hbGxvYyAodG90YWxfYnl0ZXMpOyANCj4+ IAltZW1zZXQgKGJ1ZiwgSU5JVF9QQVRURVJOX1ZBTFVFLCB0b3RhbF9ieXRlcyk7IA0KPj4gCXBh dHRlcm4gPSBuYXRpdmVfaW50ZXJwcmV0X2V4cHIgKGFsdF90eXBlLCBidWYsIHRvdGFsX2J5dGVz KTsgDQo+PiAJZ2NjX2Fzc2VydCAocGF0dGVybik7IA0KPj4gICAgIH0NCj4+ICAgZWxzZQ0KPj4g ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCj4+IA0KPj4gICAgIHRyZWUgaW5pdCA9IChpbml0X3R5 cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8NCj4+ICAgICAgICAgICAgICAgICAgIHBhdHRlcm4g Og0KPj4gICAgICAgICAgICAgICAgICAgYnVpbGRfemVyb19jc3QgKGFsdF90eXBlKTsNCj4+IA0K Pj4gICAgLyogaGVyZSBidWlsZCBWSUVXX0NPTlZFUlQgPGFsdF90eXBlPiAobGhzKSA9IGluaXQ7 DQo+PiAgICAgICBBbmQgdGhlbiBleHBhbmQgaXQuICAqLw0KPj4gfQ0KPj4gDQo+PiA/DQo+PiAN Cj4+PiBBcyBzYWlkLCBpdCB3b3VsZCBiZSBtdWNoIGNsZWFuZXIgKGFuZCBtYXliZSBhbHNvIGVh c2llcikNCj4+PiB0byB0aGVuIHNpbXBseSBleHBhbmQgdGhlIFJUTCBkaXJlY3RseSByYXRoZXIg dGhhbiBnb2luZyB0aHJvdWdoDQo+Pj4gZXhwYW5kX2Fzc2lnbm1lbnQuDQo+PiANCj4+IER1bXAg cXVlc3Rpb25zIGhlcmU6ICANCj4+IA0KPj4gMS4gV2hlbiBidWlsZGluZyBWSUVXX0NPTlZFUlQg IDxhbHRfdHlwZT4gKGxocykgPSBpbml0IGFuZCBleHBhbmQgaXQ6DQo+PiANCj4+IElzIHRoZSBm b2xsb3dpbmcgY29ycmVjdDoNCj4+IA0KPj4gbGhzID0gYnVpbGQxIChWSUVXX0NPTlZFUlRfRVhQ UiwgYWx0X3R5cGUsIGxocyk7DQo+PiBleHBhbmRfYXNzaWdubWVudCAobGhzLCBpbml0KTsNCj4g DQo+IHllcywgSSB0aGluayBzby4NCg0KT2theS4NCj4gDQo+PiANCj4+IHdoaWNoIHV0aWxpdHkg cm91dGluZXMgc2hvdWxkIGJlIHVzZWQgdG8gYnVpbGRpbmcgdGhlIGFzc2lnbm1lbnQgYW5kIHRo ZW4gZXhwYW5kIGl0Pw0KPj4gDQo+PiBBcmUgdGhlIGFib3ZlIHV0aWxpdHkgcm91dGluZXMgY29y cmVjdD8NCj4gDQo+IHllcy4NCj4gDQo+PiANCj4+PiBJdCdzIGFsc28gZWFzaWVyIHRvIGRpcmVj dGx5IHNlZSB3aGV0aGVyIHRoZQ0KPj4+IExIUyBpcyBhIE1FTV9QIG9yIGEgUkVHX1AgYnV0IHRo ZW4gZm9yIHRoZSBNRU1fUCBjYXNlIGl0J3MgYSBiaXQNCj4+PiBtb3JlICJhd2t3YXJkIiB0byB1 c2UgdGhlIGVhc3kgd2F5IG9mIHRoZSBnZW5lcmljIGV4cGFuZCBjb2RlDQo+Pj4gKGVzcC4gaWYg d2UgZXZlbnR1YWxseSB3YW50IHRvIGVtaXQgYWN0dWFsIGNhbGxzIHRvIG1lbXNldCAtIGRvIHdl PykNCj4+IA0KPj4gSWYgYWxsIHRoZXNlIGFyZSBndWFyZGVkIGJ5IOKAnHVzZV9yZWdpc3Rlcl9m b3JfZGVjbOKAnSBhbHJlYWR5LCB0aGUgbGhzIHNob3VsZCBiZSBmaXQgaW50byByZWdpc3RlcnMs IA0KPj4gVW5kZXIgc3VjaCBzaXR1YXRpb24sIEkgZG9u4oCZdCB0aGluayB0aGF0IHdlIHdhbnQg dG8gZW1pdCBhY3R1YWwgY2FsbHMgdG8gbWVtc2V0LiBUaGF04oCZcyB0b28gZXhwZW5zaXZlLg0K Pj4gDQo+Pj4gDQo+Pj4+PiBZb3UgY2FuIHRoZW4NCj4+Pj4+IGJ1aWxkIHRoZSBhc3NpZ25tZW50 IGZyb20gdGhlIHBhdHRlcm4gYXMNCj4+Pj4+IA0KPj4+Pj4gVklFV19DT05WRVJUIDxyZWctdHlw ZT4gKGxocykgPSBwYXR0ZXJuX2NzdDsNCj4+Pj4gDQo+Pj4+IFdoYXTigJlzIHRoZSA8cmVnX3R5 cGU+IGluIHRoZSBhYm92ZT8gVGhlIHR5cGUg4oCcYWx0X3R5cGXigJ0gcmV0dXJuZWQgYnkg4oCc bGFuZ19ob29rcy50eXBlX2Zvcl9tb2RlKFRSRUVfVFlQRShsaHMpKT8NCj4+Pj4gRG8gSSBuZWVk IHRvIGJ1aWxkIOKAnE1PRElGWV9FWFBS4oCdIGZvciB0aGUgYWJvdmU/IA0KPj4+IA0KPj4+IFll cywgdGhlIGxhbmdfaG9vay50eXBlX2Zvcl9tb2RlIHJlc3VsdCBhbmQgbm8sIHlvdSBjb3VsZCBn byB0aHJvdWdoDQo+Pj4gZXhwYW5kX2Fzc2lnbm1lbnQuDQo+PiANCj4+IE9rYXkuIFNvLCBzdGls bCB1c2Ug4oCcZXhwYW5kX2Fzc2lnbWVudOKAnSB0byBleHBhbmQgaXQ/DQo+IA0KPiB5ZXMuDQoN ClRoYW5rcyBhIGxvdC4NCg0KTm93LCBJIGFtIGNsZWFuIG9uIHRoaXMgcGFydCAtOikNCg0KUWlu Zw0KPiANCj4+PiANCj4+Pj4gbGhzID0gIGJ1aWxkMSAoVklFV19DT05WRVJUX0VYUFIsIGFsdF90 eXBlLCBsaHMpOw0KPj4+PiB0cmVlICBmaW5hbCA9IGJ1aWxkMiAoTU9ESUZZX0VYUFIsIFRSRUVf VFlQRSAoYWx0X3R5cGUpLCBsaHMsIHBhdHRlcm4pOw0KPj4+PiANCj4+Pj4gVGhlbiBob3cgdG8g ZXhwYW5kIHRoaXPigJ1maW5hbCI/IA0KPj4+Pj4gDQo+Pj4+PiBub3RlIHRoYXQgbW9yZSBSVEwt ZXhwYW5kLWlzaCB3b3VsZCBiZSB0byBzaW1wbHkgZXhwYW5kICdsaHMnIGFuZA0KPj4+Pj4gc2Vl IHdoZXRoZXIgaXQncyBhIFJFR19QIG9yIGEgTUVNX1AgYW5kIGRlY2lkZSBiYXNlZCBvbiB0aGF0 Lg0KPj4+PiANCj4+Pj4gWW91IG1lYW4gdGhhdCB0aGUgY3VycmVudCBSVEwgZXhwYW5zaW9uIHdp bGwgYXV0b21hdGljYWxseSBleHBhbmQgTEhTIHRvIG1lbXNldCByb3V0ZSBvciBhc3NpZ25tZW50 IHJvdXRlIGJhc2VkIG9uIHdoZXRoZXINCj4+Pj4gTEhTIGlzIGEgUkVHX1Agb3IgTUVNX1A/IEkg ZG9u4oCZdCBuZWVkIHRvIGV4cGxpY2l0bHkgY29kZSBmb3Ig4oCcZXhwYW5kX2J1aWx0aW5fbWVt c2V04oCdIG9yIOKAnGV4cGFuZF9hc3NpZ27igJ0/DQo+Pj4gDQo+Pj4gTm8uICBCdXQgeW91IGFy ZSBpbnNpZGUgdGhlIGV4cGFuZGVyIGZvciB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gY2FsbA0KPj4+ IGFuZCB0aGlzIGlzIGV4cGVjdGVkIHRvIGdlbmVyYXRlIFJUTC4gIFlvdSBjYW4gc2ltcGx5IGdl bmVyYXRlDQo+Pj4gUlRMIGRpcmVjdGx5IHdpdGhvdXQgImZha2luZyIgbmV3IEdFTkVSSUMgY2Fs bHMgb3IgYXNzaWdubWVudHMgYW5kDQo+Pj4gZXhwYW5kaW5nIHRob3NlLg0KPj4+IA0KPj4+IEJ1 dCBsZXRzIG5vdCBnbyB0aGVyZSBmb3Igbm93Lg0KPj4gDQo+PiBPa2F5LiBJIHNlZSBub3cuDQo+ PiANCj4+IFFpbmcNCj4+PiANCj4+PiBSaWNoYXJkLg0KPj4gDQo+PiANCj4gDQo+IC0tIA0KPiBS aWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+IFNVU0UgU29mdHdhcmUgU29sdXRp b25zIEdlcm1hbnkgR21iSCwgTWF4ZmVsZHN0cmFzc2UgNSwgOTA0MDkgTnVlcm5iZXJnLA0KPiBH ZXJtYW55OyBHRjogRmVsaXggSW1lbmTDtnJmZmVyOyBIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykN Cg0K