From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id 06E493858D35 for ; Fri, 9 Jun 2023 11:32:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06E493858D35 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: bizesmtp88t1686310344trqbfcdh Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 09 Jun 2023 19:32:23 +0800 (CST) X-QQ-SSF: 01400000000000F0S000000A0000000 X-QQ-FEAT: kF46OwNrWU5KkNdinwufLbjZv+fiBNgEz9rEaRPptzNlrrhg6+jG+Mdknsbys vUBgeCpHbyls3/YSt9o3Vk4bDDKyeTyGYh0dhcDVJElYsBWncvAMYLL321Abhoh5i+n//WX 9JHfvFBC9XH5lG3MNPjwvHRzPKtNwKYLTn5NV2uK7G5VoTsruNpgQK6iWliWSJ4VyMY//XY LVzbpaOfR6KS7uxxBW3Zgvs5nNiK6w78FqIBPwJRTZ79RtHmqZVUNBPBP16DylHkoflPyOf hpH+6A5BEFCa32tjklIlCBeKb/vPvUOkwk5/ZGvOOhH0nm+fOux1Gizf1vq+ItB0EGYKaJO ZtFGN8Yy3rM6tJomYKJN0VUkH2Nar4nZlsZhjea5fSH2gIumVvN+zxiIEjYyEb3qhGzQXwA b1vdl0glhDw64K6mMqTDzk+kFTfsWouq X-QQ-GoodBg: 2 X-BIZMAIL-ID: 2235584533067132114 Date: Fri, 9 Jun 2023 19:32:23 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , richard.sandiford Subject: Re: Re: [PATCH V6] VECT: Add SELECT_VL support References: <20230609083934.556871-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 48F336FE-982B-4F5D-BADA-CF54207614B9 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <026C98745E7F4ACA+202306091932227826494@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart732040288341_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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_NextPart732040288341_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 VGhhbmtzIGEgbG90IFJpY2hpLg0KDQpFdmVuIHRob3VnaCBsYXN0IHRpbWUg UmljaGFyZCBhc2tlZCBtZSBubyBuZWVkIHRvIHdhaXQgZm9yIDJuZCBBQ0ss DQpJIGFtIHN0aWxsIHdhbnQgdG8gd2FpdCBmb3IgUmljaGFyZCBmaW5hbCBh cHByb3ZhbCBzaW5jZSBJIGFtIG5vdCBzdXJlIHRoaXMgcGF0Y2ggaXMgb2sg Zm9yIGhpbS4NCg0KVGhhbmtzLg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFp DQogDQpGcm9tOiBSaWNoYXJkIEJpZW5lcg0KRGF0ZTogMjAyMy0wNi0wOSAx OTowMg0KVG86IEp1LVpoZSBaaG9uZw0KQ0M6IGdjYy1wYXRjaGVzOyByaWNo YXJkLnNhbmRpZm9yZA0KU3ViamVjdDogUmU6IFtQQVRDSCBWNl0gVkVDVDog QWRkIFNFTEVDVF9WTCBzdXBwb3J0DQpPbiBGcmksIDkgSnVuIDIwMjMsIGp1 emhlLnpob25nQHJpdmFpLmFpIHdyb3RlOg0KIA0KPiBGcm9tOiBKdS1aaGUg WmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPiANCj4gQ28tYXV0aG9y ZWQtYnk6IFJpY2hhcmQgU2FuZGlmb3JkPHJpY2hhcmQuc2FuZGlmb3JkQGFy bS5jb20+DQo+IENvLWF1dGhvcmVkLWJ5OiBSaWNoYXJkIEJpZW5lciA8cmd1 ZW50aGVyQHN1c2UuZGU+DQo+IA0KPiBUaGlzIHBhdGNoIGFkZHJlc3MgY29t bWVudHMgZnJvbSBSaWNoYXJkICYmIFJpY2hpIGFuZCByZWJhc2UgdG8gdHJ1 bmsuDQo+IA0KPiBUaGlzIHBhdGNoIGlzIGFkZGluZyBTRUxFQ1RfVkwgbWlk ZGxlLWVuZCBzdXBwb3J0DQo+IGFsbG93IHRhcmdldCBoYXZlIHRhcmdldCBk ZXBlbmRlbnQgb3B0aW1pemF0aW9uIGluIGNhc2Ugb2YNCj4gbGVuZ3RoIGNh bGN1bGF0aW9uLg0KPiANCj4gVGhpcyBwYXRjaCBpcyBpbnNwaXJlZCBieSBS VlYgSVNBIGFuZCBMTFZNOg0KPiBodHRwczovL3Jldmlld3MubGx2bS5vcmcv RDk5NzUwDQo+IA0KPiBUaGUgU0VMRUNUX1ZMIGlzIHNhbWUgYmVoYXZpb3Ig YXMgTExWTSAiZ2V0X3ZlY3Rvcl9sZW5ndGgiIHdpdGgNCj4gdGhlc2UgZm9s bG93aW5nIHByb3BlcnRpZXM6DQo+IA0KPiAxLiBPbmx5IGFwcGx5IG9uIHNp bmdsZS1yZ3JvdXAuDQo+IDIuIG5vbiBTTFAuDQo+IDMuIGFkanVzdCBsb29w IGNvbnRyb2wgSVYuDQo+IDQuIGFkanVzdCBkYXRhIHJlZmVyZW5jZSBJVi4N Cj4gNS4gYWxsb3cgbm9uLXZmIGVsZW1lbnRzIHByb2Nlc3NpbmcgaW4gbm9u LWZpbmFsIGl0ZXJhdGlvbg0KPiANCj4gQ29kZToNCj4gICAgIyB2b2lkIHZ2 YWRkaW50MzIoc2l6ZV90IG4sIGNvbnN0IGludCp4LCBjb25zdCBpbnQqeSwg aW50KnopDQo+ICAgICAjIHsgZm9yIChzaXplX3QgaT0wOyBpPG47IGkrKykg eyB6W2ldPXhbaV0reVtpXTsgfSB9DQo+IA0KPiBUYWtlIFJWViBjb2RlZ2Vu IGZvciBleGFtcGxlOg0KPiANCj4gQmVmb3JlIHRoaXMgcGF0Y2g6DQo+IHZ2 YWRkaW50MzI6DQo+ICAgICAgICAgYmxlICAgICBhMCx6ZXJvLC5MNg0KPiAg ICAgICAgIGNzcnIgICAgYTQsdmxlbmINCj4gICAgICAgICBzcmxpICAgIGE2 LGE0LDINCj4gLkw0Og0KPiAgICAgICAgIG12ICAgICAgYTUsYTANCj4gICAg ICAgICBibGV1ICAgIGEwLGE2LC5MMw0KPiAgICAgICAgIG12ICAgICAgYTUs YTYNCj4gLkwzOg0KPiAgICAgICAgIHZzZXR2bGkgemVybyxhNSxlMzIsbTEs dGEsbWENCj4gICAgICAgICB2bGUzMi52IHYyLDAoYTEpDQo+ICAgICAgICAg dmxlMzIudiB2MSwwKGEyKQ0KPiAgICAgICAgIHZzZXR2bGkgYTcsemVybyxl MzIsbTEsdGEsbWENCj4gICAgICAgICBzdWIgICAgIGEwLGEwLGE1DQo+ICAg ICAgICAgdmFkZC52diB2MSx2MSx2Mg0KPiAgICAgICAgIHZzZXR2bGkgemVy byxhNSxlMzIsbTEsdGEsbWENCj4gICAgICAgICB2c2UzMi52IHYxLDAoYTMp DQo+ICAgICAgICAgYWRkICAgICBhMixhMixhNA0KPiAgICAgICAgIGFkZCAg ICAgYTMsYTMsYTQNCj4gICAgICAgICBhZGQgICAgIGExLGExLGE0DQo+ICAg ICAgICAgYm5lICAgICBhMCx6ZXJvLC5MNA0KPiAuTDY6DQo+ICAgICAgICAg cmV0DQo+IA0KPiBBZnRlciB0aGlzIHBhdGNoOg0KPiANCj4gdnZhZGRpbnQz MjoNCj4gICAgIHZzZXR2bGkgdDAsIGEwLCBlMzIsIHRhLCBtYSAgIyBTZXQg dmVjdG9yIGxlbmd0aCBiYXNlZCBvbiAzMi1iaXQgdmVjdG9ycw0KPiAgICAg dmxlMzIudiB2MCwgKGExKSAgICAgICAgICMgR2V0IGZpcnN0IHZlY3Rvcg0K PiAgICAgICBzdWIgYTAsIGEwLCB0MCAgICAgICAgICMgRGVjcmVtZW50IG51 bWJlciBkb25lDQo+ICAgICAgIHNsbGkgdDAsIHQwLCAyICAgICAgICAgIyBN dWx0aXBseSBudW1iZXIgZG9uZSBieSA0IGJ5dGVzDQo+ICAgICAgIGFkZCBh MSwgYTEsIHQwICAgICAgICAgIyBCdW1wIHBvaW50ZXINCj4gICAgIHZsZTMy LnYgdjEsIChhMikgICAgICAgICAjIEdldCBzZWNvbmQgdmVjdG9yDQo+ICAg ICAgIGFkZCBhMiwgYTIsIHQwICAgICAgICAgIyBCdW1wIHBvaW50ZXINCj4g ICAgIHZhZGQudnYgdjIsIHYwLCB2MSAgICAgICAjIFN1bSB2ZWN0b3JzDQo+ ICAgICB2c2UzMi52IHYyLCAoYTMpICAgICAgICAgIyBTdG9yZSByZXN1bHQN Cj4gICAgICAgYWRkIGEzLCBhMywgdDAgICAgICAgICAjIEJ1bXAgcG9pbnRl cg0KPiAgICAgICBibmV6IGEwLCB2dmFkZGludDMyICAgICMgTG9vcCBiYWNr DQo+ICAgICAgIHJldCAgICAgICAgICAgICAgICAgICAgIyBGaW5pc2hlZA0K IA0KT0suDQogDQpUaGFua3MsDQpSaWNoYXJkLg0KIA0KPiBnY2MvQ2hhbmdl TG9nOg0KPiANCj4gICAgICAgICAqIGRvYy9tZC50ZXhpOiBBZGQgU0VMRUNU X1ZMIHN1cHBvcnQuDQo+ICAgICAgICAgKiBpbnRlcm5hbC1mbi5kZWYgKFNF TEVDVF9WTCk6IERpdHRvLg0KPiAgICAgICAgICogb3B0YWJzLmRlZiAoT1BU QUJfRCk6IERpdHRvLg0KPiAgICAgICAgICogdHJlZS12ZWN0LWxvb3AtbWFu aXAuY2MgKHZlY3Rfc2V0X2xvb3BfY29udHJvbHNfZGlyZWN0bHkpOiBEaXR0 by4NCj4gICAgICAgICAqIHRyZWUtdmVjdC1sb29wLmNjIChfbG9vcF92ZWNf aW5mbzo6X2xvb3BfdmVjX2luZm8pOiBEaXR0by4NCj4gICAgICAgICAqIHRy ZWUtdmVjdC1zdG10cy5jYyAoZ2V0X3NlbGVjdF92bF9kYXRhX3JlZl9wdHIp OiBEaXR0by4NCj4gICAgICAgICAodmVjdG9yaXphYmxlX3N0b3JlKTogRGl0 dG8uDQo+ICAgICAgICAgKHZlY3Rvcml6YWJsZV9sb2FkKTogRGl0dG8uDQo+ ICAgICAgICAgKiB0cmVlLXZlY3Rvcml6ZXIuaCAoTE9PUF9WSU5GT19VU0lO R19TRUxFQ1RfVkxfUCk6IERpdHRvLg0KPiANCj4gLS0tDQo+ICBnY2MvZG9j L21kLnRleGkgICAgICAgICAgICAgfCAyMiArKysrKysrKysrKysNCj4gIGdj Yy9pbnRlcm5hbC1mbi5kZWYgICAgICAgICB8ICAxICsNCj4gIGdjYy9vcHRh YnMuZGVmICAgICAgICAgICAgICB8ICAxICsNCj4gIGdjYy90cmVlLXZlY3Qt bG9vcC1tYW5pcC5jYyB8IDMyICsrKysrKysrKysrKy0tLS0tDQo+ICBnY2Mv dHJlZS12ZWN0LWxvb3AuY2MgICAgICAgfCA3MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrDQo+ICBnY2MvdHJlZS12ZWN0LXN0bXRz LmNjICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLQ0KPiAgZ2NjL3RyZWUtdmVjdG9yaXplci5oICAgICAgIHwgIDYgKysr Kw0KPiAgNyBmaWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMTYg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9tZC50 ZXhpIGIvZ2NjL2RvYy9tZC50ZXhpDQo+IGluZGV4IDZhNDM1ZWI0NDYxLi45 NWY3ZmUxZjgwMiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2RvYy9tZC50ZXhpDQo+ ICsrKyBiL2djYy9kb2MvbWQudGV4aQ0KPiBAQCAtNDk3NCw2ICs0OTc0LDI4 IEBAIGZvciAoaSA9IDE7IGkgPCBvcGVyYW5kMzsgaSsrKQ0KPiAgICBvcGVy YW5kMFtpXSA9IG9wZXJhbmQwW2kgLSAxXSAmJiAob3BlcmFuZDEgKyBpIDwg b3BlcmFuZDIpOw0KPiAgQGVuZCBzbWFsbGV4YW1wbGUNCj4gIA0KPiArQGNp bmRleCBAY29kZXtzZWxlY3RfdmxAdmFye219fSBpbnN0cnVjdGlvbiBwYXR0 ZXJuDQo+ICtAaXRlbSBAY29kZXtzZWxlY3RfdmxAdmFye219fQ0KPiArU2V0 IG9wZXJhbmQgMCB0byB0aGUgbnVtYmVyIG9mIHNjYWxhciBpdGVyYXRpb25z IHRoYXQgc2hvdWxkIGJlIGhhbmRsZWQNCj4gK2J5IG9uZSBpdGVyYXRpb24g b2YgYSB2ZWN0b3IgbG9vcC4gIE9wZXJhbmQgMSBpcyB0aGUgdG90YWwgbnVt YmVyIG9mDQo+ICtzY2FsYXIgaXRlcmF0aW9ucyB0aGF0IHRoZSBsb29wIG5l ZWRzIHRvIHByb2Nlc3MgYW5kIG9wZXJhbmQgMiBpcyBhDQo+ICttYXhpbXVt IGJvdW5kIG9uIHRoZSByZXN1bHQgKGFsc28ga25vd24gYXMgdGhlIG1heGlt dW0gYGB2ZWN0b3JpemF0aW9uDQo+ICtmYWN0b3InJykuDQo+ICsNCj4gK1Ro ZSBtYXhpbXVtIHZhbHVlIG9mIG9wZXJhbmQgMCBpcyBnaXZlbiBieToNCj4g K0BzbWFsbGV4YW1wbGUNCj4gK29wZXJhbmQwID0gTUlOIChvcGVyYW5kMSwg b3BlcmFuZDIpDQo+ICtAZW5kIHNtYWxsZXhhbXBsZQ0KPiArSG93ZXZlciwg dGFyZ2V0cyBtaWdodCBjaG9vc2UgYSBsb3dlciB2YWx1ZSB0aGFuIHRoaXMs IGJhc2VkIG9uDQo+ICt0YXJnZXQtc3BlY2lmaWMgY3JpdGVyaWEuICBFYWNo IGl0ZXJhdGlvbiBvZiB0aGUgdmVjdG9yIGxvb3AgbWlnaHQNCj4gK3RoZXJl Zm9yZSBwcm9jZXNzIGEgZGlmZmVyZW50IG51bWJlciBvZiBzY2FsYXIgaXRl cmF0aW9ucywgd2hpY2ggaW4gdHVybg0KPiArbWVhbnMgdGhhdCBpbmR1Y3Rp b24gdmFyaWFibGVzIHdpbGwgaGF2ZSBhIHZhcmlhYmxlIHN0ZXAuICBCZWNh dXNlIG9mDQo+ICt0aGlzLCBpdCBpcyBnZW5lcmFsbHkgbm90IHVzZWZ1bCB0 byBkZWZpbmUgdGhpcyBpbnN0cnVjdGlvbiBpZiBpdCB3aWxsDQo+ICthbHdh eXMgY2FsY3VsYXRlIHRoZSBtYXhpbXVtIHZhbHVlLg0KPiArDQo+ICtUaGlz IG9wdGFiIGlzIG9ubHkgdXNlZnVsIG9uIHRhcmdldHMgdGhhdCBpbXBsZW1l bnQgQHNhbXB7bGVuX2xvYWRfQHZhcnttfX0NCj4gK2FuZC9vciBAc2FtcHts ZW5fc3RvcmVfQHZhcnttfX0uDQo+ICsNCj4gIEBjaW5kZXggQGNvZGV7Y2hl Y2tfcmF3X3B0cnNAdmFye219fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQo+ICBA aXRlbSBAc2FtcHtjaGVja19yYXdfcHRyc0B2YXJ7bX19DQo+ICBDaGVjayB3 aGV0aGVyLCBnaXZlbiB0d28gcG9pbnRlcnMgQHZhcnthfSBhbmQgQHZhcnti fSBhbmQgYSBsZW5ndGggQHZhcntsZW59LA0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L2ludGVybmFsLWZuLmRlZiBiL2djYy9pbnRlcm5hbC1mbi5kZWYNCj4gaW5k ZXggM2FjOWQ4MmFhY2UuLjVkNjM4ZGU2ZDA2IDEwMDY0NA0KPiAtLS0gYS9n Y2MvaW50ZXJuYWwtZm4uZGVmDQo+ICsrKyBiL2djYy9pbnRlcm5hbC1mbi5k ZWYNCj4gQEAgLTE3Nyw2ICsxNzcsNyBAQCBERUZfSU5URVJOQUxfT1BUQUJf Rk4gKFZFQ19TRVQsIDAsIHZlY19zZXQsIHZlY19zZXQpDQo+ICBERUZfSU5U RVJOQUxfT1BUQUJfRk4gKExFTl9TVE9SRSwgMCwgbGVuX3N0b3JlLCBsZW5f c3RvcmUpDQo+ICANCj4gIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoV0hJTEVf VUxULCBFQ0ZfQ09OU1QgfCBFQ0ZfTk9USFJPVywgd2hpbGVfdWx0LCB3aGls ZSkNCj4gK0RFRl9JTlRFUk5BTF9PUFRBQl9GTiAoU0VMRUNUX1ZMLCBFQ0Zf Q09OU1QgfCBFQ0ZfTk9USFJPVywgc2VsZWN0X3ZsLCBiaW5hcnkpDQo+ICBE RUZfSU5URVJOQUxfT1BUQUJfRk4gKENIRUNLX1JBV19QVFJTLCBFQ0ZfQ09O U1QgfCBFQ0ZfTk9USFJPVywNCj4gICAgICAgICBjaGVja19yYXdfcHRycywg Y2hlY2tfcHRycykNCj4gIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoQ0hFQ0tf V0FSX1BUUlMsIEVDRl9DT05TVCB8IEVDRl9OT1RIUk9XLA0KPiBkaWZmIC0t Z2l0IGEvZ2NjL29wdGFicy5kZWYgYi9nY2Mvb3B0YWJzLmRlZg0KPiBpbmRl eCA2YzA2NGZmNDk5My4uZjMxYjY5YzVkODUgMTAwNjQ0DQo+IC0tLSBhL2dj Yy9vcHRhYnMuZGVmDQo+ICsrKyBiL2djYy9vcHRhYnMuZGVmDQo+IEBAIC00 ODgsMyArNDg4LDQgQEAgT1BUQUJfREMgKHZlY19zZXJpZXNfb3B0YWIsICJ2 ZWNfc2VyaWVzJGEiLCBWRUNfU0VSSUVTKQ0KPiAgT1BUQUJfRCAodmVjX3No bF9pbnNlcnRfb3B0YWIsICJ2ZWNfc2hsX2luc2VydF8kYSIpDQo+ICBPUFRB Ql9EIChsZW5fbG9hZF9vcHRhYiwgImxlbl9sb2FkXyRhIikNCj4gIE9QVEFC X0QgKGxlbl9zdG9yZV9vcHRhYiwgImxlbl9zdG9yZV8kYSIpDQo+ICtPUFRB Ql9EIChzZWxlY3Rfdmxfb3B0YWIsICJzZWxlY3RfdmwkYSIpDQo+IGRpZmYg LS1naXQgYS9nY2MvdHJlZS12ZWN0LWxvb3AtbWFuaXAuY2MgYi9nY2MvdHJl ZS12ZWN0LWxvb3AtbWFuaXAuY2MNCj4gaW5kZXggM2Y3MzU5NDVlNjcuLjFj ODEwMGMxYTFjIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS12ZWN0LWxvb3At bWFuaXAuY2MNCj4gKysrIGIvZ2NjL3RyZWUtdmVjdC1sb29wLW1hbmlwLmNj DQo+IEBAIC01MzQsNyArNTM0LDcgQEAgdmVjdF9zZXRfbG9vcF9jb250cm9s c19kaXJlY3RseSAoY2xhc3MgbG9vcCAqbG9vcCwgbG9vcF92ZWNfaW5mbyBs b29wX3ZpbmZvLA0KPiAgICAgXzEwID0gKHVuc2lnbmVkIGxvbmcpIGNvdW50 XzEyKEQpOw0KPiAgICAgLi4uDQo+ICAgICAjIGl2dG1wXzkgPSBQSEkgPGl2 dG1wXzM1KDYpLCBfMTAoNSk+DQo+IC0gICAgXzM2ID0gTUlOX0VYUFIgPGl2 dG1wXzksIFBPTFlfSU5UX0NTVCBbNCwgNF0+Ow0KPiArICAgIF8zNiA9IChN SU5fRVhQUiB8IFNFTEVDVF9WTCkgPGl2dG1wXzksIFBPTFlfSU5UX0NTVCBb NCwgNF0+Ow0KPiAgICAgLi4uDQo+ICAgICB2ZWN0X180LjhfMjggPSAuTEVO X0xPQUQgKF8xNywgMzJCLCBfMzYsIDApOw0KPiAgICAgLi4uDQo+IEBAIC01 NDksMTUgKzU0OSwyOCBAQCB2ZWN0X3NldF9sb29wX2NvbnRyb2xzX2RpcmVj dGx5IChjbGFzcyBsb29wICpsb29wLCBsb29wX3ZlY19pbmZvIGxvb3Bfdmlu Zm8sDQo+ICAgICAgICB0cmVlIHN0ZXAgPSByZ2MtPmNvbnRyb2xzLmxlbmd0 aCAoKSA9PSAxID8gcmdjLT5jb250cm9sc1swXQ0KPiAgICAgICAgIDogbWFr ZV9zc2FfbmFtZSAoaXZfdHlwZSk7DQo+ICAgICAgICAvKiBDcmVhdGUgZGVj cmVtZW50IElWLiAgKi8NCj4gLSAgICAgIGNyZWF0ZV9pdiAobml0ZW1zX3Rv dGFsLCBNSU5VU19FWFBSLCBuaXRlbXNfc3RlcCwgTlVMTF9UUkVFLCBsb29w LA0KPiAtICZpbmNyX2dzaSwgaW5zZXJ0X2FmdGVyLCAmaW5kZXhfYmVmb3Jl X2luY3IsDQo+IC0gJmluZGV4X2FmdGVyX2luY3IpOw0KPiAtICAgICAgZ2lt cGxlX3NlcV9hZGRfc3RtdCAoaGVhZGVyX3NlcSwgZ2ltcGxlX2J1aWxkX2Fz c2lnbiAoc3RlcCwgTUlOX0VYUFIsDQo+IC0gICAgIGluZGV4X2JlZm9yZV9p bmNyLA0KPiAtICAgICBuaXRlbXNfc3RlcCkpOw0KPiArICAgICAgaWYgKExP T1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8pKQ0KPiAr IHsNCj4gKyAgIGNyZWF0ZV9pdiAobml0ZW1zX3RvdGFsLCBNSU5VU19FWFBS LCBzdGVwLCBOVUxMX1RSRUUsIGxvb3AsICZpbmNyX2dzaSwNCj4gKyAgICAg IGluc2VydF9hZnRlciwgJmluZGV4X2JlZm9yZV9pbmNyLCAmaW5kZXhfYWZ0 ZXJfaW5jcik7DQo+ICsgICB0cmVlIGxlbiA9IGdpbXBsZV9idWlsZCAoaGVh ZGVyX3NlcSwgSUZOX1NFTEVDVF9WTCwgaXZfdHlwZSwNCj4gKyAgICBpbmRl eF9iZWZvcmVfaW5jciwgbml0ZW1zX3N0ZXApOw0KPiArICAgZ2ltcGxlX3Nl cV9hZGRfc3RtdCAoaGVhZGVyX3NlcSwgZ2ltcGxlX2J1aWxkX2Fzc2lnbiAo c3RlcCwgbGVuKSk7DQo+ICsgfQ0KPiArICAgICAgZWxzZQ0KPiArIHsNCj4g KyAgIGNyZWF0ZV9pdiAobml0ZW1zX3RvdGFsLCBNSU5VU19FWFBSLCBuaXRl bXNfc3RlcCwgTlVMTF9UUkVFLCBsb29wLA0KPiArICAgICAgJmluY3JfZ3Np LCBpbnNlcnRfYWZ0ZXIsICZpbmRleF9iZWZvcmVfaW5jciwNCj4gKyAgICAg ICZpbmRleF9hZnRlcl9pbmNyKTsNCj4gKyAgIGdpbXBsZV9zZXFfYWRkX3N0 bXQgKGhlYWRlcl9zZXEsDQo+ICsgICAgICAgIGdpbXBsZV9idWlsZF9hc3Np Z24gKHN0ZXAsIE1JTl9FWFBSLA0KPiArICAgICBpbmRleF9iZWZvcmVfaW5j ciwNCj4gKyAgICAgbml0ZW1zX3N0ZXApKTsNCj4gKyB9DQo+ICAgICAgICAq aXZfc3RlcCA9IHN0ZXA7DQo+ICAgICAgICAqY29tcGFyZV9zdGVwID0gbml0 ZW1zX3N0ZXA7DQo+IC0gICAgICByZXR1cm4gaW5kZXhfYmVmb3JlX2luY3I7 DQo+ICsgICAgICByZXR1cm4gTE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxf UCAobG9vcF92aW5mbykgPyBpbmRleF9hZnRlcl9pbmNyDQo+ICsgICAgICAg IDogaW5kZXhfYmVmb3JlX2luY3I7DQo+ICAgICAgfQ0KPiAgDQo+ICAgIC8q IENyZWF0ZSBpbmNyZW1lbnQgSVYuICAqLw0KPiBAQCAtODg4LDcgKzkwMSw4 IEBAIHZlY3Rfc2V0X2xvb3BfY29uZGl0aW9uX3BhcnRpYWxfdmVjdG9ycyAo Y2xhc3MgbG9vcCAqbG9vcCwNCj4gICAgLyogR2V0IGEgYm9vbGVhbiByZXN1 bHQgdGhhdCB0ZWxscyB1cyB3aGV0aGVyIHRvIGl0ZXJhdGUuICAqLw0KPiAg ICBlZGdlIGV4aXRfZWRnZSA9IHNpbmdsZV9leGl0IChsb29wKTsNCj4gICAg Z2NvbmQgKmNvbmRfc3RtdDsNCj4gLSAgaWYgKExPT1BfVklORk9fVVNJTkdf REVDUkVNRU5USU5HX0lWX1AgKGxvb3BfdmluZm8pKQ0KPiArICBpZiAoTE9P UF9WSU5GT19VU0lOR19ERUNSRU1FTlRJTkdfSVZfUCAobG9vcF92aW5mbykN Cj4gKyAgICAgICYmICFMT09QX1ZJTkZPX1VTSU5HX1NFTEVDVF9WTF9QIChs b29wX3ZpbmZvKSkNCj4gICAgICB7DQo+ICAgICAgICBnY2NfYXNzZXJ0IChj b21wYXJlX3N0ZXApOw0KPiAgICAgICAgdHJlZV9jb2RlIGNvZGUgPSAoZXhp dF9lZGdlLT5mbGFncyAmIEVER0VfVFJVRV9WQUxVRSkgPyBMRV9FWFBSIDog R1RfRVhQUjsNCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtbG9vcC5j YyBiL2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiBpbmRleCA1YjdhMGRhMDAz NC4uYWNlOWU3NTlmNWIgMTAwNjQ0DQo+IC0tLSBhL2djYy90cmVlLXZlY3Qt bG9vcC5jYw0KPiArKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4gQEAg LTk3NCw2ICs5NzQsNyBAQCBfbG9vcF92ZWNfaW5mbzo6X2xvb3BfdmVjX2lu Zm8gKGNsYXNzIGxvb3AgKmxvb3BfaW4sIHZlY19pbmZvX3NoYXJlZCAqc2hh cmVkKQ0KPiAgICAgIGNhbl91c2VfcGFydGlhbF92ZWN0b3JzX3AgKHBhcmFt X3ZlY3RfcGFydGlhbF92ZWN0b3JfdXNhZ2UgIT0gMCksDQo+ICAgICAgdXNp bmdfcGFydGlhbF92ZWN0b3JzX3AgKGZhbHNlKSwNCj4gICAgICB1c2luZ19k ZWNyZW1lbnRpbmdfaXZfcCAoZmFsc2UpLA0KPiArICAgIHVzaW5nX3NlbGVj dF92bF9wIChmYWxzZSksDQo+ICAgICAgZXBpbF91c2luZ19wYXJ0aWFsX3Zl Y3RvcnNfcCAoZmFsc2UpLA0KPiAgICAgIHBhcnRpYWxfbG9hZF9zdG9yZV9i aWFzICgwKSwNCj4gICAgICBwZWVsaW5nX2Zvcl9nYXBzIChmYWxzZSksDQo+ IEBAIC0yNzM3LDYgKzI3MzgsNzcgQEAgc3RhcnRfb3ZlcjoNCj4gIExPT1Bf VklORk9fVkVDVF9GQUNUT1IgKGxvb3BfdmluZm8pKSkpDQo+ICAgICAgTE9P UF9WSU5GT19VU0lOR19ERUNSRU1FTlRJTkdfSVZfUCAobG9vcF92aW5mbykg PSB0cnVlOw0KPiAgDQo+ICsgIC8qIElmIGEgbG9vcCB1c2VzIGxlbmd0aCBj b250cm9scyBhbmQgaGFzIGEgZGVjcmVtZW50aW5nIGxvb3AgY29udHJvbCBJ ViwNCj4gKyAgICAgd2Ugd2lsbCBub3JtYWxseSBwYXNzIHRoYXQgSVYgdGhy b3VnaCBhIE1JTl9FWFBSIHRvIGNhbGNhbHVhdGUgdGhlDQo+ICsgICAgIGJh c2lzIGZvciB0aGUgbGVuZ3RoIGNvbnRyb2xzLiAgRS5nLiBpbiBhIGxvb3Ag dGhhdCBwcm9jZXNzZXMgb25lDQo+ICsgICAgIGVsZW1lbnQgcGVyIHNjYWxh ciBpdGVyYXRpb24sIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgd291bGQgYmUN Cj4gKyAgICAgTUlOX0VYUFIgPE4sIFZGPiwgd2hlcmUgTiBpcyB0aGUgbnVt YmVyIG9mIHNjYWxhciBpdGVyYXRpb25zIGxlZnQuDQo+ICsNCj4gKyAgICAg VGhpcyBNSU5fRVhQUiBhcHByb2FjaCBhbGxvd3MgdXMgdG8gdXNlIHBvaW50 ZXIgSVZzIHdpdGggYW4gaW52YXJpYW50DQo+ICsgICAgIHN0ZXAsIHNpbmNl IG9ubHkgdGhlIGZpbmFsIGl0ZXJhdGlvbiBvZiB0aGUgdmVjdG9yIGxvb3Ag Y2FuIGhhdmUNCj4gKyAgICAgaW5hY3RpdmUgbGFuZXMuDQo+ICsNCj4gKyAg ICAgSG93ZXZlciwgc29tZSB0YXJnZXRzIGhhdmUgYSBkZWRpY2F0ZWQgaW5z dHJ1Y3Rpb24gZm9yIGNhbGN1bGF0aW5nIHRoZQ0KPiArICAgICBwcmVmZXJy ZWQgbGVuZ3RoLCBnaXZlbiB0aGUgdG90YWwgbnVtYmVyIG9mIGVsZW1lbnRz IHRoYXQgc3RpbGwgbmVlZCB0bw0KPiArICAgICBiZSBwcm9jZXNzZWQuICBU aGlzIGlzIGVuY2Fwc3VsYXRlZCBpbiB0aGUgU0VMRUNUX1ZMIGludGVybmFs IGZ1bmN0aW9uLg0KPiArDQo+ICsgICAgIElmIHRoZSB0YXJnZXQgc3VwcG9y dHMgU0VMRUNUX1ZMLCB3ZSBjYW4gdXNlIGl0IGluc3RlYWQgb2YgTUlOX0VY UFINCj4gKyAgICAgdG8gZGV0ZXJtaW5lIHRoZSBiYXNpcyBmb3IgdGhlIGxl bmd0aCBjb250cm9scy4gIEhvd2V2ZXIsIHVubGlrZSB0aGUNCj4gKyAgICAg TUlOX0VYUFIgY2FsY3VsYXRpb24sIHRoZSBTRUxFQ1RfVkwgY2FsY3VsYXRp b24gY2FuIGRlY2lkZSB0byBtYWtlDQo+ICsgICAgIGxhbmVzIGluYWN0aXZl IGluIGFueSBpdGVyYXRpb24gb2YgdGhlIHZlY3RvciBsb29wLCBub3QganVz dCB0aGUgbGFzdA0KPiArICAgICBpdGVyYXRpb24uICBUaGlzIFNFTEVDVF9W TCBhcHByb2FjaCB0aGVyZWZvcmUgcmVxdWlyZXMgdXMgdG8gdXNlIHBvaW50 ZXINCj4gKyAgICAgSVZzIHdpdGggdmFyaWFibGUgc3RlcHMuDQo+ICsNCj4g KyAgICAgT25jZSB3ZSd2ZSBkZWNpZGVkIGhvdyBtYW55IGVsZW1lbnRzIHNo b3VsZCBiZSBwcm9jZXNzZWQgYnkgb25lDQo+ICsgICAgIGl0ZXJhdGlvbiBv ZiB0aGUgdmVjdG9yIGxvb3AsIHdlIG5lZWQgdG8gcG9wdWxhdGUgdGhlIHJn cm91cCBjb250cm9scy4NCj4gKyAgICAgSWYgYSBsb29wIGhhcyBtdWx0aXBs ZSByZ3JvdXBzLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRob3NlIHJn cm91cHMNCj4gKyAgICAgImxpbmUgdXAiICh0aGF0IGlzLCB0aGV5IG11c3Qg YmUgY29uc2lzdGVudCBhYm91dCB3aGljaCBlbGVtZW50cyBhcmUNCj4gKyAg ICAgYWN0aXZlIGFuZCB3aGljaCBhcmVuJ3QpLiAgVGhpcyBpcyBkb25lIGJ5 IHZlY3RfYWRqdXN0X2xvb3BfbGVuc19jb250cm9sLg0KPiArDQo+ICsgICAg IEluIHByaW5jaXBsZSwgaXQgd291bGQgYmUgcG9zc2libGUgdG8gdXNlIHZl Y3RfYWRqdXN0X2xvb3BfbGVuc19jb250cm9sDQo+ICsgICAgIG9uIGVpdGhl ciB0aGUgcmVzdWx0IG9mIGEgTUlOX0VYUFIgb3IgdGhlIHJlc3VsdCBvZiBh IFNFTEVDVF9WTC4NCj4gKyAgICAgSG93ZXZlcjoNCj4gKw0KPiArICAgICAo MSkgSW4gcHJhY3RpY2UsIGl0IG9ubHkgbWFrZXMgc2Vuc2UgdG8gdXNlIFNF TEVDVF9WTCB3aGVuIGEgdmVjdG9yDQo+ICsgb3BlcmF0aW9uIHdpbGwgYmUg Y29udHJvbGxlZCBkaXJlY3RseSBieSB0aGUgcmVzdWx0LiAgSXQgaXMgbm90 DQo+ICsgd29ydGggdXNpbmcgU0VMRUNUX1ZMIGlmIGl0IHdvdWxkIG9ubHkg YmUgdGhlIGlucHV0IHRvIG90aGVyDQo+ICsgY2FsY3VsYXRpb25zLg0KPiAr DQo+ICsgICAgICgyKSBJZiB3ZSB1c2UgU0VMRUNUX1ZMIGZvciBhbiByZ3Jv dXAgdGhhdCBoYXMgTiBjb250cm9scywgZWFjaCBhc3NvY2lhdGVkDQo+ICsg cG9pbnRlciBJViB3aWxsIG5lZWQgTiB1cGRhdGVzIGJ5IGEgdmFyaWFibGUg YW1vdW50IChOLTEgdXBkYXRlcw0KPiArIHdpdGhpbiB0aGUgaXRlcmF0aW9u IGFuZCAxIHVwZGF0ZSB0byBtb3ZlIHRvIHRoZSBuZXh0IGl0ZXJhdGlvbiku DQo+ICsNCj4gKyAgICAgQmVjYXVzZSBvZiB0aGlzLCB3ZSBwcmVmZXIgdG8g dXNlIHRoZSBNSU5fRVhQUiBhcHByb2FjaCB3aGVuZXZlciB0aGVyZQ0KPiAr ICAgICBpcyBtb3JlIHRoYW4gb25lIGxlbmd0aCBjb250cm9sLg0KPiArDQo+ ICsgICAgIEluIGFkZGl0aW9uLCBTRUxFQ1RfVkwgYWx3YXlzIG9wZXJhdGVz IHRvIGEgZ3JhbnVsYXJpdHkgb2YgMSB1bml0Lg0KPiArICAgICBJZiB3ZSB3 YW50ZWQgdG8gdXNlIGl0IHRvIGNvbnRyb2wgYW4gU0xQIG9wZXJhdGlvbiBv biBOIGNvbnNlY3V0aXZlDQo+ICsgICAgIGVsZW1lbnRzLCB3ZSB3b3VsZCBu ZWVkIHRvIG1ha2UgdGhlIFNFTEVDVF9WTCBpbnB1dHMgbWVhc3VyZSBzY2Fs YXINCj4gKyAgICAgaXRlcmF0aW9ucyAocmF0aGVyIHRoYW4gZWxlbWVudHMp IGFuZCB0aGVuIG11bHRpcGx5IHRoZSBTRUxFQ1RfVkwNCj4gKyAgICAgcmVz dWx0IGJ5IE4uICBCdXQgdXNpbmcgU0VMRUNUX1ZMIHRoaXMgd2F5IGlzIGlu ZWZmaWNpZW50IGJlY2F1c2UNCj4gKyAgICAgb2YgKDEpIGFib3ZlLg0KPiAr DQo+ICsgICAgIDIuIFdlIGRvbid0IGFwcGx5IFNFTEVDVF9WTCBvbiBzaW5n bGUtcmdyb3VwIHdoZW4gYm90aCAoMSkgYW5kICgyKSBhcmUNCj4gKyBzYXRp c2ZpZWQ6DQo+ICsNCj4gKyAgICAgKDEpLiBMT09QX1ZJTkZPX05JVEVSU19L Tk9XTl9QIChsb29wX3ZpbmZvKSBpcyB0cnVlLg0KPiArICAgICAoMikuIExP T1BfVklORk9fVkVDVF9GQUNUT1IgKGxvb3BfdmluZm8pLmlzX2NvbnN0YW50 ICgpIGlzIHRydWUuDQo+ICsNCj4gKyAgICAgU2luY2UgU0VMRUNUX1ZMICh2 YXJpYWJsZSBzdGVwKSB3aWxsIG1ha2UgU0NFViBhbmFseXNpcyBmYWlsZWQg YW5kIHRoZW4NCj4gKyAgICAgd2Ugd2lsbCBmYWlsIHRvIGdhaW4gYmVuZWZp dHMgb2YgZm9sbG93aW5nIHVucm9sbCBvcHRpbWl6YXRpb25zLiBXZSBwcmVm ZXINCj4gKyAgICAgdXNpbmcgdGhlIE1JTl9FWFBSIGFwcHJvYWNoIGluIHRo aXMgc2l0dWF0aW9uLiAgKi8NCj4gKyAgaWYgKExPT1BfVklORk9fVVNJTkdf REVDUkVNRU5USU5HX0lWX1AgKGxvb3BfdmluZm8pKQ0KPiArICAgIHsNCj4g KyAgICAgIHRyZWUgaXZfdHlwZSA9IExPT1BfVklORk9fUkdST1VQX0lWX1RZ UEUgKGxvb3BfdmluZm8pOw0KPiArICAgICAgaWYgKGRpcmVjdF9pbnRlcm5h bF9mbl9zdXBwb3J0ZWRfcCAoSUZOX1NFTEVDVF9WTCwgaXZfdHlwZSwNCj4g KyAgIE9QVElNSVpFX0ZPUl9TUEVFRCkNCj4gKyAgICYmIExPT1BfVklORk9f TEVOUyAobG9vcF92aW5mbykubGVuZ3RoICgpID09IDENCj4gKyAgICYmIExP T1BfVklORk9fTEVOUyAobG9vcF92aW5mbylbMF0uZmFjdG9yID09IDEgJiYg IXNscA0KPiArICAgJiYgKCFMT09QX1ZJTkZPX05JVEVSU19LTk9XTl9QIChs b29wX3ZpbmZvKQ0KPiArICAgICAgIHx8ICFMT09QX1ZJTkZPX1ZFQ1RfRkFD VE9SIChsb29wX3ZpbmZvKS5pc19jb25zdGFudCAoKSkpDQo+ICsgTE9PUF9W SU5GT19VU0lOR19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykgPSB0cnVlOw0K PiArICAgIH0NCj4gKw0KPiAgICAvKiBJZiB3ZSdyZSB2ZWN0b3JpemluZyBh biBlcGlsb2d1ZSBsb29wLCB0aGUgdmVjdG9yaXplZCBsb29wIGVpdGhlciBu ZWVkcw0KPiAgICAgICB0byBiZSBhYmxlIHRvIGhhbmRsZSBmZXdlciB0aGFu IFZGIHNjYWxhcnMsIG9yIG5lZWRzIHRvIGhhdmUgYSBsb3dlciBWRg0KPiAg ICAgICB0aGFuIHRoZSBtYWluIGxvb3AuICAqLw0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3RyZWUtdmVjdC1zdG10cy5jYyBiL2djYy90cmVlLXZlY3Qtc3RtdHMu Y2MNCj4gaW5kZXggYzdlNGU3MWQzYzUuLmE3YWNjMDMyZDQ3IDEwMDY0NA0K PiAtLS0gYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+ICsrKyBiL2djYy90 cmVlLXZlY3Qtc3RtdHMuY2MNCj4gQEAgLTMxMjgsMTkgKzMxMjgsNzIgQEAg dmVjdF9nZXRfc3RyaWRlZF9sb2FkX3N0b3JlX29wcyAoc3RtdF92ZWNfaW5m byBzdG10X2luZm8sDQo+ICAgICp2ZWNfb2Zmc2V0ID0gY3NlX2FuZF9naW1w bGlmeV90b19wcmVoZWFkZXIgKGxvb3BfdmluZm8sIG9mZnNldCk7DQo+ICB9 DQo+ICANCj4gKy8qIFByZXBhcmUgdGhlIHBvaW50ZXIgSVZzIHdoaWNoIG5l ZWRzIHRvIGJlIHVwZGF0ZWQgYnkgYSB2YXJpYWJsZSBhbW91bnQuDQo+ICsg ICBTdWNoIHZhcmlhYmxlIGFtb3VudCBpcyB0aGUgb3V0Y29tZSBvZiAuU0VM RUNUX1ZMLiBJbiB0aGlzIGNhc2UsIHdlIGNhbg0KPiArICAgYWxsb3cgZWFj aCBpdGVyYXRpb24gcHJvY2VzcyB0aGUgZmxleGlibGUgbnVtYmVyIG9mIGVs ZW1lbnRzIGFzIGxvbmcgYXMNCj4gKyAgIHRoZSBudW1iZXIgPD0gdmYgZWxt ZW50cy4NCj4gKw0KPiArICAgUmV0dXJuIGRhdGEgcmVmZXJlbmNlIGFjY29y ZGluZyB0byBTRUxFQ1RfVkwuDQo+ICsgICBJZiBuZXcgc3RhdGVtZW50cyBh cmUgbmVlZGVkLCBpbnNlcnQgdGhlbSBiZWZvcmUgR1NJLiAgKi8NCj4gKw0K PiArc3RhdGljIHRyZWUNCj4gK3ZlY3RfZ2V0X2xvb3BfdmFyaWFudF9kYXRh X3B0cl9pbmNyZW1lbnQgKA0KPiArICB2ZWNfaW5mbyAqdmluZm8sIHRyZWUg YWdncl90eXBlLCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLA0KPiArICB2 ZWNfbG9vcF9sZW5zICpsb29wX2xlbnMsIGRyX3ZlY19pbmZvICpkcl9pbmZv LA0KPiArICB2ZWN0X21lbW9yeV9hY2Nlc3NfdHlwZSBtZW1vcnlfYWNjZXNz X3R5cGUpDQo+ICt7DQo+ICsgIGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbyA9 IGR5bl9jYXN0PGxvb3BfdmVjX2luZm8+ICh2aW5mbyk7DQo+ICsgIHRyZWUg c3RlcCA9IHZlY3RfZHJfYmVoYXZpb3IgKHZpbmZvLCBkcl9pbmZvKS0+c3Rl cDsNCj4gKw0KPiArICAvKiBUT0RPOiBXZSBkb24ndCBzdXBwb3J0IGdhdGhl ci9zY2F0dGVyIG9yIGxvYWRfbGFuZXMvc3RvcmVfbGFuZXMgZm9yIHBvaW50 ZXINCj4gKyAgICAgSVZzIGFyZSB1cGRhdGVkIGJ5IHZhcmlhYmxlIGFtb3Vu dCBidXQgd2Ugd2lsbCBzdXBwb3J0IHRoZW0gaW4gdGhlIGZ1dHVyZS4NCj4g KyAgICovDQo+ICsgIGdjY19hc3NlcnQgKG1lbW9yeV9hY2Nlc3NfdHlwZSAh PSBWTUFUX0dBVEhFUl9TQ0FUVEVSDQo+ICsgICAgICAgJiYgbWVtb3J5X2Fj Y2Vzc190eXBlICE9IFZNQVRfTE9BRF9TVE9SRV9MQU5FUyk7DQo+ICsNCj4g KyAgLyogV2hlbiB3ZSBzdXBwb3J0IFNFTEVDVF9WTCBwYXR0ZXJuLCB3ZSBk eW5hbWljIGFkanVzdA0KPiArICAgICB0aGUgbWVtb3J5IGFkZHJlc3MgYnkg LlNFTEVDVF9WTCByZXN1bHQuDQo+ICsNCj4gKyAgICAgVGhlIHJlc3VsdCBv ZiAuU0VMRUNUX1ZMIGlzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgdG8NCj4g KyAgICAgYmUgcHJvY2Vzc2VkIG9mIGVhY2ggaXRlcmF0aW9uLiBTbyB0aGUg bWVtb3J5IGFkZHJlc3MNCj4gKyAgICAgYWRqdXN0bWVudCBvcGVyYXRpb24g c2hvdWxkIGJlOg0KPiArDQo+ICsgICAgIGFkZHIgPSBhZGRyICsgLlNFTEVD VF9WTCAoQVJHLi4pICogc3RlcDsNCj4gKyAgKi8NCj4gKyAgdHJlZSBsb29w X2xlbg0KPiArICAgID0gdmVjdF9nZXRfbG9vcF9sZW4gKGxvb3BfdmluZm8s IGdzaSwgbG9vcF9sZW5zLCAxLCBhZ2dyX3R5cGUsIDAsIDApOw0KPiArICB0 cmVlIGxlbl90eXBlID0gVFJFRV9UWVBFIChsb29wX2xlbik7DQo+ICsgIC8q IFNpbmNlIHRoZSBvdXRjb21lIG9mIC5TRUxFQ1RfVkwgaXMgZWxlbWVudCBz aXplLCB3ZSBzaG91bGQgYWRqdXN0DQo+ICsgICAgIGl0IGludG8gYnl0ZXNp emUgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBpbiBhZGRyZXNzIHBvaW50ZXIg dmFyaWFibGUNCj4gKyAgICAgYW1vdW50IElWcyBhZGp1c3RtZW50LiAgKi8N Cj4gKyAgdHJlZSB0bXAgPSBmb2xkX2J1aWxkMiAoTVVMVF9FWFBSLCBsZW5f dHlwZSwgbG9vcF9sZW4sDQo+ICsgICB3aWRlX2ludF90b190cmVlIChsZW5f dHlwZSwgd2k6OnRvX3dpZGVzdCAoc3RlcCkpKTsNCj4gKyAgdHJlZSBidW1w ID0gbWFrZV90ZW1wX3NzYV9uYW1lIChsZW5fdHlwZSwgTlVMTCwgIml2dG1w Iik7DQo+ICsgIGdhc3NpZ24gKmFzc2lnbiA9IGdpbXBsZV9idWlsZF9hc3Np Z24gKGJ1bXAsIHRtcCk7DQo+ICsgIGdzaV9pbnNlcnRfYmVmb3JlIChnc2ks IGFzc2lnbiwgR1NJX1NBTUVfU1RNVCk7DQo+ICsgIHJldHVybiBidW1wOw0K PiArfQ0KPiArDQo+ICAvKiBSZXR1cm4gdGhlIGFtb3VudCB0aGF0IHNob3Vs ZCBiZSBhZGRlZCB0byBhIHZlY3RvciBwb2ludGVyIHRvIG1vdmUNCj4gICAg IHRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIGNvcHkgb2YgQUdHUl9UWVBFLiAg RFJfSU5GTyBpcyB0aGUgZGF0YSByZWZlcmVuY2UNCj4gICAgIGJlaW5nIHZl Y3Rvcml6ZWQgYW5kIE1FTU9SWV9BQ0NFU1NfVFlQRSBkZXNjcmliZXMgdGhl IHR5cGUgb2YNCj4gICAgIHZlY3Rvcml6YXRpb24uICAqLw0KPiAgDQo+ICBz dGF0aWMgdHJlZQ0KPiAtdmVjdF9nZXRfZGF0YV9wdHJfaW5jcmVtZW50ICh2 ZWNfaW5mbyAqdmluZm8sDQo+ICt2ZWN0X2dldF9kYXRhX3B0cl9pbmNyZW1l bnQgKHZlY19pbmZvICp2aW5mbywgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdz aSwNCj4gICAgICAgZHJfdmVjX2luZm8gKmRyX2luZm8sIHRyZWUgYWdncl90 eXBlLA0KPiAtICAgICAgdmVjdF9tZW1vcnlfYWNjZXNzX3R5cGUgbWVtb3J5 X2FjY2Vzc190eXBlKQ0KPiArICAgICAgdmVjdF9tZW1vcnlfYWNjZXNzX3R5 cGUgbWVtb3J5X2FjY2Vzc190eXBlLA0KPiArICAgICAgdmVjX2xvb3BfbGVu cyAqbG9vcF9sZW5zID0gbnVsbHB0cikNCj4gIHsNCj4gICAgaWYgKG1lbW9y eV9hY2Nlc3NfdHlwZSA9PSBWTUFUX0lOVkFSSUFOVCkNCj4gICAgICByZXR1 cm4gc2l6ZV96ZXJvX25vZGU7DQo+ICANCj4gKyAgbG9vcF92ZWNfaW5mbyBs b29wX3ZpbmZvID0gZHluX2Nhc3Q8bG9vcF92ZWNfaW5mbz4gKHZpbmZvKTsN Cj4gKyAgaWYgKGxvb3BfdmluZm8gJiYgTE9PUF9WSU5GT19VU0lOR19TRUxF Q1RfVkxfUCAobG9vcF92aW5mbykpDQo+ICsgICAgcmV0dXJuIHZlY3RfZ2V0 X2xvb3BfdmFyaWFudF9kYXRhX3B0cl9pbmNyZW1lbnQgKHZpbmZvLCBhZ2dy X3R5cGUsIGdzaSwNCj4gKyAgICAgIGxvb3BfbGVucywgZHJfaW5mbywNCj4g KyAgICAgIG1lbW9yeV9hY2Nlc3NfdHlwZSk7DQo+ICsNCj4gICAgdHJlZSBp dl9zdGVwID0gVFlQRV9TSVpFX1VOSVQgKGFnZ3JfdHlwZSk7DQo+ICAgIHRy ZWUgc3RlcCA9IHZlY3RfZHJfYmVoYXZpb3IgKHZpbmZvLCBkcl9pbmZvKS0+ c3RlcDsNCj4gICAgaWYgKHRyZWVfaW50X2NzdF9zZ24gKHN0ZXApID09IC0x KQ0KPiBAQCAtNzYyOSw3ICs3NjgyLDcgQEAgdmVjdG9yaXphYmxlX3NjYW5f c3RvcmUgKHZlY19pbmZvICp2aW5mbywNCj4gICAgdHJlZSB2ZWNfb3BybmQz ID0gTlVMTF9UUkVFOw0KPiAgICB0cmVlIGRhdGFyZWZfcHRyID0gRFJfQkFT RV9BRERSRVNTIChkcl9pbmZvLT5kcik7DQo+ICAgIHRyZWUgZGF0YXJlZl9v ZmZzZXQgPSBidWlsZF9pbnRfY3N0IChyZWZfdHlwZSwgMCk7DQo+IC0gIHRy ZWUgYnVtcCA9IHZlY3RfZ2V0X2RhdGFfcHRyX2luY3JlbWVudCAodmluZm8s IGRyX2luZm8sDQo+ICsgIHRyZWUgYnVtcCA9IHZlY3RfZ2V0X2RhdGFfcHRy X2luY3JlbWVudCAodmluZm8sIGdzaSwgZHJfaW5mbywNCj4gICAgIHZlY3R5 cGUsIFZNQVRfQ09OVElHVU9VUyk7DQo+ICAgIHRyZWUgbGRhdGFyZWZfcHRy ID0gTlVMTF9UUkVFOw0KPiAgICB0cmVlIG9yaWcgPSBOVUxMX1RSRUU7DQo+ IEBAIC04NTM5LDggKzg1OTIsOCBAQCB2ZWN0b3JpemFibGVfc3RvcmUgKHZl Y19pbmZvICp2aW5mbywNCj4gIGFnZ3JfdHlwZSA9IGJ1aWxkX2FycmF5X3R5 cGVfbmVsdHMgKGVsZW1fdHlwZSwgdmVjX251bSAqIG51bml0cyk7DQo+ICAg ICAgICBlbHNlDQo+ICBhZ2dyX3R5cGUgPSB2ZWN0eXBlOw0KPiAtICAgICAg YnVtcCA9IHZlY3RfZ2V0X2RhdGFfcHRyX2luY3JlbWVudCAodmluZm8sIGRy X2luZm8sIGFnZ3JfdHlwZSwNCj4gLSAgIG1lbW9yeV9hY2Nlc3NfdHlwZSk7 DQo+ICsgICAgICBidW1wID0gdmVjdF9nZXRfZGF0YV9wdHJfaW5jcmVtZW50 ICh2aW5mbywgZ3NpLCBkcl9pbmZvLCBhZ2dyX3R5cGUsDQo+ICsgICBtZW1v cnlfYWNjZXNzX3R5cGUsIGxvb3BfbGVucyk7DQo+ICAgICAgfQ0KPiAgDQo+ ICAgIGlmIChtYXNrKQ0KPiBAQCAtODY2Myw2ICs4NzE2LDcgQEAgdmVjdG9y aXphYmxlX3N0b3JlICh2ZWNfaW5mbyAqdmluZm8sDQo+ICB9DQo+ICAgICAg ICBlbHNlDQo+ICB7DQo+ICsgICBnY2NfYXNzZXJ0ICghTE9PUF9WSU5GT19V U0lOR19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykpOyAgDQo+ICAgIC8qIEZv ciBpbnRlcmxlYXZlZCBzdG9yZXMgd2UgY3JlYXRlZCB2ZWN0b3JpemVkIGRl ZnMgZm9yIGFsbCB0aGUNCj4gICAgICAgZGVmcyBzdG9yZWQgaW4gT1BSTkRT IGluIHRoZSBwcmV2aW91cyBpdGVyYXRpb24gKHByZXZpb3VzIGNvcHkpLg0K PiAgICAgICBEUl9DSEFJTiBpcyB0aGVuIHVzZWQgYXMgYW4gaW5wdXQgdG8g dmVjdF9wZXJtdXRlX3N0b3JlX2NoYWluKCkuDQo+IEBAIC05OTc1LDggKzEw MDI5LDggQEAgdmVjdG9yaXphYmxlX2xvYWQgKHZlY19pbmZvICp2aW5mbywN Cj4gIGFnZ3JfdHlwZSA9IGJ1aWxkX2FycmF5X3R5cGVfbmVsdHMgKGVsZW1f dHlwZSwgdmVjX251bSAqIG51bml0cyk7DQo+ICAgICAgICBlbHNlDQo+ICBh Z2dyX3R5cGUgPSB2ZWN0eXBlOw0KPiAtICAgICAgYnVtcCA9IHZlY3RfZ2V0 X2RhdGFfcHRyX2luY3JlbWVudCAodmluZm8sIGRyX2luZm8sIGFnZ3JfdHlw ZSwNCj4gLSAgIG1lbW9yeV9hY2Nlc3NfdHlwZSk7DQo+ICsgICAgICBidW1w ID0gdmVjdF9nZXRfZGF0YV9wdHJfaW5jcmVtZW50ICh2aW5mbywgZ3NpLCBk cl9pbmZvLCBhZ2dyX3R5cGUsDQo+ICsgICBtZW1vcnlfYWNjZXNzX3R5cGUs IGxvb3BfbGVucyk7DQo+ICAgICAgfQ0KPiAgDQo+ICAgIGF1dG9fdmVjPHRy ZWU+IHZlY19vZmZzZXRzOw0KPiBAQCAtMTAwNTYsNiArMTAxMTAsNyBAQCB2 ZWN0b3JpemFibGVfbG9hZCAodmVjX2luZm8gKnZpbmZvLA0KPiAgfQ0KPiAg ICAgICAgZWxzZQ0KPiAgew0KPiArICAgZ2NjX2Fzc2VydCAoIUxPT1BfVklO Rk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8pKTsNCj4gICAgaWYg KGRhdGFyZWZfb2Zmc2V0KQ0KPiAgICAgIGRhdGFyZWZfb2Zmc2V0ID0gaW50 X2NvbnN0X2Jpbm9wIChQTFVTX0VYUFIsIGRhdGFyZWZfb2Zmc2V0LA0KPiAg ICAgICAgYnVtcCk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0b3Jp emVyLmggYi9nY2MvdHJlZS12ZWN0b3JpemVyLmgNCj4gaW5kZXggMWU0NGY4 NTQyZDcuLmFmMjVkMjBiZDdlIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS12 ZWN0b3JpemVyLmgNCj4gKysrIGIvZ2NjL3RyZWUtdmVjdG9yaXplci5oDQo+ IEBAIC04MjUsNiArODI1LDExIEBAIHB1YmxpYzoNCj4gIChiKSBjYW4gaXRl cmF0ZSBtb3JlIHRoYW4gb25jZS4gICovDQo+ICAgIGJvb2wgdXNpbmdfZGVj cmVtZW50aW5nX2l2X3A7DQo+ICANCj4gKyAgLyogVHJ1ZSBpZiB3ZSd2ZSBk ZWNpZGVkIHRvIHVzZSBvdXRwdXQgb2Ygc2VsZWN0X3ZsIHRvIGFkanVzdCBJ ViBvZg0KPiArICAgICBib3RoIGxvb3AgY29udHJvbCBhbmQgZGF0YSByZWZl cmVuY2UgcG9pbnRlci4gVGhpcyBpcyBvbmx5IHRydWUNCj4gKyAgICAgZm9y IHNpbmdsZS1yZ3JvdXAgY29udHJvbC4gICovDQo+ICsgIGJvb2wgdXNpbmdf c2VsZWN0X3ZsX3A7DQo+ICsNCj4gICAgLyogVHJ1ZSBpZiB3ZSd2ZSBkZWNp ZGVkIHRvIHVzZSBwYXJ0aWFsbHktcG9wdWxhdGVkIHZlY3RvcnMgZm9yIHRo ZQ0KPiAgICAgICBlcGlsb2d1ZSBvZiBsb29wLiAgKi8NCj4gICAgYm9vbCBl cGlsX3VzaW5nX3BhcnRpYWxfdmVjdG9yc19wOw0KPiBAQCAtODk4LDYgKzkw Myw3IEBAIHB1YmxpYzoNCj4gICNkZWZpbmUgTE9PUF9WSU5GT19DQU5fVVNF X1BBUlRJQUxfVkVDVE9SU19QKEwpIChMKS0+Y2FuX3VzZV9wYXJ0aWFsX3Zl Y3RvcnNfcA0KPiAgI2RlZmluZSBMT09QX1ZJTkZPX1VTSU5HX1BBUlRJQUxf VkVDVE9SU19QKEwpIChMKS0+dXNpbmdfcGFydGlhbF92ZWN0b3JzX3ANCj4g ICNkZWZpbmUgTE9PUF9WSU5GT19VU0lOR19ERUNSRU1FTlRJTkdfSVZfUChM KSAoTCktPnVzaW5nX2RlY3JlbWVudGluZ19pdl9wDQo+ICsjZGVmaW5lIExP T1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AoTCkgKEwpLT51c2luZ19zZWxl Y3RfdmxfcA0KPiAgI2RlZmluZSBMT09QX1ZJTkZPX0VQSUxfVVNJTkdfUEFS VElBTF9WRUNUT1JTX1AoTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gICAgKEwpLT5lcGlsX3VzaW5nX3BhcnRpYWxfdmVjdG9yc19wDQo+ ICAjZGVmaW5lIExPT1BfVklORk9fUEFSVElBTF9MT0FEX1NUT1JFX0JJQVMo TCkgKEwpLT5wYXJ0aWFsX2xvYWRfc3RvcmVfYmlhcw0KPiANCiANCi0tIA0K UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU1VTRSBTb2Z0 d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAx NDYsIDkwNDYxIE51ZXJuYmVyZywNCkdlcm1hbnk7IEdGOiBJdm8gVG90ZXYs IEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBCb3VkaWVuIE1vZXJt YW47DQpIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykNCiANCg== ------=_001_NextPart732040288341_=------