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 53D4A3858D33 for ; Tue, 27 Jun 2023 06:59:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 53D4A3858D33 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: bizesmtp71t1687849173tzm0k66z Received: from LAPTOP-EPITNQBU ( [58.60.1.5]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 27 Jun 2023 14:59:31 +0800 (CST) X-QQ-SSF: 01400000000000G0S000000A0000000 X-QQ-FEAT: su/QXNoXt7fRaoFJUoqMrvqEAezQoptOK0HvkLfAzOoQnqUi8NV/rHFGYNYyq 8RoiSCzLob2BALg5/Jr6hnfTPaomIlxfyEQsxfHxzLRKlrsZeshgb59SFfEBv6SllhHskEX br23fiDowafa5v9fpEvZ2+UPQEswj/FVJG6M9kKh47SGpnHDvGRZGLe5I8uybv+LT9NDaIJ 2Hr+4/9vzZMqxNsZuSDhwQ5ag+1SGj4lYIUZUVNdirD0hu0HqJgdW/ptJ8gSju4BL/TCYVl Y+zviZzRSoQKsP4qKqtKb6pwgCuFey1TcA6kAqjD6FgDE9MRFnV4OvClqzuq0iyzhj/oh4Z kJMvTtp1lx/HhgaNFdEiAgMI6/j/6Sk6abygrxVT+k1+ftVGHqrJ+VcZLszubgQ4u/7mHaH v0IKf9zmSmBEsW1f8kuORFEh11UOXWaY X-QQ-GoodBg: 2 X-BIZMAIL-ID: 3917267288612938630 Date: Tue, 27 Jun 2023 14:59:30 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: Kito.cheng , pan2.li , yanzhang.wang , jeffreyalaw Subject: Re: [PATCH v1] RISC-V: Allow rounding mode control for RVV floating-point add References: <20230627060617.2250903-1-pan2.li@intel.com> X-Priority: 3 X-GUID: F1EC3502-EF82-4839-9086-0ECE9B97610E X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <096CC5E509CCA85A+202306271459302062266@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart024768371855_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,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_NextPart024768371855_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 TEdUTS4gDQpZb3UgY2FuIGdvIGFoZWFkIHRvIGltcGxlbWVudCByb3VuZGlu ZyBtb2RlIG9mIGZsb2F0aW5nLXBvaW50IGJ5IG1vZGUtc3dpdGNoaW5nOg0K DQpTdWdnZXN0IHlvdSBpbXBsZW1lbnQgcm91bmRpbmcgbW9kZSBmb3IgZmxv YXRpbmctcG9pbmcgYXMgZm9sbG93czoNCg0KMXN0IHN0ZXA6IEltcGxlbWVu dCBtb2RlLXN3aXRjaGluZyBmb3IgZmxvYXRpbmctcG9pbnQgcm91bmRpbmcg bW9kZSBleGNlcHQgRFlOQU1JQyB3aGljaCBzaG91bGQgYmUgdG90YWxseSBz YW1lIGFzIGZpeGVkLXBvaW50Lg0KMm5kIHN0ZXA6IFN1cHBvcnQgRFlOQU1J QyByb3VuZGluZyBtb2RlIG9uIG1vZGUtc3dpdGNoaW5nIHdoaWNoIG1heSBu ZWVkIHRvIG1vZGlmeSB0aGUgbW9kZS1zd2l0Y2hpbmcgUEFTUy4NCg0KVGhh bmtzLg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBwYW4y LmxpDQpEYXRlOiAyMDIzLTA2LTI3IDE0OjA2DQpUbzogZ2NjLXBhdGNoZXMN CkNDOiBqdXpoZS56aG9uZzsga2l0by5jaGVuZzsgcGFuMi5saTsgeWFuemhh bmcud2FuZzsgamVmZnJleWFsYXcNClN1YmplY3Q6IFtQQVRDSCB2MV0gUklT Qy1WOiBBbGxvdyByb3VuZGluZyBtb2RlIGNvbnRyb2wgZm9yIFJWViBmbG9h dGluZy1wb2ludCBhZGQNCkZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5j b20+DQogDQpBY2NvcmRpbmcgdG8gdGhlIGRvYyBhcyBiZWxvdywgd2UgbmVl ZCB0byBzdXBwb3J0IHRoZSByb3VuZGluZyBtb2RlIG9mDQp0aGUgUlZWIGZs b2F0aW5nLXBvaW50LCBib3RoIHRoZSBzdGF0aWMgYW5kIGR5bmFtaWNlIGZy bS4NCiANCmh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi1ub24taXNhL3J2di1p bnRyaW5zaWMtZG9jL3B1bGwvMjI2DQogDQpGb3IgdHJhY2tpbmcgYW5kIGRl dmVsb3BtZW50IGZyaWVuZGx5LCBXZSB3aWxsIHRha2Ugc29tZSBzdGVwcyB0 byBzdXBwb3J0DQphbGwgcm91bmRpbmcgbW9kZXMgZm9yIHRoZSBSVlYgZmxv YXRpbmctcG9pbnQgcm91bmRpbmcgbW9kZXMuDQogDQoxLiBBbGxvdyByb3Vu ZGluZyBtb2RlIGNvbnRyb2wgYnkgb25lIGludHJpbnNpYyAoYWthIHRoaXMg cGF0Y2gpLCB2ZmFkZC4NCjIuIFN1cHBvcnQgc3RhdGljIHJvdW5kaW5nIG1v ZGUgY29udHJvbCBieSBtb2RlIHN3aXRjaCwgbGlrZSBmaXhlZC1wb2ludC4N CjMuIFN1cHBvcnQgZHluYW1pY2Ugcm91bmQgbW9kZSBjb250cm9sIGJ5IG1v ZGUgc3dpdGNoLg0KNC4gU3VwcG9ydCB0aGUgcmVzdCBmbG9hdGluZy1wb2lu dCBpbnN0cnVjdGlvbnMgZm9yIGZybS4NCiANClBsZWFzZSAqTk9URSogdGhp cyBwYXRjaCBvbmx5IGFsbG93IHRoZSByb3VuZGluZyBtb2RlIGNvbnRyb2wg Zm9yIHRoZQ0KdmZhZGQgaW50cmluc2ljIEFQSSwgYW5kIHRoZSByZWxhdGVk IGZybSB3aWxsIGJlIGNvdmVycmVkIGJ5IHN0ZXAgMi4NCiANClNpZ25lZC1v ZmYtYnk6IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQpDby1BdXRob3Jl ZCBieTogSnV6aGUtWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KIA0K Z2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oIChlbnVtIGZsb2F0aW5nX3BvaW50X3JvdW5kaW5nX21vZGUpOg0KQWRk IG1hY3JvIGZvciBzdGF0aWMgZnJtIG1pbiBhbmQgbWF4Lg0KKiBjb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQooY2xhc3Mg Ymlub3BfZnJtKTogTmV3IGNsYXNzIGZvciBmbG9hdGluZy1wb2ludCB3aXRo IGZybS4NCihCQVNFKTogQWRkIHZmYWRkIGZvciBmcm0uDQoqIGNvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDogTGlrZXdpc2Uu DQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rp b25zLmRlZg0KKHZmYWRkX2ZybSk6IExpa2V3aXNlLg0KKiBjb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYw0KKHN0cnVjdCBh bHVfZnJtX2RlZik6IE5ldyBzdHJ1Y3QgZm9yIGFsdSB3aXRoIGZybS4NCihT SEFQRSk6IEFkZCBhbHUgd2l0aCBmcm0uDQoqIGNvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmg6IExpa2V3aXNlLg0KKiBjb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQooZnVuY3Rpb25f Y2hlY2tlcjo6cmVwb3J0X291dF9vZl9yYW5nZV9hbmRfbm90KTogTmV3IGZ1 bmN0aW9uDQpmb3IgcmVwb3J0IG91dCBvZiByYW5nZSBhbmQgbm90IHZhbC4N CihmdW5jdGlvbl9jaGVja2VyOjpyZXF1aXJlX2ltbWVkaWF0ZV9yYW5nZV9v cik6IE5ldyBmdW5jdGlvbg0KZm9yIGNoZWNraW5nIGluIHJhbmdlIG9yIG9u ZSB2YWwuDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu aDogQWRkIGZ1bmN0aW9uIGRlY2wuDQogDQpnY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZzoNCiANCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1mcm0tZXJyb3IuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLmM6IE5ldyB0ZXN0Lg0KLS0t DQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oICAgICAgICAgICAg ICAgfCAgMiArDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmNjICAgICAgfCAyNSArKysrKysrDQouLi4vcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmggICAgICAgfCAgMSArDQouLi4vcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgfCAgMiArDQou Li4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyAgICAg fCA2OCArKysrKysrKysrKysrKysrKysrDQouLi4vcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5oICAgICAgfCAgMSArDQpnY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAgICAgfCA0MSArKysr KysrKysrKw0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuaCAgICAgIHwgIDQgKysNCi4uLi9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1mcm0tZXJyb3IuYyAgICB8IDE1ICsrKysNCi4uLi9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0uYyAgICAgICAgICB8IDMwICsrKysrKysr DQoxMCBmaWxlcyBjaGFuZ2VkLCAxODkgaW5zZXJ0aW9ucygrKQ0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tZXJyb3IuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0uYw0KIA0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXByb3Rvcy5oDQppbmRleCBmNjg2ZWRhYjNkMS4uYmVlNjRlZWU1MDQg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5o DQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQpAQCAt Mjc4LDYgKzI3OCw4IEBAIGVudW0gZmxvYXRpbmdfcG9pbnRfcm91bmRpbmdf bW9kZQ0KICAgRlJNX1JVUCA9IDMsIC8qIEFrYSAwYjAxMS4gICovDQogICBG Uk1fUk1NID0gNCwgLyogQWthIDBiMTAwLiAgKi8NCiAgIEZSTV9EWU4gPSA3 LCAvKiBBa2EgMGIxMTEuICAqLw0KKyAgRlJNX1NUQVRJQ19NSU4gPSBGUk1f Uk5FLA0KKyAgRlJNX1NUQVRJQ19NQVggPSBGUk1fUk1NLA0KfTsNCm9wdF9t YWNoaW5lX21vZGUgdmVjdG9yaXplX3JlbGF0ZWRfbW9kZSAobWFjaGluZV9t b2RlLCBzY2FsYXJfbW9kZSwNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQppbmRl eCA1YzhkZWRhOTAwZC4uMWI0YzJjNmFkNjYgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0K KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuY2MNCkBAIC0yODEsNiArMjgxLDI5IEBAIHB1YmxpYzoNCiAgIH0N Cn07DQorLyogSW1wbGVtZW50cyBiZWxvdyBpbnN0cnVjdGlvbnMgZm9yIG5v dy4NCisgICAtIHZmYWRkDQorKi8NCit0ZW1wbGF0ZTxydHhfY29kZSBDT0RF Pg0KK2NsYXNzIGJpbm9wX2ZybSA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQor ew0KK3B1YmxpYzoNCisgIGJvb2wgaGFzX3JvdW5kaW5nX21vZGVfb3BlcmFu ZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCisNCisg IHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVy cmlkZQ0KKyAgew0KKyAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQorICAg ICAgew0KKyAgICAgIGNhc2UgT1BfVFlQRV92ZjoNCisgcmV0dXJuIGUudXNl X2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfc2NhbGFyIChDT0RFLCBlLnZl Y3Rvcl9tb2RlICgpKSk7DQorICAgICAgY2FzZSBPUF9UWVBFX3Z2Og0KKyBy ZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZCAoQ09ERSwg ZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorIGdjY191 bnJlYWNoYWJsZSAoKTsNCisgICAgICB9DQorICB9DQorfTsNCisNCi8qIElt cGxlbWVudHMgdnJzdWIuICAqLw0KY2xhc3MgdnJzdWIgOiBwdWJsaWMgZnVu Y3Rpb25fYmFzZQ0Kew0KQEAgLTIwMDYsNiArMjAyOSw3IEBAIHN0YXRpYyBD T05TVEVYUFIgY29uc3QgdmlvdGEgdmlvdGFfb2JqOw0Kc3RhdGljIENPTlNU RVhQUiBjb25zdCB2aWQgdmlkX29iajsNCnN0YXRpYyBDT05TVEVYUFIgY29u c3QgYmlub3A8UExVUz4gdmZhZGRfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBj b25zdCBiaW5vcDxNSU5VUz4gdmZzdWJfb2JqOw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgYmlub3BfZnJtPFBMVVM+IHZmYWRkX2ZybV9vYmo7DQpzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlub3A8TUlOVVM+IHZmcnN1 Yl9vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHdpZGVuX2Jpbm9wPFBM VVM+IHZmd2FkZF9vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHdpZGVu X2Jpbm9wPE1JTlVTPiB2ZndzdWJfb2JqOw0KQEAgLTIyMzEsNiArMjI1NSw3 IEBAIEJBU0UgKHZtc29mKQ0KQkFTRSAodmlvdGEpDQpCQVNFICh2aWQpDQpC QVNFICh2ZmFkZCkNCitCQVNFICh2ZmFkZF9mcm0pDQpCQVNFICh2ZnN1YikN CkJBU0UgKHZmcnN1YikNCkJBU0UgKHZmd2FkZCkNCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5o IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuaA0KaW5kZXggNjJmZjM4YTI4MTEuLjU0YTgxZWFiMjY5IDEwMDY0NA0K LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt YmFzZXMuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuaA0KQEAgLTE0NSw2ICsxNDUsNyBAQCBleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmlvdGE7DQpleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmlkOw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZmYWRkOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZmYWRkOw0KK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2ZmFkZF9mcm07DQpleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmZzdWI7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdmZzdWI7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFz ZSAqY29uc3QgdmZyc3ViOw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmDQppbmRleCA4OWFmZjI3YmYyNi4uMDM1YzllNDI1MmYgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQpAQCAtMjg5LDYgKzI4OSw4 IEBAIERFRl9SVlZfRlVOQ1RJT04gKHZmYWRkLCBhbHUsIGZ1bGxfcHJlZHMs IGZfdnZmX29wcykNCkRFRl9SVlZfRlVOQ1RJT04gKHZmc3ViLCBhbHUsIGZ1 bGxfcHJlZHMsIGZfdnZ2X29wcykNCkRFRl9SVlZfRlVOQ1RJT04gKHZmc3Vi LCBhbHUsIGZ1bGxfcHJlZHMsIGZfdnZmX29wcykNCkRFRl9SVlZfRlVOQ1RJ T04gKHZmcnN1YiwgYWx1LCBmdWxsX3ByZWRzLCBmX3Z2Zl9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodmZhZGRfZnJtLCBhbHVfZnJtLCBmdWxsX3ByZWRz LCBmX3Z2dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmZhZGRfZnJtLCBh bHVfZnJtLCBmdWxsX3ByZWRzLCBmX3Z2Zl9vcHMpDQovLyAxMy4zLiBWZWN0 b3IgV2lkZW5pbmcgRmxvYXRpbmctUG9pbnQgQWRkL1N1YnRyYWN0IEluc3Ry dWN0aW9ucw0KREVGX1JWVl9GVU5DVElPTiAodmZ3YWRkLCB3aWRlbl9hbHUs IGZ1bGxfcHJlZHMsIGZfd3Z2X29wcykNCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMu Y2MNCmluZGV4IGM4ZGFhZTAxZjkxLi42OWE2NzEwNjQxOCAxMDA2NDQNCi0t LSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjDQpAQCAtMjI2LDYgKzIyNiw3MyBAQCBzdHJ1 Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQogICB9DQp9Ow0KKy8q IGFsdV9mcm1fZGVmIGNsYXNzLiAgKi8NCitzdHJ1Y3QgYWx1X2ZybV9kZWYg OiBwdWJsaWMgYnVpbGRfYmFzZQ0KK3sNCisgIC8qIE5vcm1hbGl6ZSB2Zjxv cD5fZnJtIHRvIHZmPG9wPi4gICovDQorICBzdGF0aWMgdm9pZCBub3JtYWxp emVfYmFzZV9uYW1lIChjaGFyICp0bywgY29uc3QgY2hhciAqZnJvbSwgaW50 IGxpbWl0KQ0KKyAgew0KKyAgICBzdHJuY3B5ICh0bywgZnJvbSwgbGltaXQg LSAxKTsNCisgICAgY2hhciAqc3VmZml4ID0gc3Ryc3RyICh0bywgIl9mcm0i KTsNCisNCisgICAgaWYgKHN1ZmZpeCkNCisgICAgICAqc3VmZml4ID0gJ1ww JzsNCisNCisgICAgdG9bbGltaXQgLSAxXSA9ICdcMCc7DQorICB9DQorDQor ICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3Qg ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgIGJvb2wgb3Zlcmxv YWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBjaGFyIGJhc2Vf bmFtZVsxNl0gPSB7fTsNCisNCisgICAgLyogUmV0dXJuIG51bGxwdHIgaWYg aXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAgaWYgKG92ZXJs b2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRf cCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51bGxwdHI7DQor DQorICAgIG5vcm1hbGl6ZV9iYXNlX25hbWUgKGJhc2VfbmFtZSwgaW5zdGFu Y2UuYmFzZV9uYW1lLCBzaXplb2YgKGJhc2VfbmFtZSkpOw0KKw0KKyAgICBi LmFwcGVuZF9iYXNlX25hbWUgKGJhc2VfbmFtZSk7DQorDQorICAgIC8qIHZv cDxzZXc+XzxvcD4gLS0+IHZvcDxzZXc+XzxvcD5fPHR5cGU+LiAgKi8NCisg ICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgICAgew0KKyBiLmFwcGVuZF9u YW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7 DQorIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlw ZS5pbmRleF0udmVjdG9yKTsNCisgICAgICB9DQorDQorICAgIC8qIEFjY29y ZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJf bSIgc3VmZml4DQorICAgICAgIGZvciB2b3BfbSBDKysgb3ZlcmxvYWRlZCBB UEkuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnBy ZWQgPT0gUFJFRF9UWVBFX20pDQorICAgICAgcmV0dXJuIGIuZmluaXNoX25h bWUgKCk7DQorDQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1 ZmZpeGVzW2luc3RhbmNlLnByZWRdKTsNCisNCisgICAgLyogQWNjb3JkaW5n IHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQgIl9ybSIg c3VmZml4DQorICAgICAgIGZvciB2b3Bfcm0gQysrIG92ZXJsb2FkZWQgQVBJ LiAgKi8NCisgICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgICAgYi5hcHBl bmRfbmFtZSAoIl9ybSIpOw0KKw0KKyAgICByZXR1cm4gYi5maW5pc2hfbmFt ZSAoKTsNCisgIH0NCisNCisgIGJvb2wgY2hlY2sgKGZ1bmN0aW9uX2NoZWNr ZXIgJmMpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIGdjY19hc3NlcnQg KGMuYW55X3R5cGVfZmxvYXRfcCAoKSk7DQorDQorICAgIC8qIENoZWNrIHdo ZXRoZXIgcm91bmRpbmcgbW9kZSBhcmd1bWVudCBpcyBhIHZhbGlkIGltbWVk aWF0ZS4gICovDQorICAgIGlmIChjLmJhc2UtPmhhc19yb3VuZGluZ19tb2Rl X29wZXJhbmRfcCAoKSkNCisgICAgICB7DQorIHVuc2lnbmVkIGludCBmcm1f bnVtID0gYy5hcmdfbnVtICgpIC0gMjsNCisNCisgcmV0dXJuIGMucmVxdWly ZV9pbW1lZGlhdGVfcmFuZ2Vfb3IgKGZybV9udW0sIEZSTV9TVEFUSUNfTUlO LA0KKyAgICAgIEZSTV9TVEFUSUNfTUFYLCBGUk1fRFlOKTsNCisgICAgICB9 DQorDQorICAgIHJldHVybiB0cnVlOw0KKyAgfQ0KK307DQorDQovKiB3aWRl bl9hbHVfZGVmIGNsYXNzLiBIYW5kbGUgdndhZGQvdndzdWIuIFVubGlrZQ0K ICAgIHZhZGQudngvdmFkZC52di92d211bC52di92d211bC52eCwgdndhZGQu dnYvdndhZGQudngvdndhZGQud3YvdndhZGQud3ggaGFzDQogICAgJ09QJyBz dWZmaXggaW4gb3ZlcmxvYWRlZCBBUEkuICAqLw0KQEAgLTc0Myw2ICs4MTAs NyBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2bG1heCkNClNIQVBFKGxvYWRzdG9y ZSwgbG9hZHN0b3JlKQ0KU0hBUEUoaW5kZXhlZF9sb2Fkc3RvcmUsIGluZGV4 ZWRfbG9hZHN0b3JlKQ0KU0hBUEUoYWx1LCBhbHUpDQorU0hBUEUoYWx1X2Zy bSwgYWx1X2ZybSkNClNIQVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQ0KU0hB UEUobm9fbWFza19wb2xpY3ksIG5vX21hc2tfcG9saWN5KQ0KU0hBUEUocmV0 dXJuX21hc2ssIHJldHVybl9tYXNrKQ0KZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgN CmluZGV4IDZhNTE3MTNjMTJjLi4xNWZlZjgzNDJlYyAxMDA2NDQNCi0tLSBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBl cy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1zaGFwZXMuaA0KQEAgLTI5LDYgKzI5LDcgQEAgZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0dmxtYXg7DQpleHRlcm4gY29u c3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGxvYWRzdG9yZTsNCmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7 DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFsdTsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFsdV9mcm07DQpl eHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHdpZGVuX2FsdTsN CmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgbm9fbWFza19w b2xpY3k7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJl dHVybl9tYXNrOw0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuY2MNCmluZGV4IDQ2NmUzNmQ1MGI3Li42NDhj NzY1YTVkMSAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5jYw0KQEAgLTM4NTIsNiArMzg1MiwyMyBA QCBmdW5jdGlvbl9jaGVja2VyOjpyZXBvcnRfb3V0X29mX3JhbmdlICh1bnNp Z25lZCBpbnQgYXJnbm8sIEhPU1RfV0lERV9JTlQgYWN0dWFsLA0KICAgIGFj dHVhbCwgYXJnbm8gKyAxLCBmbmRlY2wsIG1pbiwgbWF4KTsNCn0NCisvKiBS ZXBvcnQgdGhhdCBMT0NBVElPTiBoYXMgYSBjYWxsIHRvIEZOREVDTCBpbiB3 aGljaCBhcmd1bWVudCBBUkdOTyBoYXMNCisgICB0aGUgdmFsdWUgQUNUVUFM LCB3aGVyZWFzIHRoZSBmdW5jdGlvbiByZXF1aXJlcyBhIHZhbHVlIGluIHRo ZSByYW5nZQ0KKyAgIFtNSU4sIE1BWF0gb3IgT1JfVkFMLiAgQVJHTk8gY291 bnRzIGZyb20gemVyby4gICovDQordm9pZA0KK2Z1bmN0aW9uX2NoZWNrZXI6 OnJlcG9ydF9vdXRfb2ZfcmFuZ2VfYW5kX25vdCAodW5zaWduZWQgaW50IGFy Z25vLA0KKyAgICAgICAgSE9TVF9XSURFX0lOVCBhY3R1YWwsDQorICAgICAg ICBIT1NUX1dJREVfSU5UIG1pbiwNCisgICAgICAgIEhPU1RfV0lERV9JTlQg bWF4LA0KKyAgICAgICAgSE9TVF9XSURFX0lOVCBvcl92YWwpIGNvbnN0DQor ew0KKyAgZXJyb3JfYXQgKGxvY2F0aW9uLA0KKyAgICAgInBhc3NpbmcgJXdk IHRvIGFyZ3VtZW50ICVkIG9mICVxRSwgd2hpY2ggZXhwZWN0cyINCisgICAg ICIgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgWyV3ZCwgJXdkXSBvciAld2QiLA0K KyAgICAgYWN0dWFsLCBhcmdubyArIDEsIGZuZGVjbCwgbWluLCBtYXgsIG9y X3ZhbCk7DQorfQ0KKw0KKw0KLyogQ2hlY2sgdGhhdCBhcmd1bWVudCBBUkdO TyBpcyBhbiBpbnRlZ2VyIGNvbnN0YW50IGV4cHJlc3Npb24gYW5kDQogICAg c3RvcmUgaXRzIHZhbHVlIGluIFZBTFVFX09VVCBpZiBzby4gIFRoZSBjYWxs ZXIgc2hvdWxkIGZpcnN0DQogICAgY2hlY2sgdGhhdCBhcmd1bWVudCBBUkdO TyBleGlzdHMuICAqLw0KQEAgLTM4OTMsNiArMzkxMCwzMCBAQCBmdW5jdGlv bl9jaGVja2VyOjpyZXF1aXJlX2ltbWVkaWF0ZV9yYW5nZSAodW5zaWduZWQg aW50IGFyZ25vLA0KICAgcmV0dXJuIHRydWU7DQp9DQorLyogQ2hlY2sgdGhh dCBhcmd1bWVudCBSRUxfQVJHTk8gaXMgYW4gaW50ZWdlciBjb25zdGFudCBl eHByZXNzaW9uIGluIHRoZQ0KKyAgIHJhbmdlIFtNSU4sIE1BWF0gb3IgT1Jf VkFMLiAgUkVMX0FSR05PIGNvdW50cyBmcm9tIHRoZSBlbmQgb2YgdGhlDQor ICAgcHJlZGljYXRpb24gYXJndW1lbnRzLiAgKi8NCitib29sDQorZnVuY3Rp b25fY2hlY2tlcjo6cmVxdWlyZV9pbW1lZGlhdGVfcmFuZ2Vfb3IgKHVuc2ln bmVkIGludCBhcmdubywNCisgICAgICAgSE9TVF9XSURFX0lOVCBtaW4sDQor ICAgICAgIEhPU1RfV0lERV9JTlQgbWF4LA0KKyAgICAgICBIT1NUX1dJREVf SU5UIG9yX3ZhbCkgY29uc3QNCit7DQorICBnY2NfYXNzZXJ0IChtaW4gPj0g MCAmJiBtaW4gPD0gbWF4KTsNCisgIGdjY19hc3NlcnQgKGFyZ25vIDwgbV9u YXJncyk7DQorDQorICB0cmVlIGFyZyA9IG1fYXJnc1thcmdub107DQorICBI T1NUX1dJREVfSU5UIGFjdHVhbCA9IHRyZWVfdG9fdWh3aSAoYXJnKTsNCisN CisgIGlmICghSU5fUkFOR0UgKGFjdHVhbCwgbWluLCBtYXgpICYmIGFjdHVh bCAhPSBvcl92YWwpDQorICAgIHsNCisgICAgICByZXBvcnRfb3V0X29mX3Jh bmdlX2FuZF9ub3QgKGFyZ25vLCBhY3R1YWwsIG1pbiwgbWF4LCBvcl92YWwp Ow0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKw0KKyAgcmV0dXJu IHRydWU7DQorfQ0KKw0KLyogUGVyZm9ybSBzZW1hbnRpYyBjaGVja3Mgb24g dGhlIGNhbGwuICBSZXR1cm4gdHJ1ZSBpZiB0aGUgY2FsbCBpcyB2YWxpZCwN CiAgICBvdGhlcndpc2UgcmVwb3J0IGEgc3VpdGFibGUgZXJyb3IuICAqLw0K Ym9vbA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5oDQppbmRleCBiMGMzYTQyZDgyMC4uZTM1OGE4ZTRkOTEg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5oDQpAQCAtNDQyLDYgKzQ0Miw4IEBAIHB1YmxpYzoNCiAg IGJvb2wgY2hlY2sgKHZvaWQpOw0KICAgYm9vbCByZXF1aXJlX2ltbWVkaWF0 ZSAodW5zaWduZWQgaW50LCBIT1NUX1dJREVfSU5ULCBIT1NUX1dJREVfSU5U KSBjb25zdDsNCisgIGJvb2wgcmVxdWlyZV9pbW1lZGlhdGVfcmFuZ2Vfb3Ig KHVuc2lnbmVkIGludCwgSE9TVF9XSURFX0lOVCwNCisgICAgSE9TVF9XSURF X0lOVCwgSE9TVF9XSURFX0lOVCkgY29uc3Q7DQpwcml2YXRlOg0KICAgYm9v bCByZXF1aXJlX2ltbWVkaWF0ZV9yYW5nZSAodW5zaWduZWQgaW50LCBIT1NU X1dJREVfSU5ULA0KQEAgLTQ0OSw2ICs0NTEsOCBAQCBwcml2YXRlOg0KICAg dm9pZCByZXBvcnRfbm9uX2ljZSAodW5zaWduZWQgaW50KSBjb25zdDsNCiAg IHZvaWQgcmVwb3J0X291dF9vZl9yYW5nZSAodW5zaWduZWQgaW50LCBIT1NU X1dJREVfSU5ULCBIT1NUX1dJREVfSU5ULA0KICAgIEhPU1RfV0lERV9JTlQp IGNvbnN0Ow0KKyAgdm9pZCByZXBvcnRfb3V0X29mX3JhbmdlX2FuZF9ub3Qg KHVuc2lnbmVkIGludCwgSE9TVF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCwN CisgICAgIEhPU1RfV0lERV9JTlQsIEhPU1RfV0lERV9JTlQpIGNvbnN0Ow0K ICAgLyogVGhlIHR5cGUgb2YgdGhlIHJlc29sdmVkIGZ1bmN0aW9uLiAgKi8N CiAgIHRyZWUgbV9mbnR5cGU7DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1l cnJvci5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWZybS1lcnJvci5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjRlYmFhMTVhYjBiDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWVycm9yLmMNCkBAIC0wLDAgKzEs MTUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCit0 eXBlZGVmIGZsb2F0IGZsb2F0MzJfdDsNCisNCit2b2lkIHRlc3RfZmxvYXRf cG9pbnRfZnJtX2Vycm9yIChmbG9hdDMyX3QgKm91dCwgdmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCB2MSA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9w MSwgb3AyLCA1LCB2bCk7IC8qIHsgZGctZXJyb3Ige3Bhc3NpbmcgNSB0byBh cmd1bWVudCAzIG9mICdfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtJywgd2hp Y2ggZXhwZWN0cyBhIHZhbHVlIGluIHRoZSByYW5nZSBcWzAsIDRcXSBvciA3 fSB9ICovDQorICB2ZmxvYXQzMm0xX3QgdjIgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtICh2MSwgdjEsIDYsIHZsKTsgICAvKiB7IGRnLWVycm9yIHtw YXNzaW5nIDYgdG8gYXJndW1lbnQgMyBvZiAnX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybScsIHdoaWNoIGV4cGVjdHMgYSB2YWx1ZSBpbiB0aGUgcmFuZ2Ug XFswLCA0XF0gb3IgN30gfSAqLw0KKyAgdmZsb2F0MzJtMV90IHYzID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAodjIsIHYyLCA4LCB2bCk7ICAgLyog eyBkZy1lcnJvciB7cGFzc2luZyA4IHRvIGFyZ3VtZW50IDMgb2YgJ19fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0nLCB3aGljaCBleHBlY3RzIGEgdmFsdWUg aW4gdGhlIHJhbmdlIFxbMCwgNFxdIG9yIDd9IH0gKi8NCisNCisgIF9fcmlz Y3ZfdnNlMzJfdl9mMzJtMSAob3V0LCB2MywgdmwpOw0KK30NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uOTUyNzFiMmM4MjINCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0uYw0KQEAgLTAsMCArMSwz MCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3R5 cGVkZWYgZmxvYXQgZmxvYXQzMl90Ow0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rl c3RfcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHZmbG9hdDMybTFfdCBvcDEs IHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgb3AyLCAwLCB2bCk7DQor fQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfdmZhZGRfdnZfZjMybTFfbV9y bSh2Ym9vbDMyX3QgbWFzaywgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJt MV90IG9wMiwNCisgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9tX3JtKG1hc2ssIG9wMSwgb3AyLCAwLCB2bCk7DQor fQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfdmZhZGRfdmZfZjMybTFfcm0o dmZsb2F0MzJtMV90IG9wMSwgZmxvYXQzMl90IG9wMiwgc2l6ZV90IHZsKSB7 DQorICByZXR1cm4gX19yaXNjdl92ZmFkZF92Zl9mMzJtMV9ybShvcDEsIG9w MiwgMCwgdmwpOw0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X3ZmYWRk X3ZmX2YzMm0xX21fcm0odmJvb2wzMl90IG1hc2ssIHZmbG9hdDMybTFfdCBv cDEsIGZsb2F0MzJfdCBvcDIsDQorIHNpemVfdCB2bCkgew0KKyAgcmV0dXJu IF9fcmlzY3ZfdmZhZGRfdmZfZjMybTFfbV9ybShtYXNrLCBvcDEsIG9wMiwg MCwgdmwpOw0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDQgfSB9ICovDQotLSANCjIuMzQuMQ0KIA0KIA0K ------=_001_NextPart024768371855_=------