From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu2.qq.com (smtpbgeu2.qq.com [18.194.254.142]) by sourceware.org (Postfix) with ESMTPS id 7111E3858D32 for ; Thu, 25 May 2023 09:52:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7111E3858D32 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: bizesmtp69t1685008323t1ga7sw1 Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 25 May 2023 17:52:02 +0800 (CST) X-QQ-SSF: 00400000000000F0R000000A0000000 X-QQ-FEAT: RrZlkntZBfmY3DC6dkeoOqjEOncqooNP3tXMlQShtAoYePr2PmvUkFrORfbZl MEUa+Y+CrrfzEeMdn+BR6OzA+cL6Ol3s4IaEDnhwV1jQFJjafUc4tbovUReS3kyDOtot4nt RtLr/h7Vzg1biqVT0Qytc82jTCR8RFyVI4esSC/mSnRkjCyKU67KAPk2sph+OpgSU3sqFC3 1x/eiase3o8N2N65F/sPI88lxjG3b3Iuube9CCr2JriBRXarMokopo4/v7EdF240GoK3UaF 0jf3YlFnflgezY+ixgWWLhQRjkykLkvCykJrfexxS559Fc3fRsTmog/oFHhW0TnstfmQg68 KkLrjSHq8+uoPGxdWqPIJ8QnlWuhS5pwo7i6NPf2ow3pRSB4LuR0pzExcMHFB0KJKXQ8gKL rgztL0G6cmZIPVDJGvKB2Q== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 13200641548383325990 Date: Thu, 25 May 2023 17:52:02 +0800 From: "juzhe.zhong@rivai.ai" To: richard.sandiford Cc: gcc-patches , rguenther Subject: Re: Re: [PATCH V15] VECT: Add decrement IV iteration loop control by variable amount support References: <20230525025813.1232463-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 2B9B770C-FAB1-4678-A857-E1860B362C17 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <50AA5EA84670AC0A+20230525175201501502267@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart224582425502_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,MIME_CHARSET_FARAWAY,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_WEB,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE,T_SPF_HELO_TEMPERROR 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_NextPart224582425502_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 SGmjrCBSaWNoYXJkLiBUaGFua3MgZm9yIHRoZSBjb21tZW50cy4NCg0KPj4g aWYgKCFMT09QX1ZJTkZPX1VTSU5HX0RFQ1JFTUVOVElOR19JVl9QIChsb29w X3ZpbmZvKQ0KPj4gICAgIHx8ICFpdl9yZ2MNCj4+ICAgICB8fCAoaXZfcmdj LT5tYXhfbnNjYWxhcnNfcGVyX2l0ZXIgKiBpdl9yZ2MtPmZhY3Rvcg0KPj4g IT0gcmdjLT5tYXhfbnNjYWxhcnNfcGVyX2l0ZXIgKiByZ2MtPmZhY3Rvcikp DQo+PiAgICAgICAgICAgew0KICA+PiAgICAgICAgICAgLyogU2VlIHdoZXRo ZXIgemVyby1iYXNlZCBJViB3b3VsZCBldmVyIGdlbmVyYXRlIGFsbC1mYWxz ZSBtYXNrcw0KICAgPj4gICAgICAgICAgICAgb3IgemVybyBsZW5ndGggYmVm b3JlIHdyYXBwaW5nIGFyb3VuZC4gICovDQogICA+PiAgICAgICAgICBib29s IG1pZ2h0X3dyYXBfcCA9IHZlY3Rfcmdyb3VwX2l2X21pZ2h0X3dyYXBfcCAo bG9vcF92aW5mbywgcmdjKTsNCiANCiAgID4+ICAgICAgICAgIC8qIFNldCB1 cCBhbGwgY29udHJvbHMgZm9yIHRoaXMgZ3JvdXAuICAqLw0KICAgICA+PiAg ICAgICAgdGVzdF9jdHJsID0gdmVjdF9zZXRfbG9vcF9jb250cm9sc19kaXJl Y3RseSAobG9vcCwgbG9vcF92aW5mbywNCiAgICA+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcmVo ZWFkZXJfc2VxLA0KICAgICAgICA+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhlYWRlcl9zZXEsDQogICAg Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb29wX2NvbmRfZ3NpLCByZ2MsDQogICAgPj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuaXRlcnMsIG5pdGVyc19za2lwLA0KICAgID4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlnaHRf d3JhcF9wKTsNCiANCiAgID4+ICBpdl9yZ2MgPSByZ2M7DQogID4+IH0NCg0K DQpDb3VsZCB5b3UgdGVsbCBtZSB3aHkgeW91IGFkZDoNCihpdl9yZ2MtPm1h eF9uc2NhbGFyc19wZXJfaXRlciAqIGl2X3JnYy0+ZmFjdG9yDQo+PiAhPSBy Z2MtPm1heF9uc2NhbGFyc19wZXJfaXRlciAqIHJnYy0+ZmFjdG9yKSA/DQoN CldoZW4gSSBoYXZlIHRoaXMgaW4gdGhlIGNvbmRpdGlvbiwgSUNFIGZvciBm YWlsIHRvIGdlbmVyYXRlIElSOg0KbG9vcF9sZW5fNzYgPSBNSU5fRVhQUiA8 aXZ0bXBfOTgsIDg+Ow0KICBsb29wX2xlbl82NiA9IE1JTl9FWFBSIDxpdnRt cF8xMDEsIDE2PjsNCiAgbG9vcF9sZW5fNjYgPSBNSU5fRVhQUiA8bG9vcF9s ZW5fNjYsIDQ+Ow0KICBsb29wX2xlbl82NSA9IE1JTl9FWFBSIDwwLCA0PjsN Cg0KICBfMTAzID0gLWxvb3BfbGVuXzY1Ow0KDQogIGxvb3BfbGVuXzY0ID0g TUlOX0VYUFIgPF8xMDMsIDQ+Ow0KICBsb29wX2xlbl82MyA9IF8xMDMgLSBs b29wX2xlbl82NDsNCg0KV2hlbiBJIHJlbW92ZSBpdCwgaXQgd29ya3MuDQoN ClNob3VsZCBJIHJlbW92ZSBpdD8NCg0KVGhhbmtzLg0KDQoNCmp1emhlLnpo b25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZA0KRGF0 ZTogMjAyMy0wNS0yNSAxNzowMg0KVG86IGp1emhlLnpob25nDQpDQzogZ2Nj LXBhdGNoZXM7IHJndWVudGhlcg0KU3ViamVjdDogUmU6IFtQQVRDSCBWMTVd IFZFQ1Q6IEFkZCBkZWNyZW1lbnQgSVYgaXRlcmF0aW9uIGxvb3AgY29udHJv bCBieSB2YXJpYWJsZSBhbW91bnQgc3VwcG9ydA0KVGhhbmtzLCB0aGlzIGxv b2tzIGZ1bmN0aW9uYWxseSBjb3JyZWN0IHRvIG1lLiAgQW5kIEkgYWdyZWUg aXQgaGFuZGxlcw0KdGhlIGNhc2VzIHRoYXQgcHJldmlvdXNseSBuZWVkZWQg bXVsdGlwbGljYXRpb24uDQogDQpCdXQgSSB0aGluayBpdCByZWdyZXNzZXMg Y29kZSBxdWFsaXR5IHdoZW4gbm8gbXVsdGlwbGljYXRpb24gd2FzIG5lZWRl ZC4NCldlIGNhbiBub3cgZ2VuZXJhdGUgZHVwbGljYXRlIElWcy4gIFBlcmhh cHMgaXZvcHRzIHdvdWxkIHJlbW92ZSB0aGUNCmR1cGxpY2F0ZXMsIGJ1dCBp dCBtaWdodCBiZSBoYXJkLCBiZWNhdXNlIG9mIHRoZSB2YXJpYWJsZSBzdGVw cy4NCiANCkZvciBleGFtcGxlLCB3ZSB3b3VsZCBnZW5lcmF0ZSBkdXBsaWNh dGUgSVZzIGZvciBub24tU0xQIGNvZGUgdGhhdA0Kb3BlcmF0ZXMgb24gbXVs dGlwbGUgdmVjdG9yIHNpemVzLiAgKENhbid0IHJlbWVtYnJlciB3aGF0IHRo ZSBzdGF0dXMNCm9mIHVucGFjay90cnVuY2F0ZSBwYXR0ZXJucyBpcyBvbiBS VlYuKSAgQnV0IGl0IGFsc28gc2hvd3MgdXAgZm9yIFNMUC4NCkUuZy4sIEkg d291bGQgZXhwZWN0IGR1cGxpY2F0ZSBJVnMgZm9yOg0KIA0KdWludDE2X3Qg eFsxMDBdOw0KdWludDMyX3QgeVsyMDBdOw0KIA0Kdm9pZCBmKCkgew0KICBm b3IgKGludCBpID0gMDsgaSA8IDEwMDsgaSArPSAyKSB7DQogICAgeFtpICsg MF0gKz0gMTsNCiAgICB4W2kgKyAxXSArPSAyOw0KICAgIHlbaSArIDBdICs9 IDE7DQogICAgeVtpICsgMV0gKz0gMjsNCiAgfQ0KfQ0KIA0KU28gSSB0aGlu ayB0aGUgY2FsbCB0byB2ZWN0X3NldF9sb29wX2NvbnRyb2xzX2RpcmVjdGx5 IGRvZXMgc3RpbGwNCm5lZWQgdG8gYmUgaW5zaWRlIGFuICJpZiIuICBCdXQg dGhlICJpZiIgY29uZGl0aW9uIHNob3VsZCBiZSBiYXNlZA0Kb24gd2hldGhl ciB0aGUgSVYgc3RlcCBpcyBkaWZmZXJlbnQuICBBcyBkaXNjdXNzZWQgeWVz dGVyZGF5LCB0aGUNCklWIHN0ZXAgaXMgZGlmZmVyZW50IGlmIG5pdGVtc19w ZXJfaXRlciwgYWthOg0KIA0KICBtYXhfbnNjYWxhcnNfcGVyX2l0ZXIgKiBm YWN0b3INCiANCmlzIGRpZmZlcmVudC4NCiANCkJlY2F1c2Ugb2YgdGhhdCwg SSB0aGluayBJIHdhcyB3cm9uZyB0byBzdWdnZXN0IHN0b3JpbmcgdGhlIElW IGluDQpsb29wX3ZpbmZvLiAgSXQgc2hvdWxkIHByb2JhYmx5IGJlIHN0b3Jl ZCBpbiByZ3JvdXBfY29udHJvbHMgaW5zdGVhZC4NCiANClRoZW4gd2UgY291 bGQgaGF2ZSBhIHN0cnVjdHVyZSBsaWtlIHRoaXM6DQogDQogIHJncm91cF9j b250cm9scyAqcmdjOw0KICByZ3JvdXBfY29udHJvbHMgKml2X3JnYyA9IG51 bGxwdHI7DQogIC4uLg0KICBGT1JfRUFDSF9WRUNfRUxUICgqY29udHJvbHMs IGksIHJnYykNCiAgICBpZiAoIXJnYy0+Y29udHJvbHMuaXNfZW1wdHkgKCkp DQogICAgICB7DQogICAgICAgIC4uLg0KaWYgKCFMT09QX1ZJTkZPX1VTSU5H X0RFQ1JFTUVOVElOR19JVl9QIChsb29wX3ZpbmZvKQ0KICAgIHx8ICFpdl9y Z2MNCiAgICB8fCAoaXZfcmdjLT5tYXhfbnNjYWxhcnNfcGVyX2l0ZXIgKiBp dl9yZ2MtPmZhY3Rvcg0KIT0gcmdjLT5tYXhfbnNjYWxhcnNfcGVyX2l0ZXIg KiByZ2MtPmZhY3RvcikpDQogICAgICAgICAgew0KICAgICAgICAgICAgLyog U2VlIHdoZXRoZXIgemVyby1iYXNlZCBJViB3b3VsZCBldmVyIGdlbmVyYXRl IGFsbC1mYWxzZSBtYXNrcw0KICAgICAgICAgICAgICAgb3IgemVybyBsZW5n dGggYmVmb3JlIHdyYXBwaW5nIGFyb3VuZC4gICovDQogICAgICAgICAgICBi b29sIG1pZ2h0X3dyYXBfcCA9IHZlY3Rfcmdyb3VwX2l2X21pZ2h0X3dyYXBf cCAobG9vcF92aW5mbywgcmdjKTsNCiANCiAgICAgICAgICAgIC8qIFNldCB1 cCBhbGwgY29udHJvbHMgZm9yIHRoaXMgZ3JvdXAuICAqLw0KICAgICAgICAg ICAgdGVzdF9jdHJsID0gdmVjdF9zZXRfbG9vcF9jb250cm9sc19kaXJlY3Rs eSAobG9vcCwgbG9vcF92aW5mbywNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcmVoZWFkZXJf c2VxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmhlYWRlcl9zZXEsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs b29wX2NvbmRfZ3NpLCByZ2MsDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaXRlcnMsIG5pdGVy c19za2lwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWlnaHRfd3JhcF9wKTsNCiANCiAgICBp dl9yZ2MgPSByZ2M7DQogIH0NCiANCmlmIChMT09QX1ZJTkZPX1VTSU5HX0RF Q1JFTUVOVElOR19JVl9QIChsb29wX3ZpbmZvKQ0KICAgICYmIHJnYy0+Y29u dHJvbHMubGVuZ3RoICgpID4gMSkNCiAgew0KICAgICAgICAgICAgLi4ueW91 ciBjb2RlLCB1c2luZyB0aGUgaXYgaW4gaXZfcmdjLi4uOw0KICB9DQogICAg ICB9DQogDQpTb21lIG90aGVyIGNvbW1lbnRzOg0KIA0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3RyZWUtdmVjdC1sb29wLW1hbmlwLmNjIGIvZ2NjL3RyZWUtdmVj dC1sb29wLW1hbmlwLmNjDQo+IGluZGV4IGZmNjE1OWUwOGQ1Li5mOWQ5MmNl ZDk4MiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUtdmVjdC1sb29wLW1hbmlw LmNjDQo+ICsrKyBiL2djYy90cmVlLXZlY3QtbG9vcC1tYW5pcC5jYw0KPiBA QCAtNDY4LDYgKzQ2OCwzOCBAQCB2ZWN0X3NldF9sb29wX2NvbnRyb2xzX2Rp cmVjdGx5IChjbGFzcyBsb29wICpsb29wLCBsb29wX3ZlY19pbmZvIGxvb3Bf dmluZm8sDQo+ICAgIGdpbXBsZV9zdG10X2l0ZXJhdG9yIGluY3JfZ3NpOw0K PiAgICBib29sIGluc2VydF9hZnRlcjsNCj4gICAgc3RhbmRhcmRfaXZfaW5j cmVtZW50X3Bvc2l0aW9uIChsb29wLCAmaW5jcl9nc2ksICZpbnNlcnRfYWZ0 ZXIpOw0KPiArICBpZiAoTE9PUF9WSU5GT19VU0lOR19ERUNSRU1FTlRJTkdf SVZfUCAobG9vcF92aW5mbykpDQo+ICsgICAgew0KPiArICAgICAgLyogc2lu Z2xlIHJncm91cDoNCiANCkluc3RlYWQgb2YgInNpbmdsZSByZ3JvdXAiLCBo b3cgYWJvdXQ6DQogDQogICAgICAvKiBDcmVhdGUgYW4gSVYgdGhhdCBjb3Vu dHMgZG93biBmcm9tIG5pdGVyc190b3RhbCBhbmQgd2hvc2Ugc3RlcA0KaXMg dGhlICh2YXJpYWJsZSkgYW1vdW50IHByb2Nlc3NlZCBpbiB0aGUgY3VycmVu dCBpdGVyYXRpb246DQpCdXQgcGxlYXNlIGtlZXAgdGhlIGV4YW1wbGUgYmVs b3cgYXMgd2VsbC4NCiANCj4gKyAuLi4NCj4gKyBfMTAgPSAodW5zaWduZWQg bG9uZykgY291bnRfMTIoRCk7DQo+ICsgLi4uDQo+ICsgIyBpdnRtcF85ID0g UEhJIDxpdnRtcF8zNSg2KSwgXzEwKDUpPg0KPiArIF8zNiA9IE1JTl9FWFBS IDxpdnRtcF85LCBQT0xZX0lOVF9DU1QgWzQsIDRdPjsNCj4gKyAuLi4NCj4g KyB2ZWN0X180LjhfMjggPSAuTEVOX0xPQUQgKF8xNywgMzJCLCBfMzYsIDAp Ow0KPiArIC4uLg0KPiArIGl2dG1wXzM1ID0gaXZ0bXBfOSAtIF8zNjsNCj4g KyAuLi4NCj4gKyBpZiAoaXZ0bXBfMzUgIT0gMCkNCj4gKyAgICBnb3RvIDxi YiA0PjsgWzgzLjMzJV0NCj4gKyBlbHNlDQo+ICsgICAgZ290byA8YmIgNT47 IFsxNi42NyVdDQo+ICsgICAgICAqLw0KPiArICAgICAgbml0ZW1zX3RvdGFs ID0gZ2ltcGxlX2NvbnZlcnQgKHByZWhlYWRlcl9zZXEsIGl2X3R5cGUsIG5p dGVtc190b3RhbCk7DQo+ICsgICAgICB0cmVlIHN0ZXAgPSByZ2MtPmNvbnRy b2xzLmxlbmd0aCAoKSA9PSAxID8gcmdjLT5jb250cm9sc1swXQ0KPiArICAg ICAgICA6IG1ha2Vfc3NhX25hbWUgKGl2X3R5cGUpOw0KPiArICAgICAgLyog Q3JlYXRlIGRlY3JlbWVudCBJVi4gICovDQo+ICsgICAgICBjcmVhdGVfaXYg KG5pdGVtc190b3RhbCwgTUlOVVNfRVhQUiwgc3RlcCwgTlVMTF9UUkVFLCBs b29wLCAmaW5jcl9nc2ksDQo+ICsgaW5zZXJ0X2FmdGVyLCAmaW5kZXhfYmVm b3JlX2luY3IsICZpbmRleF9hZnRlcl9pbmNyKTsNCj4gKyAgICAgIGdpbXBs ZV9zZXFfYWRkX3N0bXQgKGhlYWRlcl9zZXEsIGdpbXBsZV9idWlsZF9hc3Np Z24gKHN0ZXAsIE1JTl9FWFBSLA0KPiArICAgICBpbmRleF9iZWZvcmVfaW5j ciwNCj4gKyAgICAgbml0ZW1zX3N0ZXApKTsNCj4gKyAgICAgIExPT1BfVklO Rk9fREVDUkVNRU5USU5HX0lWX1NURVAgKGxvb3BfdmluZm8pID0gc3RlcDsN Cj4gKyAgICAgIHJldHVybiBpbmRleF9hZnRlcl9pbmNyOw0KPiArICAgIH0N Cj4gKw0KPiArICAvKiBDcmVhdGUgaW5jcmVtZW50IElWLiAgKi8NCj4gICAg Y3JlYXRlX2l2IChidWlsZF9pbnRfY3N0IChpdl90eXBlLCAwKSwgUExVU19F WFBSLCBuaXRlbXNfc3RlcCwgTlVMTF9UUkVFLA0KPiAgICAgICBsb29wLCAm aW5jcl9nc2ksIGluc2VydF9hZnRlciwgJmluZGV4X2JlZm9yZV9pbmNyLA0K PiAgICAgICAmaW5kZXhfYWZ0ZXJfaW5jcik7DQo+IEBAIC02ODMsNiArNzE1 LDYzIEBAIHZlY3Rfc2V0X2xvb3BfY29udHJvbHNfZGlyZWN0bHkgKGNsYXNz IGxvb3AgKmxvb3AsIGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywNCj4gICAg cmV0dXJuIG5leHRfY3RybDsNCj4gIH0NCj4gIA0KPiArLyogVHJ5IHRvIHVz ZSBhZGp1c3QgbG9vcCBsZW5zIGZvciBtdWx0aXBsZS1yZ3JvdXBzLg0KIA0K VGhpcyBpcyBubyBsb25nZXIgInRyeSIsIHNpbmNlIHRoZSBmdW5jdGlvbiBh bHdheXMgZG9lcyBzb21ldGhpbmcuDQogDQpIb3cgYWJvdXQ6DQogDQovKiBQ b3B1bGF0ZSBERVNUX1JHTS0+Y29udHJvbHMsIGdpdmVuIHRoYXQgdGhleSBz aG91bGQgYWRkIHVwIHRvIFNURVAuDQogDQo+ICsNCj4gKyAgICAgXzM2ID0g TUlOX0VYUFIgPGl2dG1wXzM0LCBWRj47DQogDQpTdWdnZXN0IHVzaW5nICJT VEVQIiBpbnN0ZWFkIG9mICJfMzYiIGhlcmUsIHNpbmNlIHRoaXMgY29ycmVz cG9uZHMNCnRvIHRoZSBmdW5jdGlvbidzICJzdGVwIiBwYXJhbWV0ZXIuDQog DQo+ICsNCj4gKyAgICAgRmlyc3QgbGVuZ3RoIChNSU4gKFgsIFZGL04pKToN Cj4gKyAgICAgICBsb29wX2xlbl8xNSA9IE1JTl9FWFBSIDxfMzYsIFZGL04+ Ow0KIA0KTGlrZXdpc2UgaGVyZS4NCiANCj4gKw0KPiArICAgICBTZWNvbmQg bGVuZ3RoOg0KPiArICAgICAgIHRtcCA9IF8zNiAtIGxvb3BfbGVuXzE1Ow0K IA0KQW5kIGhlcmUuDQogDQo+ICsgICAgICAgbG9vcF9sZW5fMTYgPSBNSU4g KHRtcCwgVkYvTik7DQo+ICsNCj4gKyAgICAgVGhpcmQgbGVuZ3RoOg0KPiAr ICAgICAgIHRtcDIgPSB0bXAgLSBsb29wX2xlbl8xNjsNCj4gKyAgICAgICBs b29wX2xlbl8xNyA9IE1JTiAodG1wMiwgVkYvTik7DQo+ICsNCj4gKyAgICAg TGFzdCBsZW5ndGg6DQo+ICsgICAgICAgbG9vcF9sZW5fMTggPSB0bXAyIC0g bG9vcF9sZW5fMTc7DQo+ICsqLw0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiAr dmVjdF9hZGp1c3RfbG9vcF9sZW5zX2NvbnRyb2wgKHRyZWUgaXZfdHlwZSwg Z2ltcGxlX3NlcSAqc2VxLA0KPiArICAgICAgICByZ3JvdXBfY29udHJvbHMg KmRlc3RfcmdtLCB0cmVlIHN0ZXApDQo+ICt7DQo+ICsgIHRyZWUgY3RybF90 eXBlID0gZGVzdF9yZ20tPnR5cGU7DQo+ICsgIHBvbHlfdWludDY0IG5pdGVt c19wZXJfY3RybA0KPiArICAgID0gVFlQRV9WRUNUT1JfU1VCUEFSVFMgKGN0 cmxfdHlwZSkgKiBkZXN0X3JnbS0+ZmFjdG9yOw0KPiArICB0cmVlIGxlbmd0 aF9saW1pdCA9IGJ1aWxkX2ludF9jc3QgKGl2X3R5cGUsIG5pdGVtc19wZXJf Y3RybCk7DQo+ICsNCj4gKyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg PCBkZXN0X3JnbS0+Y29udHJvbHMubGVuZ3RoICgpOyArK2kpDQo+ICsgICAg ew0KPiArICAgICAgdHJlZSBjdHJsID0gZGVzdF9yZ20tPmNvbnRyb2xzW2ld Ow0KPiArICAgICAgaWYgKGkgPT0gMCkNCj4gKyB7DQo+ICsgICAvKiBGaXJz dCBpdGVyYXRpb246IE1JTiAoWCwgVkYvTikgY2FwcGVkIHRvIHRoZSByYW5n ZSBbMCwgVkYvTl0uICAqLw0KPiArICAgZ2Fzc2lnbiAqYXNzaWduDQo+ICsg ICAgID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAoY3RybCwgTUlOX0VYUFIsIHN0 ZXAsIGxlbmd0aF9saW1pdCk7DQo+ICsgICBnaW1wbGVfc2VxX2FkZF9zdG10 IChzZXEsIGFzc2lnbik7DQo+ICsgfQ0KPiArICAgICAgZWxzZSBpZiAoaSA9 PSBkZXN0X3JnbS0+Y29udHJvbHMubGVuZ3RoICgpIC0gMSkNCj4gKyB7DQo+ ICsgICAvKiBMYXN0IGl0ZXJhdGlvbjogUmVtYWluIGNhcHBlZCB0byB0aGUg cmFuZ2UgWzAsIFZGL05dLiAgKi8NCj4gKyAgIGdhc3NpZ24gKmFzc2lnbiA9 IGdpbXBsZV9idWlsZF9hc3NpZ24gKGN0cmwsIE1JTlVTX0VYUFIsIHN0ZXAs DQo+ICsgZGVzdF9yZ20tPmNvbnRyb2xzW2kgLSAxXSk7DQo+ICsgICBnaW1w bGVfc2VxX2FkZF9zdG10IChzZXEsIGFzc2lnbik7DQo+ICsgfQ0KPiArICAg ICAgZWxzZQ0KPiArIHsNCj4gKyAgIC8qIChNSU4gKHJlbWFpbiwgVkYqSS9O KSkgY2FwcGVkIHRvIHRoZSByYW5nZSBbMCwgVkYvTl0uICAqLw0KPiArICAg c3RlcCA9IGdpbXBsZV9idWlsZCAoc2VxLCBNSU5VU19FWFBSLCBpdl90eXBl LCBzdGVwLA0KPiArICAgICAgICBkZXN0X3JnbS0+Y29udHJvbHNbaSAtIDFd KTsNCj4gKyAgIGdhc3NpZ24gKmFzc2lnbg0KPiArICAgICA9IGdpbXBsZV9i dWlsZF9hc3NpZ24gKGN0cmwsIE1JTl9FWFBSLCBzdGVwLCBsZW5ndGhfbGlt aXQpOw0KPiArICAgZ2ltcGxlX3NlcV9hZGRfc3RtdCAoc2VxLCBhc3NpZ24p Ow0KPiArIH0NCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gIC8qIFNldCB1cCB0 aGUgaXRlcmF0aW9uIGNvbmRpdGlvbiBhbmQgcmdyb3VwIGNvbnRyb2xzIGZv ciBMT09QLCBnaXZlbg0KPiAgICAgdGhhdCBMT09QX1ZJTkZPX1VTSU5HX1BB UlRJQUxfVkVDVE9SU19QIGlzIHRydWUgZm9yIHRoZSB2ZWN0b3JpemVkDQo+ ICAgICBsb29wLiAgTE9PUF9WSU5GTyBkZXNjcmliZXMgdGhlIHZlY3Rvcml6 YXRpb24gb2YgTE9PUC4gIE5JVEVSUyBpcw0KPiBAQCAtNzY0LDYgKzg1Myw3 MCBAQCB2ZWN0X3NldF9sb29wX2NvbmRpdGlvbl9wYXJ0aWFsX3ZlY3RvcnMg KGNsYXNzIGxvb3AgKmxvb3AsDQo+ICAgICAgIGxvb3BfY29uZF9nc2ksIHJn YywNCj4gICAgICAgbml0ZXJzLCBuaXRlcnNfc2tpcCwNCj4gICAgICAgbWln aHRfd3JhcF9wKTsNCj4gKw0KPiArIC8qIERlY3JlbWVudCBJViBvbmx5IHJ1 biB2ZWN0X3NldF9sb29wX2NvbnRyb2xzX2RpcmVjdGx5IG9uY2UuICAqLw0K PiArIGlmIChMT09QX1ZJTkZPX1VTSU5HX0RFQ1JFTUVOVElOR19JVl9QIChs b29wX3ZpbmZvKQ0KPiArICAgICAmJiByZ2MtPmNvbnRyb2xzLmxlbmd0aCAo KSA+IDEpDQo+ICsgICB7DQo+ICsgICAgIC8qDQo+ICsgICAgICAgIC0gTXVs dGlwbGUgcmdyb3VwIChTTFApOg0KPiArIC4uLg0KPiArIF8zOCA9ICh1bnNp Z25lZCBsb25nKSBibmQuN18yOTsNCj4gKyBfMzkgPSBfMzggKiAyOw0KPiAr IC4uLg0KPiArICMgaXZ0bXBfNDEgPSBQSEkgPGl2dG1wXzQyKDYpLCBfMzko NSk+DQo+ICsgLi4uDQo+ICsgXzQzID0gTUlOX0VYUFIgPGl2dG1wXzQxLCAz Mj47DQo+ICsgbG9vcF9sZW5fMjYgPSBNSU5fRVhQUiA8XzQzLCAxNj47DQo+ ICsgbG9vcF9sZW5fMjUgPSBfNDMgLSBsb29wX2xlbl8yNjsNCj4gKyAuLi4N Cj4gKyAuTEVOX1NUT1JFIChfNiwgOEIsIGxvb3BfbGVuXzI2LCAuLi4pOw0K PiArIC4uLg0KPiArIC5MRU5fU1RPUkUgKF8yNSwgOEIsIGxvb3BfbGVuXzI1 LCAuLi4pOw0KPiArIF8zMyA9IGxvb3BfbGVuXzI2IC8gMjsNCj4gKyAuLi4N Cj4gKyAuTEVOX1NUT1JFIChfOCwgMTZCLCBfMzMsIC4uLik7DQo+ICsgXzM2 ID0gbG9vcF9sZW5fMjUgLyAyOw0KPiArIC4uLg0KPiArIC5MRU5fU1RPUkUg KF8xNSwgMTZCLCBfMzYsIC4uLik7DQo+ICsgaXZ0bXBfNDIgPSBpdnRtcF80 MSAtIF80MzsNCj4gKyAuLi4NCj4gKw0KPiArICAgICAgICAtIE11bHRpcGxl IHJncm91cCAobm9uLVNMUCk6DQo+ICsgLi4uDQo+ICsgXzM4ID0gKHVuc2ln bmVkIGxvbmcpIG5fMTIoRCk7DQo+ICsgLi4uDQo+ICsgIyBpdnRtcF8zOCA9 IFBISSA8aXZ0bXBfMzkoMyksIDEwMCgyKT4NCj4gKyAuLi4NCj4gKyBsb29w X2xlbl8zOCA9IE1JTl9FWFBSIDxpdnRtcF80MSwgUE9MWV9JTlRfQ1NUIFs4 LCA4XT47DQo+ICsgXzQzID0gTUlOX0VYUFIgPGl2dG1wXzQ0LCBQT0xZX0lO VF9DU1QgWzgsIDhdPjsNCj4gKyBsb29wX2xlbl8yNCA9IE1JTl9FWFBSIDxf NDMsIFBPTFlfSU5UX0NTVCBbMiwgMl0+Ow0KPiArIF80NiA9IF80MyAtIGxv b3BfbGVuXzI0Ow0KPiArIGxvb3BfbGVuXzIzID0gTUlOX0VYUFIgPF80Niwg UE9MWV9JTlRfQ1NUIFsyLCAyXT47DQo+ICsgXzQ3ID0gXzQ2IC0gbG9vcF9s ZW5fMjM7DQo+ICsgbG9vcF9sZW5fMjIgPSBNSU5fRVhQUiA8XzQ3LCBQT0xZ X0lOVF9DU1QgWzIsIDJdPjsNCj4gKyBsb29wX2xlbl8yMSA9IF80NyAtIGxv b3BfbGVuXzIyOw0KPiArIC4uLg0KPiArIHZlY3RfXzQuOF8xNyA9IC5MRU5f TE9BRCAoXzYsIDY0QiwgbG9vcF9sZW5fMjQsIDApOw0KPiArIC4uLg0KPiAr IHZlY3RfXzQuOV85ID0gLkxFTl9MT0FEIChfNDksIDY0QiwgbG9vcF9sZW5f MjMsIDApOw0KPiArIC4uLg0KPiArIHZlY3RfXzQuMTBfMzAgPSAuTEVOX0xP QUQgKF81MiwgNjRCLCBsb29wX2xlbl8yMiwgMCk7DQo+ICsgLi4uDQo+ICsg dmVjdF9fNC4xMV8zMiA9IC5MRU5fTE9BRCAoXzU1LCA2NEIsIGxvb3BfbGVu XzIxLCAwKTsNCj4gKyB2ZWN0X183LjEzXzMxID0gVkVDX1BBQ0tfVFJVTkNf RVhQUiA8Li4uPiwNCj4gKyB2ZWN0X183LjEzXzMyID0gVkVDX1BBQ0tfVFJV TkNfRVhQUiA8Li4uPjsNCj4gKyB2ZWN0X183LjEyXzMzID0gVkVDX1BBQ0tf VFJVTkNfRVhQUiA8Li4uPjsNCj4gKyAuLi4NCj4gKyAuTEVOX1NUT1JFIChf MTQsIDE2QiwgXzQwLCB2ZWN0X183LjEyXzMzLCAwKTsNCj4gKyBpdnRtcF8z OSA9IGl2dG1wXzM4IC0gXzQwOw0KPiArIC4uLg0KPiArICAgICAqLw0KIA0K SSBkb24ndCB0aGluayB0aGlzIGNvbW1lbnQgaXMgcmVhbGx5IG5lY2Vzc2Fy eSwgYW5kIG1pZ2h0IGJlIGEgYml0DQptaXNsZWFkaW5nLCBzaW5jZSBpdCBp bmNsdWRlcyB0aGluZ3MgdGhhdCBhcmUgbm90IGRvbmUgZGlyZWN0bHkNCmJ5 IHRoaXMgY29kZS4NCiANCkkgdGhpbmsgdGhlIGNvbW1lbnQgYWJvdmUgdmVj dF9hZGp1c3RfbG9vcF9sZW5zX2NvbnRyb2wgYWNjdXJhdGVseQ0KZGVzY3Jp YmVzIHdoYXQncyBnb2luZyBvbiwgc28gd2UgY2FuIGp1c3Qgc2F5Og0KIA0K ICAgIC8qIHZlY3Rfc2V0X2xvb3BfY29udHJvbHNfZGlyZWN0bHkgY3JlYXRl cyBhbiBJViB3aG9zZSBzdGVwDQogICAgICAgaXMgZXF1YWwgdG8gdGhlIGV4 cGVjdGVkIHN1bSBvZiBSR0MtPmNvbnRyb2xzLiAgVXNlIHRoYXQNCiAgICAg ICBpbmZvcm1hdGlvbiB0byBwb3B1bGF0ZSBSR0MtPmNvbnRyb2xzLiAgKi8N CiANClRoYW5rcywNClJpY2hhcmQNCiANCg== ------=_001_NextPart224582425502_=------