From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1.med.uni-goettingen.de (mail1.med.uni-goettingen.de [134.76.103.230]) by sourceware.org (Postfix) with ESMTPS id 6CE473858D29 for ; Mon, 23 Aug 2021 06:15:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6CE473858D29 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=med.uni-goettingen.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=med.uni-goettingen.de Received: from exc-lb-ha-mgmt.med.uni-goettingen.de ([10.76.100.40]:32937 helo=umg-exc-02.ads.local.med.uni-goettingen.de) by mail1.med.uni-goettingen.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1mI3Ee-0003pi-2A; Mon, 23 Aug 2021 08:15:04 +0200 Received: from umg-exc-01.ads.local.med.uni-goettingen.de (10.76.100.74) by umg-exc-02.ads.local.med.uni-goettingen.de (10.76.100.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.14; Mon, 23 Aug 2021 08:15:04 +0200 Received: from umg-exc-01.ads.local.med.uni-goettingen.de ([fe80::2886:b6b:10e3:deea]) by umg-exc-01.ads.local.med.uni-goettingen.de ([fe80::2886:b6b:10e3:deea%6]) with mapi id 15.01.2308.014; Mon, 23 Aug 2021 08:15:04 +0200 From: "Uecker, Martin" To: "jason@redhat.com" , "kenner@nyu.edu" CC: "gcc-patches@gcc.gnu.org" Subject: Re: [PATCH] Fix ICE when mixing VLAs and statement expressions [PR91038] Thread-Topic: [PATCH] Fix ICE when mixing VLAs and statement expressions [PR91038] Thread-Index: AQHXhvvP/O/jCoPXdkOErL8OJvVCd6t1f1YAgAAFQQCACxhVgA== Date: Mon, 23 Aug 2021 06:15:04 +0000 Message-ID: References: <580b9499-aa61-17ec-d5e8-60db9a5e853e@redhat.com> <2dbc9989ae6e859a4ec84b9d68abcd794d605594.camel@med.uni-goettingen.de> In-Reply-To: <2dbc9989ae6e859a4ec84b9d68abcd794d605594.camel@med.uni-goettingen.de> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.76.100.67] Content-Type: text/plain; charset="utf-8" Content-ID: <629C769CFBA65F4DB438893071B079D1@med.uni-goettingen.de> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, 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, 23 Aug 2021 06:15:19 -0000 QW0gTW9udGFnLCBkZW4gMTYuMDguMjAyMSwgMDY6NDkgKzAyMDAgc2NocmllYiBNYXJ0aW4gVWVj a2VyOg0KPiBBbSBNb250YWcsIGRlbiAxNi4wOC4yMDIxLCAwMDozMCAtMDQwMCBzY2hyaWViIEph c29uIE1lcnJpbGw6DQo+ID4gT24gOC8xLzIxIDE6MzYgUE0sIFVlY2tlciwgTWFydGluIHdyb3Rl Og0KPiA+ID4gSGVyZSBpcyBhbiBhdHRlbXB0IHRvIGZpeCBzb21lIG9sZCBhbmQgYW5ub3lpbmcg YnVncyByZWxhdGVkDQo+ID4gPiB0byBWTEFzIGFuZCBzdGF0ZW1lbnQgZXhwcmVzc2lvbnMuIElu IHBhcnRpY3VsYXJ5LCB0aGlzIHNlZW1zDQo+ID4gPiB0byBmaXggdGhlIGlzc3VlcyB3aXRoIHZh cmlhYmx5LW1vZGlmaWVkIHR5cGVzIHdoaWNoIGFyZQ0KPiA+ID4gcmV0dXJuZWQgZnJvbSBzdGF0 ZW1lbnQgZXhwcmVzc2lvbnMgKHdoaWNoIHdvcmtzIG9uIGNsYW5nKSwNCj4gPiA+IGJ1dCB0aGVy ZSBhcmUgc3RpbGwgYnVncyByZW1haW5pbmcgcmVsYXRlZCB0byBzdHJ1Y3RzDQo+ID4gPiB3aXRo IFZMQSBtZW1iZXJzICh3aGljaCBzZWVtcyB0byBiZSBhIEZFIGJ1ZykuDQo+ID4gPiANCj4gPiA+ IE9mIGNvdXJzZSwgSSBtaWdodCBiZSBkb2luZyBzb21ldGhpbmcgc3R1cGlkLi4uDQo+ID4gPiAN Cj4gPiA+IFRoZSBwYXRjaCBzdXJ2aXZlcyBib290c3RyYXBwaW5nIGFuZCByZWdyZXNzdGlvbiB0 ZXN0aW5nDQo+ID4gPiBvbiB4ODZfNjQuDQo+ID4gDQo+ID4gSW5jbHVkaW5nIEFkYT8NCj4gDQo+ IEl0IGJyb2tlIFBMQUNFSE9MREVSX0VYUFJzIGFzIHlvdSBwb2ludGVkIG91dCBiZWxvdy4NCj4g DQo+IFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgbmV3IHZlcnNpb246DQo+IA0KPiBodHRwczov L2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIxLUF1Z3VzdC81Nzc0MDIuaHRt bA0KDQoNClJpY2hhcmQsDQoNCmFueSBjb21tZW50cyBvbiB0aGlzIHZlcnNpb24gb2YgdGhlIHBh dGNoPw0KDQpUaGFuayB5b3UhDQoNCk1hcnRpbg0KDQoNCg0KPiBNYXJ0aW4NCj4gDQo+IA0KPiAN Cj4gPiA+IEZpeCBJQ0Ugd2hlbiBtaXhpbmcgVkxBcyBhbmQgc3RhdGVtZW50IGV4cHJlc3Npb25z IFtQUjkxMDM4XQ0KPiA+ID4gDQo+ID4gPiBXaGVuIHJldHVybmluZyBWTS10eXBlcyBmcm9tIHN0 YXRlbWVudCBleHByZXNzaW9ucywgdGhpcyBjYW4NCj4gPiA+IGxlYWQgdG8gYW4gSUNFIHdoZW4g ZGVjbGFyYXRpb25zIGZyb20gdGhlIHN0YXRlbWVudCBleHByZXNzaW9uDQo+ID4gPiBhcmUgcmVm ZXJyZWQgdG8gbGF0ZXIuIFNvbWUgb2YgdGhlc2UgaXNzdWVzIGNhbiBiZSBhZGRyZXNzZWQgYnkN Cj4gPiA+IGdpbXBsaWZ5aW5nIHRoZSBiYXNlIGV4cHJlc3Npb24gZWFybGllciBpbiBnaW1wbGlm eV9jb21wb3VuZF9sdmFsLg0KPiA+ID4gVGhpcyBmaXhlcyBQUjkxMDM4IGFuZCBzb21lIG9mIHRo ZSB0ZXN0IGNhc2VzIGZyb20gUFIyOTk3MA0KPiA+ID4gKHN0cnVjdHMgd2l0aCBWTEEgbWVtYmVy cyBuZWVkIGZ1cnRoZXIgd29yaykuDQo+ID4gPiANCj4gPiA+ICAgICAgDQo+ID4gPiAgICAgIDIw MjEtMDgtMDEgIE1hcnRpbiBVZWNrZXIgIDxtdWVja2VyQGd3ZGcuZGU+DQo+ID4gPiAgICAgIA0K PiA+ID4gICAgICBnY2MvDQo+ID4gPiAJUFIgYy85MTAzOA0KPiA+ID4gCVBSIGMvMjk5NzANCj4g PiA+IAkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X3Zhcl9vcl9wYXJtX2RlY2wpOiBVcGRhdGUgY29t bWVudC4NCj4gPiA+IAkoZ2ltcGxpZnlfY29tcG91bmRfbHZhbCk6IEdpbXBsaWZ5IGJhc2UgZXhw cmVzc2lvbiBmaXJzdC4NCj4gPiA+ICAgICAgDQo+ID4gPiAgICAgIGdjYy90ZXN0c3VpdGUvDQo+ ID4gPiAJUFIgYy85MTAzOA0KPiA+ID4gCVBSIGMvMjk5NzANCj4gPiA+IAkqIGdjYy5kZy92bGEt c3RleHAtMDEuYzogTmV3IHRlc3QuDQo+ID4gPiAJKiBnY2MuZGcvdmxhLXN0ZXhwLTAyLmM6IE5l dyB0ZXN0Lg0KPiA+ID4gCSogZ2NjLmRnL3ZsYS1zdGV4cC0wMy5jOiBOZXcgdGVzdC4NCj4gPiA+ IAkqIGdjYy5kZy92bGEtc3RleHAtMDQuYzogTmV3IHRlc3QuDQo+ID4gPiANCj4gPiA+IA0KPiA+ ID4gZGlmZiAtLWdpdCBhL2djYy9naW1wbGlmeS5jIGIvZ2NjL2dpbXBsaWZ5LmMNCj4gPiA+IGlu ZGV4IDIxZmYzMmVlNGFhLi44ODVkNWY3MzU4NSAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy9naW1w bGlmeS5jDQo+ID4gPiArKysgYi9nY2MvZ2ltcGxpZnkuYw0KPiA+ID4gQEAgLTI4MzksNyArMjgz OSwxMCBAQCBnaW1wbGlmeV92YXJfb3JfcGFybV9kZWNsICh0cmVlICpleHByX3ApDQo+ID4gPiAg ICAgICAgZGVjbGFyYXRpb24sIGZvciB3aGljaCB3ZSd2ZSBhbHJlYWR5IGlzc3VlZCBhbiBlcnJv ci4gIEl0IHdvdWxkDQo+ID4gPiAgICAgICAgYmUgcmVhbGx5IG5pY2UgaWYgdGhlIGZyb250IGVu ZCB3b3VsZG4ndCBsZWFrIHRoZXNlIGF0IGFsbC4NCj4gPiA+ICAgICAgICBDdXJyZW50bHkgdGhl IG9ubHkga25vd24gY3VscHJpdCBpcyBDKysgZGVzdHJ1Y3RvcnMsIGFzIHNlZW4NCj4gPiA+IC0g ICAgIGluIGcrKy5vbGQtZGVqYS9nKysuamFzb24vYmluZGluZy5DLiAgKi8NCj4gPiA+ICsgICAg IGluIGcrKy5vbGQtZGVqYS9nKysuamFzb24vYmluZGluZy5DLg0KPiA+ID4gKyAgICAgQW5vdGhl ciBjdWxwaXQgYXJlIHNpemUgZXhwcmVzc2lvbnMgZm9yIHZhcmlhYmx5IG1vZGlmaWVkDQo+ID4g PiArICAgICB0eXBlcyB3aGljaCBhcmUgbG9zdCBpbiB0aGUgRkUgb3Igbm90IGdpbXBsaWZpZWQg Y29ycmVjdGx5Lg0KPiA+ID4gKyAgKi8NCj4gPiA+ICAgICBpZiAoVkFSX1AgKGRlY2wpDQo+ID4g PiAgICAgICAgICYmICFERUNMX1NFRU5fSU5fQklORF9FWFBSX1AgKGRlY2wpDQo+ID4gPiAgICAg ICAgICYmICFUUkVFX1NUQVRJQyAoZGVjbCkgJiYgIURFQ0xfRVhURVJOQUwgKGRlY2wpDQo+ID4g PiBAQCAtMjk4NCw5ICsyOTg3LDIzIEBAIGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwgKHRyZWUgKmV4 cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3AsIGdpbXBsZV9zZXENCj4gPiA+ICpwb3N0X3AsDQo+ID4g PiAgICAgICAgZXhwcmVzc2lvbiB1bnRpbCB3ZSBkZWFsIHdpdGggYW55IHZhcmlhYmxlIGJvdW5k cywgc2l6ZXMsIG9yDQo+ID4gPiAgICAgICAgcG9zaXRpb25zIGluIG9yZGVyIHRvIGRlYWwgd2l0 aCBQTEFDRUhPTERFUl9FWFBScy4NCj4gPiA+ICAgDQo+ID4gPiAtICAgICBTbyB3ZSBkbyB0aGlz IGluIHRocmVlIHN0ZXBzLiAgRmlyc3Qgd2UgZGVhbCB3aXRoIHRoZSBhbm5vdGF0aW9ucw0KPiA+ ID4gLSAgICAgZm9yIGFueSB2YXJpYWJsZXMgaW4gdGhlIGNvbXBvbmVudHMsIHRoZW4gd2UgZ2lt cGxpZnkgdGhlIGJhc2UsDQo+ID4gPiAtICAgICB0aGVuIHdlIGdpbXBsaWZ5IGFueSBpbmRpY2Vz LCBmcm9tIGxlZnQgdG8gcmlnaHQuICAqLw0KPiA+ID4gKyAgICAgU28gd2UgZG8gdGhpcyBpbiB0 aHJlZSBzdGVwcy4gIEZpcnN0IHdlIGdpbXBsaWZ5IHRoZSBiYXNlLA0KPiA+ID4gKyAgICAgdGhl biB3ZSBkZWFsIHdpdGggdGhlIGFubm90YXRpb25zIGZvciBhbnkgdmFyaWFibGVzIGluIHRoZQ0K PiA+ID4gKyAgICAgY29tcG9uZW50cywgdGhlbiB3ZSBnaW1wbGlmeSBhbnkgaW5kaWNlcywgZnJv bSBsZWZ0IHRvIHJpZ2h0Lg0KPiA+ID4gKw0KPiA+ID4gKyAgICAgVGhlIGJhc2UgZXhwcmVzc2lv biBtYXkgY29udGFpbiBhIHN0YXRlbWVudCBleHByZXNzaW9uIHRoYXQNCj4gPiA+ICsgICAgIGhh cyBkZWNsYXJhdGlvbnMgdXNlZCBpbiBzaXplIGV4cHJlc3Npb25zLCBzbyBoYXMgdG8gYmUNCj4g PiA+ICsgICAgIGdpbXBsaWZpZWQgZmlyc3QuICovDQo+ID4gDQo+ID4gVGhlIHByZXZpb3VzIHBh cmFncmFwaCBzYXlzLA0KPiA+IA0KPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QnV0IHdlIGNhbid0IGdpbXBsaWZ5IHRoZQ0KPiA+ID4gaW5uZXIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gPiA+ICAgICAgZXhwcmVzc2lvbiB1 bnRpbCB3ZSBkZWFsIHdpdGggYW55IHZhcmlhYmxlIGJvdW5kcywgc2l6ZXMsDQo+ID4gPiBvciAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gPiA+ICAgICAg cG9zaXRpb25zIGluIG9yZGVyIHRvIGRlYWwgd2l0aCBQTEFDRUhPTERFUl9FWFBScy4gDQo+ID4g DQo+ID4gc28gSSB3b3VsZCBleHBlY3QgeW91ciBjaGFuZ2UgdG8gYnJlYWsgZXhhbXBsZXMgdGhh dCB0aGUgY3VycmVudCBjb2RlIA0KPiA+IHdhcyBkZXNpZ25lZCB0byBoYW5kbGUuICBUaGUgY2hh bmdlIHRvIGRlbGF5IGdpbXBsaWZ5aW5nIHRoZSBpbm5lciANCj4gPiBleHByZXNzaW9uIHdhcyBp biByMC01OTEzMSAoU1ZOIHI4MzQ3NCksIGJ5IFJpY2hhcmQgS2VubmVyLiAgQnV0IHRoZXJlIA0K PiA+IGFyZW4ndCBhbnkgdGVzdGNhc2VzIGluIHRoYXQgY29tbWl0LiAgUmljaGFyZCwgYW55IGlu c2lnaHQ/ICBDYW4geW91IA0KPiA+IHJldmlldyB0aGlzIHBhdGNoPw0KPiANCj4gDQo+ID4gPiAr ICAvKiBTdGVwIDEgaXMgdG8gZ2ltcGxpZnkgdGhlIGJhc2UgZXhwcmVzc2lvbi4gIE1ha2Ugc3Vy ZSBsdmFsdWUgaXMgc2V0DQo+ID4gPiArICAgICBzbyBhcyB0byBtYXRjaCB0aGUgbWluX2x2YWwg cHJlZGljYXRlLiAgRmFpbHVyZSB0byBkbyBzbyBtYXkgcmVzdWx0DQo+ID4gPiArICAgICBpbiB0 aGUgY3JlYXRpb24gb2YgbGFyZ2UgYWdncmVnYXRlIHRlbXBvcmFyaWVzLiAgKi8NCj4gPiA+ICsg IHRyZXQgPSBnaW1wbGlmeV9leHByIChwLCBwcmVfcCwgcG9zdF9wLCBpc19naW1wbGVfbWluX2x2 YWwsDQo+ID4gPiArCQkJZmFsbGJhY2sgfCBmYl9sdmFsdWUpOw0KPiA+ID4gKw0KPiA+ID4gKyAg cmV0ID0gTUlOIChyZXQsIHRyZXQpOw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gICAgIGZvciAo aSA9IGV4cHJfc3RhY2subGVuZ3RoICgpIC0gMTsgaSA+PSAwOyBpLS0pDQo+ID4gPiAgICAgICB7 DQo+ID4gPiAgICAgICAgIHRyZWUgdCA9IGV4cHJfc3RhY2tbaV07DQo+ID4gPiBAQCAtMzA3Niwx MiArMzA5Myw2IEBAIGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwgKHRyZWUgKmV4cHJfcCwgZ2ltcGxl X3NlcSAqcHJlX3AsIGdpbXBsZV9zZXENCj4gPiA+ICpwb3N0X3AsDQo+ID4gPiAgIAl9DQo+ID4g PiAgICAgICB9DQo+ID4gPiAgIA0KPiA+ID4gLSAgLyogU3RlcCAyIGlzIHRvIGdpbXBsaWZ5IHRo ZSBiYXNlIGV4cHJlc3Npb24uICBNYWtlIHN1cmUgbHZhbHVlIGlzIHNldA0KPiA+ID4gLSAgICAg c28gYXMgdG8gbWF0Y2ggdGhlIG1pbl9sdmFsIHByZWRpY2F0ZS4gIEZhaWx1cmUgdG8gZG8gc28g bWF5IHJlc3VsdA0KPiA+ID4gLSAgICAgaW4gdGhlIGNyZWF0aW9uIG9mIGxhcmdlIGFnZ3JlZ2F0 ZSB0ZW1wb3Jhcmllcy4gICovDQo+ID4gPiAtICB0cmV0ID0gZ2ltcGxpZnlfZXhwciAocCwgcHJl X3AsIHBvc3RfcCwgaXNfZ2ltcGxlX21pbl9sdmFsLA0KPiA+ID4gLQkJCWZhbGxiYWNrIHwgZmJf bHZhbHVlKTsNCj4gPiA+IC0gIHJldCA9IE1JTiAocmV0LCB0cmV0KTsNCj4gPiA+ICAgDQo+ID4g PiAgICAgLyogQW5kIGZpbmFsbHksIHRoZSBpbmRpY2VzIGFuZCBvcGVyYW5kcyBvZiBBUlJBWV9S RUYuICBEdXJpbmcgdGhpcw0KPiA+ID4gICAgICAgIGxvb3Agd2UgYWxzbyByZW1vdmUgYW55IHVz ZWxlc3MgY29udmVyc2lvbnMuICAqLw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLmRnL3ZsYS1zdGV4cHItMDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHIt MDEuYw0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAw Li4yN2UxODE3ZWI2Mw0KPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdmxhLXN0ZXhwci0wMS5jDQo+ID4gPiBAQCAtMCwwICsxLDk0IEBADQo+ID4g PiArLyogUFIyOTk3MCwgUFI5MTAzOCAqLw0KPiA+ID4gKy8qIHsgZGctZG8gcnVuIH0gKi8NCj4g PiA+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMCIgfSAqLw0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb28z Yih2b2lkKSAgIC8vIHNob3VsZCBub3QgcmV0dXJuIDANCj4gPiA+ICt7DQo+ID4gPiArICAgICAg ICBpbnQgbiA9IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gc2l6ZW9mICooeyBuID0gMTA7IGlu dCB4W25dOyB4OyAmeDsgfSk7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb280KHZv aWQpICAgLy8gc2hvdWxkIG5vdCBJQ0UNCj4gPiA+ICt7DQo+ID4gPiArICAgICAgICByZXR1cm4g KCooew0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gMjA7DQo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAoKngpW25dW25dID0gX19idWlsdGluX21hbGxv YyhuICogbik7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVsxMl1bMV0gPSAx Ow0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHg7DQo+ID4gPiArICAgICAgICAgICAg ICAgIH0pKVsxMl1bMV07DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb281KHZvaWQp ICAgLy8gc2hvdWxkIHJldHVybiAxLCByZXR1cm5zIDANCj4gPiA+ICt7DQo+ID4gPiArICAgICAg ICBpbnQgbiA9IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gKCooew0KPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIG4gPSAyMDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBj aGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgKCp4KVswXVsxXSA9IDA7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg eDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgfSkpWzEyXVsxXTsNCj4gPiA+ICt9DQo+ID4gPiAr DQo+ID4gPiAraW50IGZvbzVjKHZvaWQpICAgLy8gc2hvdWxkIHJldHVybiA0MDANCj4gPiA+ICt7 DQo+ID4gPiArICAgICAgICBpbnQgbiA9IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gc2l6ZW9m KCooew0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAyMDsNCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4g KiBuKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVswXVsxXSA9IDA7DQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgeDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgfSkpOw0KPiA+ ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtpbnQgZm9vNWIodm9pZCkgICAvLyBzaG91bGQgcmV0dXJu IDEsIHJldHVybnMgMA0KPiA+ID4gK3sNCj4gPiA+ICsJaW50IG4gPSAwOw0KPiA+ID4gKyAgICAg ICAgcmV0dXJuICgqKHsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IDIw Ow0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKCp4KVtuXVtuXSA9IF9fYnVp bHRpbl9tYWxsb2MobiAqIG4pOw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICgqeClb MTJdWzFdID0gMTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzBdWzFdID0g MDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB4Ow0KPiA+ID4gKyAgICAgICAgICAg ICAgICB9KSlbMTJdWzFdOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtpbnQgZm9vNWEodm9p ZCkgICAvLyBzaG91bGQgcmV0dXJuIDEsIHJldHVybnMgMA0KPiA+ID4gK3sNCj4gPiA+ICsgICAg ICAgIHJldHVybiAoKih7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4gPSAy MDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClbbl1bbl0gPSBfX2J1 aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngp WzEyXVsxXSA9IDE7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVswXVsxXSA9 IDA7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeDsNCj4gPiA+ICsgICAgICAgICAg ICAgICAgfSkpWzEyXVsxXTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArDQo+ ID4gPiArDQo+ID4gPiAraW50IG1haW4oKQ0KPiA+ID4gK3sNCj4gPiA+ICsJaWYgKHNpemVvZihp bnRbMTBdKSAhPSBmb28zYigpKQ0KPiA+ID4gKwkJX19idWlsdGluX2Fib3J0KCk7DQo+ID4gPiAr DQo+ID4gPiArCWlmICgxICE9IGZvbzQoKSkNCj4gPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0K PiA+ID4gKw0KPiA+ID4gKwlpZiAoNDAwICE9IGZvbzVjKCkpDQo+ID4gPiArCQlfX2J1aWx0aW5f YWJvcnQoKTsNCj4gPiA+ICsNCj4gPiA+ICsJaWYgKDEgIT0gZm9vNWEoKSkNCj4gPiA+ICsJCV9f YnVpbHRpbl9hYm9ydCgpOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoMSAhPSBmb281YigpKSAvLyAt TzANCj4gPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoMSAh PSBmb281KCkpDQo+ID4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiA+ICsNCj4gPiA+ICsJ cmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDIuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL3ZsYS1zdGV4cHItMDIuYw0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGlu ZGV4IDAwMDAwMDAwMDAwLi45OWI0ZjU3MWU1Mg0KPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmxhLXN0ZXhwci0wMi5jDQo+ID4gPiBAQCAtMCww ICsxLDMxIEBADQo+ID4gPiArLyogUFIyOTk3MCAqLw0KPiA+ID4gKy8qIHsgZGctZG8gcnVuIH0g Ki8NCj4gPiA+ICsvKiB7IGRnLW9wdGlvbnMgIiIgfSAqLw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ ID4gKw0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb28yYSh2b2lkKSAgIC8vIHNob3VsZCBub3QgSUNF DQo+ID4gPiArew0KPiA+ID4gKyAgICAgICAgcmV0dXJuICh7IGludCBuID0gMjA7IHN0cnVjdCB7 IGludCB4W25dO30geDsgeC54WzEyXSA9IDE7IHNpemVvZih4KTsgfSk7DQo+ID4gPiArfQ0KPiA+ ID4gKw0KPiA+ID4gKyNpZiAwDQo+ID4gPiAraW50IGZvbzJiKHZvaWQpICAgLy8gc2hvdWxkIG5v dCBJQ0UNCj4gPiA+ICt7DQo+ID4gPiArICAgICAgICByZXR1cm4gc2l6ZW9mICooeyBpbnQgbiA9 IDIwOyBzdHJ1Y3QgeyBpbnQgeFtuXTt9IHg7IHgueFsxMl0gPSAxOyAmeDsgfSk7DQo+ID4gPiAr fQ0KPiA+ID4gKyNlbmRpZg0KPiA+ID4gKw0KPiA+ID4gK2ludCBtYWluKCkNCj4gPiA+ICt7DQo+ ID4gPiArCWlmIChzaXplb2Yoc3RydWN0IHsgaW50IHhbMjBdOyB9KSAhPSBmb28yYSgpKQ0KPiA+ ID4gKwkJX19idWlsdGluX2Fib3J0KCk7DQo+ID4gPiArI2lmIDANCj4gPiA+ICsJaWYgKHNpemVv ZihzdHJ1Y3QgeyBpbnQgeFsyMF07IH0pICE9IGZvbzJiKCkpDQo+ID4gPiArCQlfX2J1aWx0aW5f YWJvcnQoKTsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+ICsJcmV0dXJuIDA7DQo+ID4gPiArfQ0KPiA+ ID4gKw0KPiA+ID4gKw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Zs YS1zdGV4cHItMDMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDMuYw0KPiA+ ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwLi42MWY4OTg2 ZWFhMw0KPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvdmxhLXN0ZXhwci0wMy5jDQo+ID4gPiBAQCAtMCwwICsxLDk0IEBADQo+ID4gPiArLyogUFIy OTk3MCwgUFI5MTAzOCAqLw0KPiA+ID4gKy8qIHsgZGctZG8gcnVuIH0gKi8NCj4gPiA+ICsvKiB7 IGRnLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb28zYih2b2lkKSAg IC8vIHNob3VsZCBub3QgcmV0dXJuIDANCj4gPiA+ICt7DQo+ID4gPiArICAgICAgICBpbnQgbiA9 IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gc2l6ZW9mICooeyBuID0gMTA7IGludCB4W25dOyB4 OyAmeDsgfSk7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb280KHZvaWQpICAgLy8g c2hvdWxkIG5vdCBJQ0UNCj4gPiA+ICt7DQo+ID4gPiArICAgICAgICByZXR1cm4gKCooew0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gMjA7DQo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgY2hhciAoKngpW25dW25dID0gX19idWlsdGluX21hbGxvYyhuICogbik7 DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVsxMl1bMV0gPSAxOw0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIHg7DQo+ID4gPiArICAgICAgICAgICAgICAgIH0pKVsx Ml1bMV07DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK2ludCBmb281KHZvaWQpICAgLy8gc2hv dWxkIHJldHVybiAxLCByZXR1cm5zIDANCj4gPiA+ICt7DQo+ID4gPiArICAgICAgICBpbnQgbiA9 IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gKCooew0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgIG4gPSAyMDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClb bl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg KCp4KVswXVsxXSA9IDA7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeDsNCj4gPiA+ ICsgICAgICAgICAgICAgICAgfSkpWzEyXVsxXTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAr aW50IGZvbzVjKHZvaWQpICAgLy8gc2hvdWxkIHJldHVybiA0MDANCj4gPiA+ICt7DQo+ID4gPiAr ICAgICAgICBpbnQgbiA9IDA7DQo+ID4gPiArICAgICAgICByZXR1cm4gc2l6ZW9mKCooew0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG4gPSAyMDsNCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBjaGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgKCp4KVswXVsxXSA9IDA7DQo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgeDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgfSkpOw0KPiA+ID4gK30NCj4g PiA+ICsNCj4gPiA+ICtpbnQgZm9vNWIodm9pZCkgICAvLyBzaG91bGQgcmV0dXJuIDEsIHJldHVy bnMgMA0KPiA+ID4gK3sNCj4gPiA+ICsJaW50IG4gPSAwOw0KPiA+ID4gKyAgICAgICAgcmV0dXJu ICgqKHsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IDIwOw0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKCp4KVtuXVtuXSA9IF9fYnVpbHRpbl9tYWxs b2MobiAqIG4pOw0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICgqeClbMTJdWzFdID0g MTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzBdWzFdID0gMDsNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICB4Ow0KPiA+ID4gKyAgICAgICAgICAgICAgICB9KSlb MTJdWzFdOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtpbnQgZm9vNWEodm9pZCkgICAvLyBz aG91bGQgcmV0dXJuIDEsIHJldHVybnMgMA0KPiA+ID4gK3sNCj4gPiA+ICsgICAgICAgIHJldHVy biAoKih7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaW50IG4gPSAyMDsNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFs bG9jKG4gKiBuKTsNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzEyXVsxXSA9 IDE7DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVswXVsxXSA9IDA7DQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgeDsNCj4gPiA+ICsgICAgICAgICAgICAgICAgfSkp WzEyXVsxXTsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArDQo+ID4gPiArDQo+ ID4gPiAraW50IG1haW4oKQ0KPiA+ID4gK3sNCj4gPiA+ICsJaWYgKHNpemVvZihpbnRbMTBdKSAh PSBmb28zYigpKQ0KPiA+ID4gKwkJX19idWlsdGluX2Fib3J0KCk7DQo+ID4gPiArDQo+ID4gPiAr CWlmICgxICE9IGZvbzQoKSkNCj4gPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ID4gKw0K PiA+ID4gKwlpZiAoNDAwICE9IGZvbzVjKCkpDQo+ID4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsN Cj4gPiA+ICsNCj4gPiA+ICsJaWYgKDEgIT0gZm9vNWEoKSkNCj4gPiA+ICsJCV9fYnVpbHRpbl9h Ym9ydCgpOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoMSAhPSBmb281YigpKSAvLyAtTzANCj4gPiA+ ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ID4gKw0KPiA+ID4gKwlpZiAoMSAhPSBmb281KCkp DQo+ID4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiA+ICsNCj4gPiA+ICsJcmV0dXJuIDA7 DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1z dGV4cHItMDQuYw0KPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiA+IGluZGV4IDAwMDAw MDAwMDAwLi5mZmM4YjEyZmE5Yg0KPiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdmxhLXN0ZXhwci0wNC5jDQo+ID4gPiBAQCAtMCwwICsxLDM4IEBA DQo+ID4gPiArLyogUFI5MTAzOCAqLw0KPiA+ID4gKy8qIHsgZGctZG8gcnVuIH0gKi8NCj4gPiA+ ICsvKiB7IGRnLW9wdGlvbnMgIiIgfSAqLw0KPiA+ID4gKw0KPiA+ID4gKw0KPiA+ID4gKyNkZWZp bmUgQVJSQVlfU0laRSh4KSAoc2l6ZW9mKHgpIC8gc2l6ZW9mKCh4KVswXSkpDQo+ID4gPiArDQo+ ID4gPiArc3RydWN0IGxibSB7DQo+ID4gPiArDQo+ID4gPiArCWludCBEOw0KPiA+ID4gKwljb25z dCBpbnQqIERROw0KPiA+ID4gKw0KPiA+ID4gK30gRDJROSA9IHsgMiwNCj4gPiA+ICsJKGNvbnN0 IGludCopJihjb25zdCBpbnRbOV1bMl0pew0KPiA+ID4gKwkJeyAwLCAwIH0sDQo+ID4gPiArCQl7 IDEsIDAgfSwgeyAwLCAxIH0sIHsgLTEsIDAgfSwgeyAwLCAtMSB9LA0KPiA+ID4gKwkJeyAxLCAx IH0sIHsgLTEsIDEgfSwgeyAtMSwgLTEgfSwgeyAxLCAtMSB9LA0KPiA+ID4gKwl9DQo+ID4gPiAr fTsNCj4gPiA+ICsNCj4gPiA+ICt2b2lkIHpvdWhlX2xlZnQodm9pZCkNCj4gPiA+ICt7DQo+ID4g PiArCV9fYXV0b190eXBlIHh4ID0gKCooeyBpbnQgTiA9IDI7IHN0cnVjdCBsYm0gX194ID0gRDJR OTsgKChjb25zdCBpbnQoKilbOV1bTl0pX194LkRRKTsgfSkpOw0KPiA+ID4gKw0KPiA+ID4gKwlp ZiAoMSAhPSB4eFsxXVswXSkNCj4gPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ID4gKw0K PiA+ID4gKwlpZiAoMiAhPSBBUlJBWV9TSVpFKHh4WzFdKSkNCj4gPiA+ICsJCV9fYnVpbHRpbl9h Ym9ydCgpOw0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtpbnQgbWFpbigpDQo+ID4gPiArew0K PiA+ID4gKwl6b3VoZV9sZWZ0KCk7DQo+ID4gPiArCXJldHVybiAwOw0KPiA+ID4gK30NCj4gPiA+ ICsNCj4gPiA+ICsNCj4gPiA+IA0K