From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id 1D9A43858D3C for ; Thu, 2 Feb 2023 01:49:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1D9A43858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp73t1675302583th6ngm4z Received: from LAPTOP-EPITNQBU ( [58.60.1.3]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 02 Feb 2023 09:49:42 +0800 (CST) X-QQ-SSF: 01400000000000E0L000000A0000000 X-QQ-FEAT: 7YFKcddXagiIeWWFkJgJ5V3YnCsjHg5zk6XrJSwlWmrHm6sJvOhloIPzWf+FO MFO+oM11+Qora3/8BZm8moR6NzYdpVxRQ1wapkIEAxwCZReeaxqHf/pE/56WZKv875NqrM6 rba/xDBUDbtM778u8N9IvFFMk1JuXgNG5ocyh5l9WFu1AVBESBhUPJ0qFQfNbyT0j3FgyR/ EUm9TIl3tAY6fRxsCEcx3Tit9pQS+5+VkPwBDuJPgAP74e5IN2Nc3QbS22tp01rG2zVgfGN FeuiJLfVaZJN558cAoSzcdrhXSPFDkRtOpgXlCmYyvnlJaJJUaUim0H/x2Y6kKi4lSduviS LPuXG9J3HEpLoBj5Vv6TLYpCdHOqRxnG51D3PAdV6t32TOas3tDyfM6p95K4d1u9OK5foKA JzkDnZCMlnEwxKzuzXTtIg== X-QQ-GoodBg: 2 Date: Thu, 2 Feb 2023 09:49:43 +0800 From: "juzhe.zhong@rivai.ai" To: "Richard Biener" Cc: rguenther , gcc-patches , kito.cheng , richard.sandiford , jeffreyalaw , apinski Subject: Re: Re: [PATCH] CPROP: Allow cprop optimization when the function has a single block References: <2E16F446920AC99F+2023020120563582688674@rivai.ai>, <0CEDD257-703F-4ED3-B927-C21279557CE6@gmail.com> X-Priority: 3 X-GUID: EB0E0720-C7FA-498C-A732-C544319F748C X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart620306466878_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart620306466878_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 WWVhaCwgVGhhbmtzLiBZb3UgYXJlIHJpZ2h0LiBDU0Ugc2hvdWxkIGRvIHRo ZSBqb2IuIA0KTm93IEkga25vdyB0aGUgcmVhc29uIENTRSBmYWlsZWQgdG8g b3B0aW1pemUgaXMgSSBpbmNsdWRlIFZMX1JFR05VTSg2NikvVlRZUEVfUkVO VU0oNjcpIGhhcmQgcmVnDQphcyB0aGUgZGVwZW5kZW5jeSBvZiBwcmVkX2Jy b2FkY2FzdDoNCihpbnNuIDE5IDE4IDIwIDQgKHNldCAocmVnOlZOeDFESSAx NTIpDQo+ICAgICAgICAgKGlmX3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpW TngxQkkgWw0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6 Vk54MUJJIHJlcGVhdCBbDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDEgWzB4MV0pDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsw eDRdKQ0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMiBbMHgy XSkgcmVwZWF0ZWQgeDINCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDAgWzBdKQ0KPiAgICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYg dmwpDQo+ICAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkN Cj4gICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZQUkVESUNBVEUpDQo+ICAg ICAgICAgICAgICh2ZWNfZHVwbGljYXRlOlZOeDFESSAocmVnL3Y6REkgMTQ4 IFsgeCBdKSkNCj4gICAgICAgICAgICAgKHVuc3BlYzpWTngxREkgWw0KPiAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQo+ICAgICAg ICAgICAgICAgICBdIFVOU1BFQ19WVU5ERUYpKSkgInJ2di5jIjoyMjoyMyA2 OTUge3ByZWRfYnJvYWRjYXN0dm54MWRpfQ0KPiAgICAgIChuaWwpKQ0KVGhl biBDU0UgZmFpbGVkIHRvIHNldCB0aGUgMTUyIGFzIGNvcHkuDQoNClZMX1JF R05VTSg2NikvVlRZUEVfUkVOVU0oNjcpIGFyZSB0aGUgZ2xvYmFsIGhhcmQg cmVnIHRoYXQgSSBzaG91bGQgbWFrZSBlYWNoIFJWViBpbnN0cnVjdGlvbiBk ZXBlbmQgb24gdGhlbS4NClNpbmNlIHdlIHVzZSB2c2V0dmwgaW5zdHJ1Y3Rp b24gKHdoaWNoIGlzIHNldHRpbmcgZ2xvYmFsIFZMX1JFR05VTSg2NikvVlRZ UEVfUkVOVU0oNjcpIHN0YXR1cykgdG8gc2V0IHRoZSBnbG9iYWwgc3RhdHVz IGZvcg0KZWFjaCBSVlYgaW5zdHJ1Y3Rpb24uIA0KSW5jbHVkaW5nIHRoZSBk ZXBlbmRlbmN5IGhlcmUgaXMgdG8gbWFrZSBzdXJlIHRoZSBnbG9iYWwgVkwv VlRZUEUgc3RhdHVzIGlzIGNvcnJlY3Qgb2YgZWFjaCBSVlYgaW5zdHJ1Y3Rp b24uIChJZiB3ZSBkb24ndCBpbmNsdWRlDQpzdWNoIGRlcGVuZGVuY3kgaW4g UlZWIGluc3RydWN0aW9uLCBpbnN0cnVjdGlvbiBzY2hlZHVsaW5nIG1heSBt b3ZlIHRoZSBSVlYgaW5zdHJ1Y3Rpb25zIGFuZCB2c2V0dmwgaW5zdHJ1Y3Rp b25zIHJhbmRvbWx5IHRoZW4NCnByb2R1Y2UgaW5jb3JyZWN0IHZzZXR2bCBj b25maWd1cmF0aW9uKQ0KDQpUaGUgb3JpZ2luYWwgcmVnX2NsYXNzIG9mIFZM X1JFR05VTSg2NikvVlRZUEVfUkVOVU0oNjcpIEkgc2V0IGhlcmU6DQpyaXNj dl9yZWdub190b19jbGFzcyBbVkxfUkVHTlVNXSA9IFZMX1JFR1M7DQpyaXNj dl9yZWdub190b19jbGFzcyBbVlRZUEVfUkVOVU1dID0gVlRZUEVfUkVHUzsN ClN1Y2ggY29uZmlndXJhdGlvbiBtYWtlIENTRSBmYWlsZWQuDQoNCkhvd2V2 ZXIsIGlmIEkgY2hhbmdlIHRoZSByZWdfY2xhc3MgOg0KcmlzY3ZfcmVnbm9f dG9fY2xhc3MgW1ZMX1JFR05VTV0gPSBOT19SRUdTOw0KcmlzY3ZfcmVnbm9f dG9fY2xhc3MgW1ZUWVBFX1JFTlVNXSA9IE5PX1JFR1M7DQpUaGUgQ1NFIG5v dyBjYW4gZG8gdGhlIG9wdGltaXphdGlvbiBub3chDQoNCjEpIFdvdWxkIHlv dSBtaW5kIHRlbGxpbmcgbWUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGVt Pw0KMikgSWYgSSBzZXQgdGhlc2UgMiBnbG9iYWwgc3RhdHVzIHJlZ2lzdGVy IGFzIE5PX1JFR1MsIHdpbGwgaXQgY3JlYXRlIGlzc3VlcyBmb3IgdGhlIGds b2JhbCBzdGF0dXMgY29uZmlndXJhdGlvbiBvZiBlYWNoIFJWViBpbnN0cnVj dGlvbnMgPw0KDQpUaGFua3MuDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkN CiANCkZyb206IFJpY2hhcmQgQmllbmVyDQpEYXRlOiAyMDIzLTAyLTAxIDIz OjQ2DQpUbzoganV6aGUuemhvbmcNCkNDOiByZ3VlbnRoZXI7IGdjYy1wYXRj aGVzOyBraXRvLmNoZW5nOyByaWNoYXJkLnNhbmRpZm9yZDsgamVmZnJleWFs YXc7IGFwaW5za2kNClN1YmplY3Q6IFJlOiBbUEFUQ0hdIENQUk9QOiBBbGxv dyBjcHJvcCBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZnVuY3Rpb24gaGFzIGEg c2luZ2xlIGJsb2NrDQoNCg0KQW0gMDEuMDIuMjAyMyB1bSAxMzo1NyBzY2hy aWViIGp1emhlLnpob25nQHJpdmFpLmFpOg0KDQrvu78gDQo+PiBJIHNlZSBs b2FkcyBvZiBVTlNQRUNzLCB0aGF0IG1pZ2h0IGV4cGxhaW4gd2h5IHNvbWUg cGFzc2VzIGRvIHNvbWV0aGluZw0KPj4gYW5kIHNvbWUgbm90LiAgVGhhdCBz YWlkLCBub3Qgc3VyZSB3aGF0IGV4YWN0bHkgQ1BST1AgZG9lcywgdGhlIHR3 bw0KPj4gcHJlZF9icm9hZGNhc3QgaW5zbnMgbG9vayBleGFjdGx5IHRoZSBz YW1lIHNvIENTRSBzaG91bGQgQ1NFIHRoZW0/DQpZZXMsIHRoZSAic291cmNl IiB0aGVzZSAyIHByZWRfYnJvYWRjYXN0IHRoZSBzYW1lLiBIb3dldmVyLCB0 aGV5IGhhdmUgZGlmZmVyZW50IHBzZXVkb3MgaW4gdGhlaXIgImRlc3QiIChv cGVyYW5kc1swXSkNClRoZSBmaXJzdCBvbmUgaXMgMTUxLCB0aGUgc2Vjb25k IG9uZSBpcyAxNTIuIEFuZCB0aGUgcmVzdWx0IGluIHRoZXNlIDIgcHNldWRv cyBhcmUgdGhlIHNhbWUuDQpUaGUgZmlyc3QgcHJlZF9hZGQgdXNlIDE1MSwg dGhlIHNlY29uZCBwcmVkX2FkZCB1c2UgMTUyLg0KDQpDU0Ugc2hvdWxkIGRv IHRoZSBqb2IgdG8gZWxpbWluYXRlIHRoZSBzZWNvbmQgcHJlZF9icm9hZGNh c3QsIGJ1dCBJIGFtIG5vdCBzdXJlIHdoZXRoZXIgIENTRSBjYW4gcHJvcGFn YXRlIHRoZSAxNTEgcHNldWRvDQp0byB0aGUgc2Vjb25kIHByZWRfYWRkID8/ DQoNCkl0IHNob3VsZCBkbyB0aGF0LiAgQXQgbGVhc3QgaXQgc2hvdWxkIG1h a2Ugc2V0dGluZyAxNTIgYSBjb3B5LiAgU28geW91IG5lZWQgdG8gZmlndXJl IHdoeSBpdCBkb2VzbuKAmXQgZG8gdGhhdD8gIE1heWJlIGl0IHVzZXMgY29z dHMgYW5kIHRob3NlIHNheSByZWNvbXB1dGluZyBpcyBjaGVhcGVyIHRoYW4g YSBjb3B5Pw0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206 IFJpY2hhcmQgQmllbmVyDQpEYXRlOiAyMDIzLTAyLTAxIDIwOjUxDQpUbzog anV6aGUuemhvbmdAcml2YWkuYWkNCkNDOiBnY2MtcGF0Y2hlczsga2l0by5j aGVuZzsgcmljaGFyZC5zYW5kaWZvcmQ7IGplZmZyZXlhbGF3OyBhcGluc2tp DQpTdWJqZWN0OiBSZTogUmU6IFtQQVRDSF0gQ1BST1A6IEFsbG93IGNwcm9w IG9wdGltaXphdGlvbiB3aGVuIHRoZSBmdW5jdGlvbiBoYXMgYSBzaW5nbGUg YmxvY2sNCk9uIFdlZCwgMSBGZWIgMjAyMywganV6aGUuemhvbmdAcml2YWku YWkgd3JvdGU6DQogDQo+ICBJIGRvbid0IGtub3duIHdoZXRoZXIgQ1NFIGRv IHRoZSBqb2IuIFdoYXQgSSBzYXcgaXMgQ1BST1AgZG8gdGhlIG9wdGltaXph dGlvbiB3aGVuIHdlIGhhdmUgbW9yZSB0aGFuIDEgYmxvY2suDQo+IA0KPiBU aGlzIHRoZSBSVEwgZHVtcCBiZWZvcmUgQ1BST1A6DQo+IA0KPiAoaW5zbiAx OSAxOCAyMCA0IChzZXQgKHJlZzpWTngxREkgMTUxKQ0KPiAgICAgICAgIChp Zl90aGVuX2Vsc2U6Vk54MURJICh1bnNwZWM6Vk54MUJJIFsNCj4gICAgICAg ICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlZOeDFCSSByZXBlYXQgWw0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxIFsw eDFdKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBdKQ0KPiAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCj4gICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pIHJlcGVhdGVkIHgyDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCj4gICAg ICAgICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KPiAgICAgICAgICAg ICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQo+ICAgICAgICAgICAgICAg ICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAgICAgICAgICAgICAodmVjX2R1 cGxpY2F0ZTpWTngxREkgKHJlZy92OkRJIDE0OCBbIHggXSkpDQo+ICAgICAg ICAgICAgICh1bnNwZWM6Vk54MURJIFsNCj4gICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDAgWzBdKQ0KPiAgICAgICAgICAgICAgICAgXSBVTlNQ RUNfVlVOREVGKSkpICJydnYuYyI6MjI6MjMgNjk1IHtwcmVkX2Jyb2FkY2Fz dHZueDFkaX0NCj4gICAgICAobmlsKSkNCj4gKGluc24gMjAgMTkgMjEgNCAo c2V0IChyZWcvdjpWTngxREkgMTM5IFsgdjMgXSkNCj4gICAgICAgICAoaWZf dGhlbl9lbHNlOlZOeDFESSAodW5zcGVjOlZOeDFCSSBbDQo+ICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWTngxQkkgcmVwZWF0IFsNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSBbMHgx XSkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgXSkNCj4gICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4NF0pDQo+ICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBlYXRlZCB4Mg0KPiAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQo+ICAgICAg ICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2bCkNCj4gICAgICAgICAgICAg ICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KPiAgICAgICAgICAgICAgICAg XSBVTlNQRUNfVlBSRURJQ0FURSkNCj4gICAgICAgICAgICAgKHBsdXM6Vk54 MURJIChyZWcvdjpWTngxREkgMTM4IFsgdjIgXSkNCj4gICAgICAgICAgICAg ICAgIChyZWc6Vk54MURJIDE1MSkpDQo+ICAgICAgICAgICAgICh1bnNwZWM6 Vk54MURJIFsNCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAg WzBdKQ0KPiAgICAgICAgICAgICAgICAgXSBVTlNQRUNfVlVOREVGKSkpICJy dnYuYyI6MjI6MjMgMTUyOCB7cHJlZF9hZGR2bngxZGl9DQo+ICAgICAgKGV4 cHJfbGlzdDpSRUdfREVBRCAocmVnOlZOeDFESSAxNTEpDQo+ICAgICAgICAg KG5pbCkpKQ0KPiAoaW5zbiAyMSAyMCAyMiA0IChzZXQgKHJlZzpWTngxREkg MTUyKQ0KPiAgICAgICAgIChpZl90aGVuX2Vsc2U6Vk54MURJICh1bnNwZWM6 Vk54MUJJIFsNCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9y OlZOeDFCSSByZXBlYXQgWw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAxIFsweDFdKQ0KPiAgICAgICAgICAgICAgICAgICAg ICAgICBdKQ0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBb MHg0XSkNCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4 Ml0pIHJlcGVhdGVkIHgyDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 X2ludCAwIFswXSkNCj4gICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY2 IHZsKQ0KPiAgICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUp DQo+ICAgICAgICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAg ICAgICAgICAgICAodmVjX2R1cGxpY2F0ZTpWTngxREkgKHJlZy92OkRJIDE0 OCBbIHggXSkpDQo+ICAgICAgICAgICAgICh1bnNwZWM6Vk54MURJIFsNCj4g ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KPiAgICAg ICAgICAgICAgICAgXSBVTlNQRUNfVlVOREVGKSkpICJydnYuYyI6MjM6MjMg Njk1IHtwcmVkX2Jyb2FkY2FzdHZueDFkaX0NCj4gICAgICAobmlsKSkNCj4g KGluc24gMjIgMjEgMjMgNCAoc2V0IChyZWcvdjpWTngxREkgMTQwIFsgdjQg XSkNCj4gICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVjOlZO eDFCSSBbDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpW TngxQkkgcmVwZWF0IFsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMSBbMHgxXSkNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgXSkNCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4 NF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkN Cj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCj4gICAg ICAgICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KPiAgICAgICAgICAg ICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQo+ICAgICAgICAgICAgICAg ICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAgICAgICAgICAgICAocGx1czpW TngxREkgKHJlZy92OlZOeDFESSAxMzggWyB2MiBdKQ0KPiAgICAgICAgICAg ICAgICAgKHJlZzpWTngxREkgMTUyKSkNCj4gICAgICAgICAgICAgKHJlZy92 OlZOeDFESSAxMzkgWyB2MyBdKSkpICJydnYuYyI6MjM6MjMgMTUyOCB7cHJl ZF9hZGR2bngxZGl9DQo+ICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVn OlZOeDFESSAxNTIpDQo+ICAgICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAo cmVnL3Y6Vk54MURJIDEzOSBbIHYzIF0pDQo+ICAgICAgICAgICAgIChleHBy X2xpc3Q6UkVHX0RFQUQgKHJlZy92OlZOeDFESSAxMzggWyB2MiBdKQ0KPiAg ICAgICAgICAgICAgICAgKG5pbCkpKSkpDQo+IA0KPiBBZnRlciBDUlBPUDoN Cj4gKGluc24gMTUgMTQgMTYgNCAoc2V0IChyZWc6Vk54MURJIDE0NykNCj4g ICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVjOlZOeDFCSSBb DQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWTngxQkkg cmVwZWF0IFsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMSBbMHgxXSkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgXSkN Cj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4NF0pDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBl YXRlZCB4Mg0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBb MF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2bCkNCj4g ICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KPiAgICAg ICAgICAgICAgICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCj4gICAgICAgICAg ICAgKHZlY19kdXBsaWNhdGU6Vk54MURJIChyZWcvdjpESSAxNDMgWyB4IF0p KQ0KPiAgICAgICAgICAgICAodW5zcGVjOlZOeDFESSBbDQo+ICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCj4gICAgICAgICAgICAg ICAgIF0gVU5TUEVDX1ZVTkRFRikpKSAicnZ2LmMiOjExOjIzIDY5NSB7cHJl ZF9icm9hZGNhc3R2bngxZGl9DQo+ICAgICAgKG5pbCkpDQo+IChpbnNuIDE2 IDE1IDE4IDQgKHNldCAocmVnL3Y6Vk54MURJIDEzOSBbIHYzIF0pDQo+ICAg ICAgICAgKGlmX3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpWTngxQkkgWw0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6Vk54MUJJIHJl cGVhdCBbDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDEgWzB4MV0pDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIF0pDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0KPiAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMiBbMHgyXSkgcmVwZWF0 ZWQgeDINCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBd KQ0KPiAgICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQo+ICAg ICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkNCj4gICAgICAg ICAgICAgICAgIF0gVU5TUEVDX1ZQUkVESUNBVEUpDQo+ICAgICAgICAgICAg IChwbHVzOlZOeDFESSAocmVnL3Y6Vk54MURJIDEzOCBbIHYyIF0pDQo+ICAg ICAgICAgICAgICAgICAocmVnOlZOeDFESSAxNDcpKQ0KPiAgICAgICAgICAg ICAodW5zcGVjOlZOeDFESSBbDQo+ICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwIFswXSkNCj4gICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZV TkRFRikpKSAicnZ2LmMiOjExOjIzIDE1Mjgge3ByZWRfYWRkdm54MWRpfQ0K PiAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWTngxREkgMTQ3KQ0K PiAgICAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJlZy92OlZOeDFESSAx MzggWyB2MiBdKQ0KPiAgICAgICAgICAgICAobmlsKSkpKQ0KPiAoaW5zbiAx OCAxNiAxOSA0IChzZXQgKHJlZy92OlZOeDFESSAxNDAgWyB2NCBdKQ0KPiAg ICAgICAgIChpZl90aGVuX2Vsc2U6Vk54MURJICh1bnNwZWM6Vk54MUJJIFsN Cj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlZOeDFCSSBy ZXBlYXQgWw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 X2ludCAxIFsweDFdKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBdKQ0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCj4g ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pIHJlcGVh dGVkIHgyDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFsw XSkNCj4gICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KPiAg ICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQo+ICAgICAg ICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAgICAgICAgICAg ICAocGx1czpWTngxREkgKHJlZy92OlZOeDFESSAxMzkgWyB2MyBdKQ0KPiAg ICAgICAgICAgICAgICAgKHJlZzpWTngxREkgMTQ3KSkNCj4gICAgICAgICAg ICAgKHVuc3BlYzpWTngxREkgWw0KPiAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCBbMF0pDQo+ICAgICAgICAgICAgICAgICBdIFVOU1BFQ19W VU5ERUYpKSkgInJ2di5jIjoxMjoyMyAxNTI4IHtwcmVkX2FkZHZueDFkaX0N Cj4gICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6Vk54MURJIDE0OCkN Cj4gICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWcvdjpWTngxREkg MTM5IFsgdjMgXSkNCj4gICAgICAgICAgICAgKG5pbCkpKSkNCj4gDQo+IFlv dSBjYW4gc2VlIENQUk9QIHJlbW92ZSB0aGUgc2Vjb25kIHRoZSAicHJlZF9i cm9hZGNhc3QiIGluc3RydWN0aW9uIGFuZCBwcm9wYWdhdGUgdGhlIHJlc3Vs dCB0byB0aGUgc2Vjb25kICJwcmVkX2FkZCIgaW5zdHJ1Y3Rpb24/DQogDQpJ IHNlZSBsb2FkcyBvZiBVTlNQRUNzLCB0aGF0IG1pZ2h0IGV4cGxhaW4gd2h5 IHNvbWUgcGFzc2VzIGRvIHNvbWV0aGluZw0KYW5kIHNvbWUgbm90LiAgVGhh dCBzYWlkLCBub3Qgc3VyZSB3aGF0IGV4YWN0bHkgQ1BST1AgZG9lcywgdGhl IHR3bw0KcHJlZF9icm9hZGNhc3QgaW5zbnMgbG9vayBleGFjdGx5IHRoZSBz YW1lIHNvIENTRSBzaG91bGQgQ1NFIHRoZW0/DQogDQo+IA0KPiANCj4ganV6 aGUuemhvbmdAcml2YWkuYWkNCj4gIA0KPiBGcm9tOiBSaWNoYXJkIEJpZW5l cg0KPiBEYXRlOiAyMDIzLTAyLTAxIDIwOjQwDQo+IFRvOiBKdS1aaGUgWmhv bmcNCj4gQ0M6IGdjYy1wYXRjaGVzOyBraXRvLmNoZW5nOyByaWNoYXJkLnNh bmRpZm9yZDsgamVmZnJleWFsYXc7IGFwaW5za2kNCj4gU3ViamVjdDogUmU6 IFtQQVRDSF0gQ1BST1A6IEFsbG93IGNwcm9wIG9wdGltaXphdGlvbiB3aGVu IHRoZSBmdW5jdGlvbiBoYXMgYSBzaW5nbGUgYmxvY2sNCj4gT24gV2VkLCAx IEZlYiAyMDIzLCBqdXpoZS56aG9uZ0ByaXZhaS5haSB3cm90ZToNCj4gIA0K PiA+IEZyb206IEp1LVpoZSBaaG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+ DQo+ID4gDQo+ID4gSGksIHRoaXMgcGF0Y2ggaXMgcHJlc2VudCBmb3IgR0ND IDE0IHNpbmNlIEkgdW5kZXJzdGFuZCBpdCdzIG5vdCBhcHByb3ByaWF0ZQ0K PiA+IHRvIGxhbmQgaXQgaW4gR0NDIDEzLg0KPiA+IA0KPiA+IE5VTV9GSVhF RF9CTE9DS1MgPSAyIHNpbmNlIEdDQyBkZWZpbmUgZWFjaCBmdW5jdGlvbiBo YXMgYWxlYXN0IDIgYmxvY2tzDQo+ID4gb25lIGlzIGVudHJ5IGJsb2NrLCB0 aGUgb3RoZXIgaXMgZXhpdCBibG9jay4NCj4gPiBTbyBhY2NvcmRpbmcgdGhp cyBjb2RlLCB0aGUgZnVuY3Rpb24gd2lsbCBub3QgZG8gY3Byb3Agb3B0aW1p emF0aW9uIHdoZW4NCj4gPiB0aGVyZSBpcyBvbmx5IGV4YWN0bHkgb25lIHNp bmdsZSBibG9jay4NCj4gIA0KPiBjcHJvcCAvIEdDU0UgYXJlIGdsb2JhbCBk YXRhZmxvdyBwcm9ibGVtcywgdGhlcmUncyAibm90aGluZyIgdG8gZG8gZm9y DQo+IGEgc2luZ2xlIGJsb2NrLCB0aGUgbG9jYWwgcHJvYmxlbSBwbHVzIGl0 cyBhcHBsaWNhdGlvbiBpc24ndCBjb25zaWRlcmVkDQo+IGJ1dCBwcm9iYWJs eSBsZWZ0IGZvciBDU0UuDQo+ICANCj4gV2h5IGRvZXMgQ1NFIG5vdCBwZXJm b3JtIHRoZSBkZXNpcmVkIHRyYW5zZm9ybT8NCj4gIA0KPiA+IEkgYW0gbm90 IHN1cmUgd2hldGhlciBpdCdzIGNvcnJlY3QgdG8gZml4IGl0IGxpa2UgdGhp cy4NCj4gPiBDYW4gYW55b25lIHRlbGwgbWUgd2h5IGZvcmJpZCBjcHJvcCBv cHRpbWl6YXRpb24gaWYgdGhlIGZ1bmN0aW9uIG9ubHkgaGFzIHMNCj4gPiBz aW5nbGUgYmxvY2sgPw0KPiA+IA0KPiA+IExldCdzIHRha2UgYSBsb29rIGF0 IHRoZXNlIDIgZXhhbXBsZXMgb2YgUlZWIGludHJpbnNpY3M6DQo+ID4gMS4g ICAgdm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0X3QgeCwg aW50IG4pDQo+ID4gICAgICAgew0KPiA+ICAgICAgIHZpbnQ2NG0xX3QgdiA9 IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4gKyAxLCA0KTsNCj4gPiAgICAg ICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92bGU2NF92X2k2NG0xX3R1ICh2 LCBpbiArIDIsIDQpOw0KPiA+ICAgICAgIHZpbnQ2NG0xX3QgdjMgPSBfX3Jp c2N2X3ZhZGRfdnhfaTY0bTEgKHYyLCB4LCA0KTsNCj4gPiAgICAgICB2aW50 NjRtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2k2NG0xICh2MywgeCwgNCk7 DQo+ID4gICAgICAgX19yaXNjdl92c2U2NF92X2k2NG0xIChvdXQgKyAyLCB2 NCwgNCk7DQo+ID4gICAgICAgfQ0KPiA+IA0KPiA+IGFzbToNCj4gPiAgICAg IGFkZGkgc3Asc3AsLTE2DQo+ID4gc3cgYTIsOChzcCkNCj4gPiBzdyBhMywx MihzcCkNCj4gPiBzdyBhMiwwKHNwKQ0KPiA+IHN3IGEzLDQoc3ApDQo+ID4g YWRkaSBhNSxhMCwxDQo+ID4gdnNldGl2bGkgemVybyw0LGU2NCxtMSx0YSxt YQ0KPiA+IGFkZGkgYTAsYTAsMg0KPiA+IHZsZTY0LnYgdjI0LDAoYTUpDQo+ ID4gYWRkaSBhNSxzcCw4DQo+ID4gdmxzZTY0LnYgdjI3LDAoYTUpLHplcm8N Cj4gPiBhZGRpIGExLGExLDINCj4gPiB2c2V0dmxpIHplcm8semVybyxlNjQs bTEsdHUsbWENCj4gPiB2bGU2NC52IHYyNCwwKGEwKQ0KPiA+IHZzZXR2bGkg emVybyx6ZXJvLGU2NCxtMSx0YSxtYQ0KPiA+IHZsc2U2NC52IHYyNSwwKHNw KSx6ZXJvDQo+ID4gdmFkZC52diB2MjYsdjI0LHYyNw0KPiA+IHZhZGQudnYg djI0LHYyNix2MjUNCj4gPiB2c2U2NC52IHYyNCwwKGExKQ0KPiA+IGFkZGkg c3Asc3AsMTYNCj4gPiBqciByYQ0KPiA+IHlvdSBjYW4gc2VlIGhlcmUgdGhl cmUgYXJlIDIgdmxzZTY0LnYgaW5zdHJ1Y3Rpb25zIHRoYXQgYnJvYWRjYXN0 IHRoZSBzY2FsYXIgdmFsdWUgIngiDQo+ID4gR0NDIGZhaWwgdG8gZWxpbWlu YXRlIHRoZSBzZWNvbmQgdmxzZTY0LnYgaW5zdHJ1Y3Rpb24gc2luY2UgR0ND IGRvZXNuJ3QgZG8gdGhlIGNwcm9wDQo+ID4gb3B0aW1pemF0aW9uICh0aGUg ZnVuY3Rpb24gb25seSBoYXMgMSBzaW5nbGUgYmxvY2spLiBJdCBjYW4gYmUg b3B0aW1pemVkIGlmIHdlIGFwcGx5DQo+ID4gdGhpcyBwYXRjaC4NCj4gPiAN Cj4gPiAyLiB2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50NjRf dCB4LCBpbnQgbikNCj4gPiB7DQo+ID4gICAgIGlmIChuKSB7DQo+ID4gICAg ICAgdmludDY0bTFfdCB2ID0gX19yaXNjdl92bGU2NF92X2k2NG0xIChpbiAr IDEsIDQpOw0KPiA+ICAgICAgIHZpbnQ2NG0xX3QgdjIgPSBfX3Jpc2N2X3Zs ZTY0X3ZfaTY0bTFfdHUgKHYsIGluICsgMiwgNCk7DQo+ID4gICAgICAgdmlu dDY0bTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pNjRtMSAodjIsIHgsIDQp Ow0KPiA+ICAgICAgIHZpbnQ2NG0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhf aTY0bTEgKHYzLCB4LCA0KTsNCj4gPiAgICAgICBfX3Jpc2N2X3ZzZTY0X3Zf aTY0bTEgKG91dCArIDIsIHY0LCA0KTsNCj4gPiAgICAgfQ0KPiA+IH0NCj4g PiANCj4gPiBhc206DQo+ID4gICBmMToNCj4gPiB2c2V0aXZsaSB6ZXJvLDQs ZTY0LG0xLHRhLG1hDQo+ID4gYmVxIGE0LHplcm8sLkw3DQo+ID4gYWRkaSBz cCxzcCwtMTYNCj4gPiBzdyBhMiw4KHNwKQ0KPiA+IHN3IGEzLDEyKHNwKQ0K PiA+IGFkZGkgYTUsYTAsMQ0KPiA+IHZsZTY0LnYgdjI0LDAoYTUpDQo+ID4g YWRkaSBhMCxhMCwyDQo+ID4gYWRkaSBhNSxzcCw4DQo+ID4gdmxzZTY0LnYg djI1LDAoYTUpLHplcm8NCj4gPiBhZGRpIGExLGExLDINCj4gPiB2c2V0dmxp IHplcm8semVybyxlNjQsbTEsdHUsbWENCj4gPiB2bGU2NC52IHYyNCwwKGEw KQ0KPiA+IHZhZGQudnYgdjI2LHYyNCx2MjUNCj4gPiB2YWRkLnZ2IHYyNCx2 MjYsdjI1DQo+ID4gdnNlNjQudiB2MjQsMChhMSkNCj4gPiBhZGRpIHNwLHNw LDE2DQo+ID4ganIgcmENCj4gPiAuTDc6DQo+ID4gcmV0DQo+ID4gDQo+ID4g SGVyZSwgaWYgd2UgYWRkIGlmIChuKSBjb25kaXRpb24gaGVyZSwgdGhlIHBy b2dyYW0gd2lsbCBlbmQgdXAgd2l0aCBtb3JlIHRoYW4gMSBibG9jay4NCj4g PiBTbyBHQ0Mgd2lsbCBkbyB0aGUgY3Byb3Agb3B0aW1pemF0aW9uIGFuZCB0 aGUgc2Vjb25kIHZsc2U2NC52IGluc3RydWN0aW9uIGlzIGVsaW1pbmF0ZWQu DQo+ID4gDQo+ID4gSSBhbSBub3Qgc3VyZSB3aGV0aGVyIHRoaXMgcGF0Y2gg aXMgY29ycmVjdC4NCj4gPiBDYW4gYW55b25lIGhlbHAgbWUgd2l0aCB0aGF0 ID8NCj4gPiBUaGFua3MuDQo+ID4gDQo+ID4gDQo+ID4gZ2NjL0NoYW5nZUxv ZzoNCj4gPiANCj4gPiAgICAgICAgICogY3Byb3AuY2MgKG9uZV9jcHJvcF9w YXNzKTogUmVtb3ZlICsxLg0KPiA+IA0KPiA+IC0tLQ0KPiA+ICBnY2MvY3By b3AuY2MgfCAyICstDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9n Y2MvY3Byb3AuY2MgYi9nY2MvY3Byb3AuY2MNCj4gPiBpbmRleCA2ZWMwYmRh NGEyNC4uNjE1YmM1MDc4YjYgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2Nwcm9w LmNjDQo+ID4gKysrIGIvZ2NjL2Nwcm9wLmNjDQo+ID4gQEAgLTE3NDksNyAr MTc0OSw3IEBAIG9uZV9jcHJvcF9wYXNzICh2b2lkKQ0KPiA+ICAgIGludCBj aGFuZ2VkID0gMDsNCj4gPiAgDQo+ID4gICAgLyogUmV0dXJuIGlmIHRoZXJl J3Mgbm90aGluZyB0byBkbywgb3IgaXQgaXMgdG9vIGV4cGVuc2l2ZS4gICov DQo+ID4gLSAgaWYgKG5fYmFzaWNfYmxvY2tzX2Zvcl9mbiAoY2Z1bikgPD0g TlVNX0ZJWEVEX0JMT0NLUyArIDENCj4gPiArICBpZiAobl9iYXNpY19ibG9j a3NfZm9yX2ZuIChjZnVuKSA8PSBOVU1fRklYRURfQkxPQ0tTDQo+ID4gICAg ICAgIHx8IGdjc2Vfb3JfY3Byb3BfaXNfdG9vX2V4cGVuc2l2ZSAoXyAoImNv bnN0L2NvcHkgcHJvcGFnYXRpb24gZGlzYWJsZWQiKSkpDQo+ID4gICAgICBy ZXR1cm4gMDsNCj4gPiAgDQo+ID4gDQo+ICANCj4gDQogDQotLSANClJpY2hh cmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NClNVU0UgU29mdHdhcmUg U29sdXRpb25zIEdlcm1hbnkgR21iSCwgRnJhbmtlbnN0cmFzc2UgMTQ2LCA5 MDQ2MSBOdWVybmJlcmcsDQpHZXJtYW55OyBHRjogSXZvIFRvdGV2LCBBbmRy ZXcgTXllcnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOw0K SFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQogDQo= ------=_001_NextPart620306466878_=------