From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr1.qq.com (smtpbgbr1.qq.com [54.207.19.206]) by sourceware.org (Postfix) with ESMTPS id DE1913858D35 for ; Wed, 28 Jun 2023 14:49:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DE1913858D35 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: bizesmtp69t1687963742tp3nvzox Received: from TABLET-POE6JQHH ( [115.44.118.116]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 28 Jun 2023 22:49:01 +0800 (CST) X-QQ-SSF: 01400000000000G0S000000A0000000 X-QQ-FEAT: Xz3VOcA7Mr27LMvOtFENWaJdlHL/GIcd+DlSw7dV2xh8ig+era7a4Ct2sFgc1 faThJYeIeUBshxTzORmcYaPGRubDPHi8HFZFBS36vYeJF/0VepyhuNEa4g5KVzd13vZYMAZ Hdo27n/Cr6FXzTGmPhWNE7V8eyaPqEOfODfe2kR1BGrmt6qJepc0TvR83LKbd+JSZhYg4sG 32EHpAXaLiV0TXuupT6ZqT6RyGlveRsDJcin+0q8hiSVArP+OpkfqX9HWujat6RMo6QUHSJ +aVxXd80rjikEt3OQh8z/ocnUiF0mTPOxdoTQYGdWuc3RCzLh9Zn2DyH8wlauRAgiUWgIS8 iuIDL46CpAxTIQkwBI2zcgz0fKA8mPFwGCTBepJutr9ydIrLVZEp9bFFte7cf9Uh6Zi5kOt iYkJixqxftc= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 16181478203220351671 Date: Wed, 28 Jun 2023 22:49:01 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: gcc-patches Cc: rguenther , jlaw , richard.sandiford Subject: Re: FW: [PATCH v5 0/19] Support early break/return auto-vectorization References: , X-Priority: 3 X-GUID: B883FE1F-F1C4-47BD-9E47-6DE963CF7CE6 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart144406372236_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE autolearn=no 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_NextPart144406372236_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGksIFRhbWFyLg0KDQpUaGlzIGlzIGFuIGFtYXppbmcgYXV0by12ZWN0b3Jp emF0aW9uIGZsb3cuDQoNCkkgYW0gdGhpbmtpbmcgYWJvdXQgd2hldGhlciBS VlYgY2FuIGFsc28gZ2V0IGJlbmVmaXRzIGZyb20gdGhpcyBvcHRpbWl6YXRp b24uDQpJTUhPLCBSVlYgc2hvdWxkIGJlIGFsc28gdXNpbmcgdGhpcyBmbG93 Lg0KDQpTbywgdG8gYWxsb3cgUlZWICAodGFyZ2V0IHVzZXMgbGVuIGFzIGxv b3BfY29udHJvbCBhbmQgbWFzayBhcyBmbG93IGNvbnRyb2wpLA0KSSBhbSBu b3Qgc3VyZSB3aGV0aGVyIHdlIGNhbiBkbyB0aGlzIChGZWVsIGZyZWUgdG8g Y29ycmVjdCBtZSBpZiBJIGFtIHdyb25nKToNCg0KKyAgICAgIGlmIChMT09Q X1ZJTkZPX0NBTl9VU0VfUEFSVElBTF9WRUNUT1JTX1AgKGxvb3BfdmluZm8p KQorCXZlY3RfcmVjb3JkX2xvb3BfbWFzayAobG9vcF92aW5mbywgbWFza3Ms IG5jb3BpZXMsIHRydXRoX3R5cGUsIE5VTEwpOw0KDQpNYXliZSBpdCBjYW4g YmUgPw0KDQppZiAoTE9PUF9WSU5GT19DQU5fVVNFX1BBUlRJQUxfVkVDVE9S U19QIChsb29wX3ZpbmZvKSkgew0KICBpZiAobWFza19sb29wX3ApDQogICAg IHZlY3RfcmVjb3JkX2xvb3BfbWFzaw0KICAgZWxzZQ0KICAgICB2ZWN0X3Jl Y29yZF9sb29wX2xlbg0KfQ0KDQoNCisgIHRyZWUgY29uZCA9IGdpbXBsZV9h c3NpZ25fbGhzIChuZXdfc3RtdCk7CisgIGlmIChtYXNrZWRfbG9vcF9wKQor ICAgIHsKKyAgICAgIHRyZWUgbWFzayA9IHZlY3RfZ2V0X2xvb3BfbWFzayAo bG9vcF92aW5mbywgZ3NpLCBtYXNrcywgbmNvcGllcywgdHJ1dGhfdHlwZSwg MCk7CisgICAgICBjb25kID0gcHJlcGFyZV92ZWNfbWFzayAobG9vcF92aW5m bywgVFJFRV9UWVBFIChtYXNrKSwgbWFzaywgY29uZCwKKwkJCSAgICAgICAm Y29uZF9nc2kpOworICAgIH0KKw0KKyAgdHJlZSB0ID0gZm9sZF9idWlsZDIg KE5FX0VYUFIsIGJvb2xlYW5fdHlwZV9ub2RlLCBjb25kLAorCQkJYnVpbGRf emVyb19jc3QgKHRydXRoX3R5cGUpKTsNCg0KRnJvbSBteSB1bmRlcnN0YW5k aW5nLCB5b3UgYXJlIHVzaW5nIGZpbmFsX21hc2sgPSBsb29wX21hc2sgKFdI SUxFX1VMVCkgJiYgY29udHJvbF9tYXNrIChjb21wYXJpc29uKS4NClRoZW4g VGVzdCBmaW5hbF9tYXNrIHVzaW5nIE5FX0VYUFIuIEFtIEkgcmlnaHQ/DQoN CkZvciBSVlYsIEkgdGhpbmtpbmcgd2hldGhlciB3ZSBjYW4gaGF2ZSBhIGdv b2Qgd2F5IHRvIGRvIHRoaXMgdGVzdGluZy4NCk5vdCBzdXJlIHdoZXRoZXIg d2UgY2FuIGhhdmUgc29tZXRoaW5nIGxpa2UgTEVOX1RFU1RfTUFTS19ORSAo bG9vcF9sZW4sIGNvbnRyb2xfbWFzay4uLikNCg0KSSBhbSBub3Qgc2F5aW5n IHRoYXQgd2Ugc2hvdWxkIHN1cHBvcnQgImVhcmx5IGJyZWFrIiBhdXRvLXZl Y3Rvcml6YXRpb24gZm9yIFJWViAobG9vcF9sZW4gJiYgY29udHJvbF9tYXNr KS4NCkkgYW0ganVzdCB3cml0ZSBzb21lIGNvbW1lbnRzIHRyeWluZyB0byBm aWd1cmUgb3V0IGhvdyBJIGNhbiBhZGFwdCB5b3VyIHdvcmtpbmcgZm9yIFJW ViBpbiB0aGUgZnV0dXJlLg0KDQpUaGFua3MuDQoNCg0KanV6aGUuemhvbmdA cml2YWkuYWkNCiANCkZyb206IExpLCBQYW4yDQpEYXRlOiAyMDIzLTA2LTI4 IDIyOjIxDQpUbzoganV6aGUuemhvbmdAcml2YWkuYWkNClN1YmplY3Q6IEZX OiBbUEFUQ0ggdjUgMC8xOV0gU3VwcG9ydCBlYXJseSBicmVhay9yZXR1cm4g YXV0by12ZWN0b3JpemF0aW9uDQpGWUkuDQogDQotLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KRnJvbTogR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzLWJv dW5jZXMrcGFuMi5saT1pbnRlbC5jb21AZ2NjLmdudS5vcmc+IE9uIEJlaGFs ZiBPZiBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzDQpTZW50OiBX ZWRuZXNkYXksIEp1bmUgMjgsIDIwMjMgOTo0MSBQTQ0KVG86IGdjYy1wYXRj aGVzQGdjYy5nbnUub3JnDQpDYzogbmRAYXJtLmNvbTsgcmd1ZW50aGVyQHN1 c2UuZGU7IGpsYXdAdmVudGFuYW1pY3JvLmNvbQ0KU3ViamVjdDogW1BBVENI IHY1IDAvMTldIFN1cHBvcnQgZWFybHkgYnJlYWsvcmV0dXJuIGF1dG8tdmVj dG9yaXphdGlvbg0KIA0KSGkgQWxsLA0KIA0KVGhpcyBwYXRjaCBhZGRzIGlu aXRpYWwgc3VwcG9ydCBmb3IgZWFybHkgYnJlYWsgdmVjdG9yaXphdGlvbiBp biBHQ0MuDQpUaGUgc3VwcG9ydCBpcyBhZGRlZCBmb3IgYW55IHRhcmdldCB0 aGF0IGltcGxlbWVudHMgYSB2ZWN0b3IgY2JyYW5jaCBvcHRhYiwNCnRoaXMg aW5jbHVkZXMgYm90aCBmdWxseSBtYXNrZWQgYW5kIG5vbi1tYXNrZWQgdGFy Z2V0cy4NCiANCkRlcGVuZGluZyBvbiB0aGUgb3BlcmF0aW9uLCB0aGUgdmVj dG9yaXplciBtYXkgYWxzbyByZXF1aXJlIHN1cHBvcnQgZm9yIGJvb2xlYW4N Cm1hc2sgcmVkdWN0aW9ucyB1c2luZyBJbmNsdXNpdmUgT1IuICBUaGlzIGlz IGhvd2V2ZXIgb25seSBjaGVja2VkIHRoZW4gdGhlDQpjb21wYXJpc29uIHdv dWxkIHByb2R1Y2UgbXVsdGlwbGUgc3RhdGVtZW50cy4NCiANCkNvbmNyZXRl bHkgdGhlIGtpbmQgb2YgbG9vcHMgc3VwcG9ydGVkIGFyZSBvZiB0aGUgZm9y bXM6DQogDQpmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykNCnsNCiAgIDxz dGF0ZW1lbnRzMT4NCiAgIGlmICg8Y29uZGl0aW9uPikNCiAgICAgew0KICAg ICAgIC4uLg0KICAgICAgIDxhY3Rpb24+Ow0KICAgICB9DQogICA8c3RhdGVt ZW50czI+DQp9DQogDQp3aGVyZSA8YWN0aW9uPiBjYW4gYmU6DQotIGJyZWFr DQotIHJldHVybg0KLSBnb3RvDQogDQpBbnkgbnVtYmVyIG9mIHN0YXRlbWVu dHMgY2FuIGJlIHVzZWQgYmVmb3JlIHRoZSA8YWN0aW9uPiBvY2N1cnMuDQog DQpTaW5jZSB0aGlzIGlzIGFuIGluaXRpYWwgdmVyc2lvbiBmb3IgR0NDIDE0 IGl0IGhhcyB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zIGFuZA0KZmVhdHVy ZXM6DQogDQotIE9ubHkgZml4ZWQgc2l6ZWQgaXRlcmF0aW9ucyBhbmQgYnVm ZmVycyBhcmUgc3VwcG9ydGVkLiAgVGhhdCBpcyB0byBzYXkgYW55DQogIHZl Y3RvcnMgbG9hZGVkIG9yIHN0b3JlZCBtdXN0IGJlIHRvIHN0YXRpY2FsbHkg YWxsb2NhdGVkIGFycmF5cyB3aXRoIGtub3duDQogIHNpemVzLiBOIG11c3Qg YWxzbyBiZSBrbm93bi4gIFRoaXMgbGltaXRhdGlvbiBpcyBiZWNhdXNlIG91 ciBwcmltYXJ5IHRhcmdldA0KICBmb3IgdGhpcyBvcHRpbWl6YXRpb24gaXMg U1ZFLiAgRm9yIFZMQSBTVkUgd2UgY2FuJ3QgZWFzaWx5IGRvIGNyb3NzIHBh Z2UNCiAgaXRlcmFpb24gY2hlY2tzLiBUaGUgcmVzdWx0IGlzIGxpa2VseSB0 byBhbHNvIG5vdCBiZSBiZW5lZmljaWFsLiBGb3IgdGhhdA0KICByZWFzb24g d2UgcHVudCBzdXBwb3J0IGZvciB2YXJpYWJsZSBidWZmZXJzIHRpbGwgd2Ug aGF2ZSBGaXJzdC1GYXVsdGluZw0KICBzdXBwb3J0IGluIEdDQy4NCi0gYW55 IHN0b3JlcyBpbiA8c3RhdGVtZW50czE+IHNob3VsZCBub3QgYmUgdG8gdGhl IHNhbWUgb2JqZWN0cyBhcyBpbg0KICA8Y29uZGl0aW9uPi4gIExvYWRzIGFy ZSBmaW5lIGFzIGxvbmcgYXMgdGhleSBkb24ndCBoYXZlIHRoZSBwb3NzaWJp bGl0eSB0bw0KICBhbGlhcy4gIE1vcmUgY29uY3JldGVseSwgd2UgYmxvY2sg UkFXIGRlcGVuZGVuY2llcyB3aGVuIHRoZSBpbnRlcm1lZGlhdGUgdmFsdWUN CiAgY2FuJ3QgYmUgc2VwYXJhdGVkIGZyb210IHRoZSBzdG9yZSwgb3IgdGhl IHN0b3JlIGl0c2VsZiBjYW4ndCBiZSBtb3ZlZC4NCi0gVGhlIG51bWJlciBv ZiBsb29wIGl0ZXJhdGlvbnMgbXVzdCBiZSBrbm93biwgIHRoaXMgaXMganVz dCBhIHRlbXBvcmFyaWx5DQogIGxpbWl0YXRpb24gdGhhdCBJIGludGVuZCB0 byBhZGRyZXNzIGluIEdDQyAxNCBpdHNlbGYgYXMgZm9sbG93IG9uIHBhdGNo ZXMuDQotIFByb2xvZ3VlIHBlZWxpbmcsIGFsaWdubWVudCBwZWVsaW5pZyBh bmQgbG9vcCB2ZXJzaW9uaW5nIGFyZSBzdXBwb3J0ZWQuDQotIEZ1bGx5IG1h c2tlZCBsb29wcywgdW5tYXNrZWQgbG9vcHMgYW5kIHBhcnRpYWxseSBtYXNr ZWQgbG9vcHMgYXJlIHN1cHBvcnRlZA0KLSBBbnkgbnVtYmVyIG9mIGxvb3Ag ZWFybHkgZXhpdHMgYXJlIHN1cHBvcnRlZC4NCi0gVGhlIGVhcmx5IGV4aXQg bXVzdCBiZSBiZWZvcmUgdGhlIG5hdHVyYWwgbG9vcCBleGl0L2xhdGNoLiAg VGhlIHZlY3Rvcml6ZXIgaXMNCiAgZGVzaWduZWQgaW4gd2F5IHRvIHByb3Bh Z2UgcGhpLW5vZGVzIGRvd253YXJkcy4gIEFzIHN1Y2ggc3VwcG9ydGluZyB0 aGlzDQogIGludmVydGVkIGNvbnRyb2wgZmxvdyBpcyBoYXJkLg0KLSBObyBz dXBwb3J0IGZvciBlcGlsb2d1ZSB2ZWN0b3JpemF0aW9uLiAgVGhlIG9ubHkg ZXBpbG9ndWUgc3VwcG9ydGVkIGlzIHRoZQ0KICBzY2FsYXIgZmluYWwgb25l LiAgRXBpbG9ndWUgdmVjdG9yaXphdGlvbiB3b3VsZCBhbHNvIG5vdCBiZSBw cm9maXRhYmxlLg0KLSBFYXJseSBicmVha3MgYXJlIG9ubHkgc3VwcG9ydGVk IGZvciBpbm5lciBsb29wIHZlY3Rvcml6YXRpb24uDQogDQpJIGhhdmUgcHVz aGVkIGEgYnJhbmNoIHRvIHJlZnMvdXNlcnMvdG5mY2hyaXMvaGVhZHMvZ2Nj LTE0LWVhcmx5LWJyZWFrDQogDQpXaXRoIHRoZSBoZWxwIG9mIElQQSBhbmQg TFRPIHRoaXMgc3RpbGwgZ2V0cyBoaXQgcXVpdGUgb2Z0ZW4uICBEdXJpbmcg Ym9vdHN0cmFwDQppdCBoaXQgcmF0aGVyIGZyZXF1ZW50bHkuICBBZGRpdGlv bmFsbHkgVFNWQyBzMzMyLCBzNDgxIGFuZCBzNDgyIGFsbCBwYXNzIG5vdw0K c2luY2UgdGhlc2UgYXJlIHRlc3RzIGZvciBzdXBwb3J0IGZvciBlYXJseSBl eGl0IHZlY3Rvcml6YXRpb24uDQogDQpUaGlzIGltcGxlbWVudGF0aW9uIGRv ZXMgbm90IHN1cHBvcnQgY29tcGxldGVseSBoYW5kbGluZyB0aGUgZWFybHkg YnJlYWsgaW5zaWRlDQp0aGUgdmVjdG9yIGxvb3AgaXRzZWxmIGJ1dCBpbnN0 ZWFkIHN1cHBvcnRzIGFkZGluZyBjaGVja3Mgc3VjaCB0aGF0IGlmIHdlIGtu b3cNCnRoYXQgd2UgaGF2ZSB0byBleGl0IGluIHRoZSBjdXJyZW50IGl0ZXJh dGlvbiB0aGVuIHdlIGJyYW5jaCB0byBzY2FsYXIgY29kZSB0bw0KYWN0dWFs bHkgZG8gdGhlIGZpbmFsIFZGIGl0ZXJhdGlvbnMgd2hpY2ggaGFuZGxlcyBh bGwgdGhlIGNvZGUgaW4gPGFjdGlvbj4uDQogDQpuaXRlcnMgYW5hbHlzaXMg YW5kIHRoZSBtYWpvcml0eSBvZiB0aGUgdmVjdG9yaXplciB3aXRoIGhhcmRj b2RlZCBzaW5nbGVfZXhpdA0KaGF2ZSBiZWVuIHVwZGF0ZWQgd2l0aCB0aGUg dXNlIG9mIGEgbmV3IGZ1bmN0aW9uIHZlY19sb29wX2l2IHZhbHVlIHdoaWNo IHJldHVybnMNCnRoZSBleGl0IHRoZSB2ZWN0b3JpemVyIHdhbnRzIHRvIHVz ZSBhcyB0aGUgbWFpbiBJViBleGl0Lg0KIA0KZm9yIG5pdGVycyB0aGUgdGhp cyBleGl0IGlzIHdoYXQgZGV0ZXJtaW5lcyB0aGUgb3ZlcmFsbCBpdGVyYXRp b25zIGFzDQp0aGF0IGlzIHRoZSBPKGl0ZXJzKSBmb3IgdGhlIGxvb3AuDQog DQpGb3IgdGhlIHNjYWxhciBsb29wIHdlIGtub3cgdGhhdCB3aGF0ZXZlciBl eGl0IHlvdSB0YWtlIHlvdSBoYXZlIHRvIHBlcmZvcm0gYXQNCm1vc3QgVkYg aXRlcmF0aW9ucy4gIEZvciB2ZWN0b3IgY29kZSB3ZSBvbmx5IGNhc2UgYWJv dXQgdGhlIHN0YXRlIG9mIGZ1bGx5DQpwZXJmb3JtZWQgaXRlcmF0aW9uIGFu ZCByZXNldCB0aGUgc2NhbGFyIGNvZGUgdG8gdGhlIChwYXJ0aWFsbHkpIHJl bWFpbmluZyBsb29wLg0KIA0KVGhpcyBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0 Y2ggZG9lcyB0aGUgbWFqb3JpdHkgb2YgdGhlIHdvcmsgaW4gYSBuZXcgcmV3 cml0dGVuDQpsb29wIHBlZWxpbmcuICBUaGlzIG5ldyBmdW5jdGlvbiBtYWlu dGFpbnMgTENTU0EgYWxsIHRoZSB3YXkgdGhyb3VnaCBhbmQgbm8NCmxvbmdl ciByZXF1aXJlcyB0aGUgdG91Y2ggdXAgZnVuY3Rpb25zIHRoZSB2ZWN0b3Jp emVkIHVzZWQgdG8gaW5jcmVtZW50YWxseQ0KYWRqdXN0IHRoZW0gbGF0ZXIg b24uICBUaGlzIG1lYW5zIHRoYXQgYXNpZGUgZnJvbSBJViB1cGRhdGVzIGFu ZCBndWFyZCBlZGdlDQp1cGRhdGVzIHRoZSBlYXJseSBleGl0IGNvZGUgaXMg aWRlbnRpY2FsIHRvIHRoZSBzaW5nbGUgZXhpdCBjYXNlcy4NCiANCldoZW4g dGhlIGxvb3AgaXMgcGVlbGVkIGR1cmluZyB0aGUgY29weWluZyBJIGhhdmUg dG8gZ28gdGhyb3VnaCBncmVhdCBsZW5ndGhzIHRvDQprZWVwIHRoZSBkb21p bmF0b3JzIHVwIHRvIGRhdGUuICBBbGwgZXhpdHMgZnJvbSB0aGUgZmlyc3Qg bG9vcCBhcmUgcmV3aXJlZCB0byB0aGUNCmxvb3AgaGVhZGVyIG9mIHRoZSBz ZWNvbmQgbG9vcC4gIEJ1dCB0aGlzIGNhbiBjaGFuZ2UgdGhlIGltbWVkaWF0 ZSBkb21pbmF0b3IuDQogDQpUaGUgZG9taW5hdG9ycyBjYW4gY2hhbmdlIGFn YWluIHdoZW4gd2Ugd2lyZSBpbiB0aGUgbG9vcCBndWFyZCwgYXMgc3VjaCBw ZWVsaW5nDQpub3cgcmV0dXJucyBhIGxpc3Qgb2YgZG9taW5hdG9ycyB0aGF0 IG5lZWQgdG8gYmUgdXBkYXRlZCBpZiBhIG5ldyBndWFyZCBlZGdlIGlzDQph ZGRlZC4NCiANCkZvciB0aGUgbG9vcCBwZWVsaW5nIHdlIHJld3JpdGUgdGhl IGxvb3AgZm9ybToNCiANCiANCiAgICAgICAgICAgICAgICAgICAgIEhlYWRl cg0KICAgICAgICAgICAgICAgICAgICAgIC0tLQ0KICAgICAgICAgICAgICAg ICAgICAgIHx4fA0KICAgICAgICAgICAgICAgICAgICAgICAyDQogICAgICAg ICAgICAgICAgICAgICAgIHwNCiAgICAgICAgICAgICAgICAgICAgICAgdg0K ICAgICAgICAgICAgICAgIC0tLS0tLS0zPC0tLS0tLQ0KICAgICBlYXJseSBl eGl0IHwgICAgICB8ICAgICAgfA0KICAgICAgICAgICAgICAgIHYgICAgICB2 ICAgICAgfCBsYXRjaA0KICAgICAgICAgICAgICAgIDcgICAgICA0LS0tLS0+ Ng0KICAgICAgICAgICAgICAgIHwgICAgICB8DQogICAgICAgICAgICAgICAg fCAgICAgIHYNCiAgICAgICAgICAgICAgICB8ICAgICAgOA0KICAgICAgICAg ICAgICAgIHwgICAgICB8DQogICAgICAgICAgICAgICAgfCAgICAgIHYNCiAg ICAgICAgICAgICAgICAtLS0tLS0+NQ0KIA0KaW50bw0KIA0KICAgICAgICAg ICAgICAgICAgICAgSGVhZGVyDQogICAgICAgICAgICAgICAgICAgICAgLS0t DQogICAgICAgICAgICAgICAgICAgICAgfHh8DQogICAgICAgICAgICAgICAg ICAgICAgIDINCiAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAg ICAgICAgICAgICAgICB2DQogICAgICAgICAgICAgICAgLS0tLS0tLTM8LS0t LS0tDQogICAgIGVhcmx5IGV4aXQgfCAgICAgIHwgICAgICB8DQogICAgICAg ICAgICAgICAgdiAgICAgIHYgICAgICB8IGxhdGNoDQogICAgICAgICAgICAg ICAgNyAgICAgIDQtLS0tLT42DQogICAgICAgICAgICAgICAgfCAgICAgIHwN CiAgICAgICAgICAgICAgICB8ICAgICAgdg0KICAgICAgICAgICAgICAgIHwg ICAgICA4DQogICAgICAgICAgICAgICAgfCAgICAgIHwNCiAgICAgICAgICAg ICAgICB8ICAgICAgdg0KICAgICAgICAgICAgICAgIHwgIE5ldyBIZWFkZXIN CiAgICAgICAgICAgICAgICB8ICAgICAtLS0NCiAgICAgICAgICAgICAgICAt LS0tLT58eHwNCiAgICAgICAgICAgICAgICAgICAgICAgOQ0KICAgICAgICAg ICAgICAgICAgICAgICB8DQogICAgICAgICAgICAgICAgICAgICAgIHYNCiAg ICAgICAgICAgICAgICAtLS0tLS0xMDwtLS0tLQ0KICAgICBlYXJseSBleGl0 IHwgICAgICB8ICAgICAgfA0KICAgICAgICAgICAgICAgIHYgICAgICB2ICAg ICAgfCBsYXRjaA0KICAgICAgICAgICAgICAgIDE0ICAgICAxMS0tLS0+MTMN CiAgICAgICAgICAgICAgICB8ICAgICAgfA0KICAgICAgICAgICAgICAgIHwg ICAgICB2DQogICAgICAgICAgICAgICAgfCAgICAgIDEyDQogICAgICAgICAg ICAgICAgfCAgICAgIHwNCiAgICAgICAgICAgICAgICB8ICAgICAgdg0KICAg ICAgICAgICAgICAgIC0tLS0tLT4gNQ0KIA0KVGhhdCBpcyB0byBzYXksIHRo ZSBmaXJzdCB2ZWN0b3IgbG9vcCBleGVjdXRlcyBzbyBsb25nIGFzIHRoZSBl YXJseSBleGl0IGlzbid0DQpuZWVkZWQuICBPbmNlIHRoZSBleGl0IGlzIHRh a2VuLCB0aGUgc2NhbGFyIGNvZGUgd2lsbCBwZXJmb3JtIGF0IG1vc3QgVkYg ZXh0cmENCml0ZXJhdGlvbnMuICBUaGUgZXhhY3QgbnVtYmVyIGRlcGVuZGlu ZyBvbiBwZWVsaW5nIGFuZCBpdGVyYXRpb24gc3RhcnQgYW5kIHdoaWNoDQpl eGl0IHdhcyB0YWtlbiAobmF0dXJhbCBvciBlYXJseSkuICAgRm9yIHRoaXMg c2NhbGFyIGxvb3AsIGFsbCBlYXJseSBleGl0cyBhcmUNCnRyZWF0ZWQgdGhl IHNhbWUuDQogDQpXaGVuIHdlIHZlY3Rvcml6ZSB3ZSBtb3ZlIGFueSBzdGF0 ZW1lbnQgbm90IHJlbGF0ZWQgdG8gdGhlIGVhcmx5IGJyZWFrIGl0c2VsZg0K YW5kIHRoYXQgd291bGQgYmUgaW5jb3JyZWN0IHRvIGV4ZWN1dGUgYmVmb3Jl IHRoZSBicmVhayAoaS5lLiBoYXMgc2lkZSBlZmZlY3RzKQ0KdG8gYWZ0ZXIg dGhlIGJyZWFrLiAgSWYgdGhpcyBpcyBub3QgcG9zc2libGUgd2UgZGVjbGlu ZSB0byB2ZWN0b3JpemUuDQogDQpUaGlzIG1lYW5zIHRoYXQgd2UgY2hlY2sg YXQgdGhlIHN0YXJ0IG9mIGl0ZXJhdGlvbnMgd2hldGhlciB3ZSBhcmUgZ29p bmcgdG8gZXhpdA0Kb3Igbm90LiAgRHVyaW5nIHRoZSBhbmFseWlzIHBoYXNl IHdlIGNoZWNrIHdoZXRoZXIgd2UgYXJlIGFsbG93ZWQgdG8gZG8gdGhpcw0K bW92aW5nIG9mIHN0YXRlbWVudHMuICBBbHNvIG5vdGUgdGhhdCB3ZSBvbmx5 IG1vdmUgdGhlIHNjYWxhciBzdGF0ZW1lbnRzLCBidXQNCm9ubHkgZG8gc28g YWZ0ZXIgcGVlbGluZyBidXQganVzdCBiZWZvcmUgd2Ugc3RhcnQgdHJhbnNm b3JtaW5nIHN0YXRlbWVudHMuDQogDQpDb2RlZ2VuOg0KIA0KZm9yIGUuZy4N CiANCiNkZWZpbmUgTiA4MDMNCnVuc2lnbmVkIHZlY3RfYVtOXTsNCnVuc2ln bmVkIHZlY3RfYltOXTsNCiANCnVuc2lnbmVkIHRlc3Q0KHVuc2lnbmVkIHgp DQp7DQp1bnNpZ25lZCByZXQgPSAwOw0KZm9yIChpbnQgaSA9IDA7IGkgPCBO OyBpKyspDQp7DQogICB2ZWN0X2JbaV0gPSB4ICsgaTsNCiAgIGlmICh2ZWN0 X2FbaV0gPiB4KQ0KICAgICBicmVhazsNCiAgIHZlY3RfYVtpXSA9IHg7DQog DQp9DQpyZXR1cm4gcmV0Ow0KfQ0KIA0KV2UgZ2VuZXJhdGUgZm9yIEFkdi4g U0lNRDoNCiANCnRlc3Q0Og0KICAgICAgICBhZHJwICAgIHgyLCAuTEMwDQog ICAgICAgIGFkcnAgICAgeDMsIC5MQU5DSE9SMA0KICAgICAgICBkdXAgICAg IHYyLjRzLCB3MA0KICAgICAgICBhZGQgICAgIHgzLCB4MywgOmxvMTI6LkxB TkNIT1IwDQogICAgICAgIG1vdmkgICAgdjQuNHMsIDB4NA0KICAgICAgICBh ZGQgICAgIHg0LCB4MywgMzIxNg0KICAgICAgICBsZHIgICAgIHExLCBbeDIs ICM6bG8xMjouTEMwXQ0KICAgICAgICBtb3YgICAgIHgxLCAwDQogICAgICAg IG1vdiAgICAgdzIsIDANCiAgICAgICAgLnAyYWxpZ24gMywsNw0KLkwzOg0K ICAgICAgICBsZHIgICAgIHEwLCBbeDMsIHgxXQ0KICAgICAgICBhZGQgICAg IHYzLjRzLCB2MS40cywgdjIuNHMNCiAgICAgICAgYWRkICAgICB2MS40cywg djEuNHMsIHY0LjRzDQogICAgICAgIGNtaGkgICAgdjAuNHMsIHYwLjRzLCB2 Mi40cw0KICAgICAgICB1bWF4cCAgIHYwLjRzLCB2MC40cywgdjAuNHMNCiAg ICAgICAgZm1vdiAgICB4NSwgZDANCiAgICAgICAgY2JueiAgICB4NSwgLkw2 DQogICAgICAgIGFkZCAgICAgdzIsIHcyLCAxDQogICAgICAgIHN0ciAgICAg cTMsIFt4MSwgeDRdDQogICAgICAgIHN0ciAgICAgcTIsIFt4MywgeDFdDQog ICAgICAgIGFkZCAgICAgeDEsIHgxLCAxNg0KICAgICAgICBjbXAgICAgIHcy LCAyMDANCiAgICAgICAgYm5lICAgICAuTDMNCiAgICAgICAgbW92ICAgICB3 NywgMw0KLkwyOg0KICAgICAgICBsc2wgICAgIHcyLCB3MiwgMg0KICAgICAg ICBhZGQgICAgIHg1LCB4MywgMzIxNg0KICAgICAgICBhZGQgICAgIHc2LCB3 MiwgdzANCiAgICAgICAgc3h0dyAgICB4NCwgdzINCiAgICAgICAgbGRyICAg ICB3MSwgW3gzLCB4NCwgbHNsIDJdDQogICAgICAgIHN0ciAgICAgdzYsIFt4 NSwgeDQsIGxzbCAyXQ0KICAgICAgICBjbXAgICAgIHcwLCB3MQ0KICAgICAg ICBiY2MgICAgIC5MNA0KICAgICAgICBhZGQgICAgIHcxLCB3MiwgMQ0KICAg ICAgICBzdHIgICAgIHcwLCBbeDMsIHg0LCBsc2wgMl0NCiAgICAgICAgYWRk ICAgICB3NiwgdzEsIHcwDQogICAgICAgIHN4dHcgICAgeDEsIHcxDQogICAg ICAgIGxkciAgICAgdzQsIFt4MywgeDEsIGxzbCAyXQ0KICAgICAgICBzdHIg ICAgIHc2LCBbeDUsIHgxLCBsc2wgMl0NCiAgICAgICAgY21wICAgICB3MCwg dzQNCiAgICAgICAgYmNjICAgICAuTDQNCiAgICAgICAgYWRkICAgICB3NCwg dzIsIDINCiAgICAgICAgc3RyICAgICB3MCwgW3gzLCB4MSwgbHNsIDJdDQog ICAgICAgIHN4dHcgICAgeDEsIHc0DQogICAgICAgIGFkZCAgICAgdzYsIHcx LCB3MA0KICAgICAgICBsZHIgICAgIHc0LCBbeDMsIHgxLCBsc2wgMl0NCiAg ICAgICAgc3RyICAgICB3NiwgW3g1LCB4MSwgbHNsIDJdDQogICAgICAgIGNt cCAgICAgdzAsIHc0DQogICAgICAgIGJjYyAgICAgLkw0DQogICAgICAgIHN0 ciAgICAgdzAsIFt4MywgeDEsIGxzbCAyXQ0KICAgICAgICBhZGQgICAgIHcy LCB3MiwgMw0KICAgICAgICBjbXAgICAgIHc3LCAzDQogICAgICAgIGJlcSAg ICAgLkw0DQogICAgICAgIHN4dHcgICAgeDEsIHcyDQogICAgICAgIGFkZCAg ICAgdzIsIHcyLCB3MA0KICAgICAgICBsZHIgICAgIHc0LCBbeDMsIHgxLCBs c2wgMl0NCiAgICAgICAgc3RyICAgICB3MiwgW3g1LCB4MSwgbHNsIDJdDQog ICAgICAgIGNtcCAgICAgdzAsIHc0DQogICAgICAgIGJjYyAgICAgLkw0DQog ICAgICAgIHN0ciAgICAgdzAsIFt4MywgeDEsIGxzbCAyXQ0KLkw0Og0KICAg ICAgICBtb3YgICAgIHcwLCAwDQogICAgICAgIHJldA0KICAgICAgICAucDJh bGlnbiAyLCwzDQouTDY6DQogICAgICAgIG1vdiAgICAgdzcsIDQNCiAgICAg ICAgYiAgICAgICAuTDINCiANCmFuZCBmb3IgU1ZFOg0KIA0KdGVzdDQ6DQog ICAgICAgIGFkcnAgICAgeDIsIC5MQU5DSE9SMA0KICAgICAgICBhZGQgICAg IHgyLCB4MiwgOmxvMTI6LkxBTkNIT1IwDQogICAgICAgIGFkZCAgICAgeDUs IHgyLCAzMjE2DQogICAgICAgIG1vdiAgICAgeDMsIDANCiAgICAgICAgbW92 ICAgICB3MSwgMA0KICAgICAgICBjbnR3ICAgIHg0DQogICAgICAgIG1vdiAg ICAgejEucywgdzANCiAgICAgICAgaW5kZXggICB6MC5zLCAjMCwgIzENCiAg ICAgICAgcHRydWUgICBwMS5iLCBhbGwNCiAgICAgICAgcHRydWUgICBwMC5z LCBhbGwNCiAgICAgICAgLnAyYWxpZ24gMywsNw0KLkwzOg0KICAgICAgICBs ZDF3ICAgIHoyLnMsIHAxL3osIFt4MiwgeDMsIGxzbCAyXQ0KICAgICAgICBh ZGQgICAgIHozLnMsIHowLnMsIHoxLnMNCiAgICAgICAgY21wbG8gICBwMi5z LCBwMC96LCB6MS5zLCB6Mi5zDQogICAgICAgIGIuYW55ICAgLkwyDQogICAg ICAgIHN0MXcgICAgejMucywgcDEsIFt4NSwgeDMsIGxzbCAyXQ0KICAgICAg ICBhZGQgICAgIHcxLCB3MSwgMQ0KICAgICAgICBzdDF3ICAgIHoxLnMsIHAx LCBbeDIsIHgzLCBsc2wgMl0NCiAgICAgICAgYWRkICAgICB4MywgeDMsIHg0 DQogICAgICAgIGluY3cgICAgejAucw0KICAgICAgICBjbXAgICAgIHczLCA4 MDMNCiAgICAgICAgYmxzICAgICAuTDMNCi5MNToNCiAgICAgICAgbW92ICAg ICB3MCwgMA0KICAgICAgICByZXQNCiAgICAgICAgLnAyYWxpZ24gMiwsMw0K LkwyOg0KICAgICAgICBjbnR3ICAgIHg1DQogICAgICAgIG11bCAgICAgdzEs IHcxLCB3NQ0KICAgICAgICBjYnogICAgIHc1LCAuTDUNCiAgICAgICAgc3h0 dyAgICB4MSwgdzENCiAgICAgICAgc3ViICAgICB3NSwgdzUsICMxDQogICAg ICAgIGFkZCAgICAgeDUsIHg1LCB4MQ0KICAgICAgICBhZGQgICAgIHg2LCB4 MiwgMzIxNg0KICAgICAgICBiICAgICAgIC5MNg0KICAgICAgICAucDJhbGln biAyLCwzDQouTDE0Og0KICAgICAgICBzdHIgICAgIHcwLCBbeDIsIHgxLCBs c2wgMl0NCiAgICAgICAgY21wICAgICB4MSwgeDUNCiAgICAgICAgYmVxICAg ICAuTDUNCiAgICAgICAgbW92ICAgICB4MSwgeDQNCi5MNjoNCiAgICAgICAg bGRyICAgICB3MywgW3gyLCB4MSwgbHNsIDJdDQogICAgICAgIGFkZCAgICAg dzQsIHcwLCB3MQ0KICAgICAgICBzdHIgICAgIHc0LCBbeDYsIHgxLCBsc2wg Ml0NCiAgICAgICAgYWRkICAgICB4NCwgeDEsIDENCiAgICAgICAgY21wICAg ICB3MCwgdzMNCiAgICAgICAgYmNzICAgICAuTDE0DQogICAgICAgIG1vdiAg ICAgdzAsIDANCiAgICAgICAgcmV0DQogDQpPbiB0aGUgd29ya2xvYWRzIHRo aXMgd29yayBpcyBiYXNlZCBvbiB3ZSBzZWUgYmV0d2VlbiAyLTN4IHBlcmZv cm1hbmNlIHVwbGlmdA0KdXNpbmcgdGhpcyBwYXRjaC4NCiANCkZvbGxvdyB1 cCBwbGFuOg0KLSBCb29sZWFuIHZlY3Rvcml6YXRpb24gaGFzIHNldmVyYWwg c2hvcnRjb21pbmdzLiAgSSd2ZSBmaWxlZCBQUjExMDIyMyB3aXRoIHRoZQ0K ICAgYmlnZ2VyIG9uZXMgdGhhdCBjYXVzZSB2ZWN0b3JpemF0aW9uIHRvIGZh aWwgd2l0aCB0aGlzIHBhdGNoLg0KLSBTTFAgc3VwcG9ydC4gIFRoaXMgaXMg cGxhbm5lZCBmb3IgR0NDIDE1IGFzIGZvciBtYWpvcml0eSBvZiB0aGUgY2Fz ZXMgYnVpbGQNCiAgIFNMUCBpdHNlbGYgZmFpbHMuICBUaGlzIG1lYW5zIEkn bGwgbmVlZCB0byBzcGVuZCB0aW1lIGluIG1ha2luZyB0aGlzIG1vcmUNCiAg IHJvYnVzdCBmaXJzdC4gIEFkZGl0aW9uYWxseSBpdCByZXF1aXJlczoNCiAg ICAgKiBBZGRpbmcgc3VwcG9ydCBmb3IgdmVjdG9yaXppbmcgQ0ZHIChnY29u ZHMpDQogICAgICogU3VwcG9ydCBmb3IgQ0ZHIHRvIGRpZmZlciBiZXR3ZWVu IHZlY3RvciBhbmQgc2NhbGFyIGxvb3BzLg0KICAgQm90aCBvZiB3aGljaCB3 b3VsZCBiZSBkaXNydXB0aXZlIHRvIHRoZSB0cmVlIGFuZCBJIHN1c3BlY3Qg SSdsbCBiZSBoYW5kbGluZw0KICAgZmFsbG91dHMgZnJvbSB0aGlzIHBhdGNo IGZvciBhIHdoaWxlLiAgU28gSSBwbGFuIHRvIHdvcmsgb24gdGhlIHN1cnJv dW5kaW5nDQogICBidWlsZGluZyBibG9ja3MgZmlyc3QgZm9yIHRoZSByZW1h aW5kZXIgb2YgdGhlIHllYXIuDQogDQpCb290c3RyYXBwZWQgUmVndGVzdGVk IG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4NCkFs c28gcmFuIGFjcm9zcyB2YXJpb3VzIHdvcmtsb2FkcyBhbmQgbm8gaXNzdWVz Lg0KIA0KV2hlbiBjbG9zZXIgdG8gYWNjZXB0YW5jZSBJIHdpbGwgcnVuIG9u IG90aGVyIHRhcmdldHMgYXMgd2VsbCBhbmQgY2xlYW4gdXANCnJlbGF0ZWQg dGVzdHN1aXRlIGZhbGxvdXRzIHRoZXJlLg0KIA0KLS0tIGlubGluZSBjb3B5 IG9mIHBhdGNoIC0tIA0KIA0KLS0gDQo= ------=_001_NextPart144406372236_=------