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 5A9EA3858D28 for ; Mon, 17 Jul 2023 01:02:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5A9EA3858D28 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: bizesmtp88t1689555765tmmf5kzw Received: from LAPTOP-EPITNQBU ( [113.104.214.112]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 17 Jul 2023 09:02:44 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: znfcQSa1hKa/cWl+ZrciIaSfzWPuevo0gFzbVhgOWHBIoJPqfYBglKIAV7isk tlvC6pzkF+LoywfARgm2AErzXaraUSDNvyXfKAJUyfEzDYCt9gg80bDoWGSWnMPyFQyKMDq 1jDCwNatRljkszqMddOaDX6XNOaXd9QP5HpkDtkrd0U1VFdfSU7dbgpaM3oXmiR5XPDsrvI MYmipuxuyuifehbCSS7Ale8Un75dedlBCYcnhQg72qk2n3AyqFKi3p5oCoc7lw5uJ22lsod HLbdD2FWhG0zZvhmzvtgGdlMstj6jxa0IZrC2h8fCFkHZUl+l+5+jrSkS3ABGdqKyOUvFPF rNwsThyJGDt4x16sfeiqfTZHJBgKSbIO5hWVpRDhI454eF2GGY= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 51400347938054409 Date: Mon, 17 Jul 2023 09:02:44 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: pan2.li , yanzhang.wang , kito.cheng Subject: Re: [PATCH v1] RISC-V: Support basic floating-point dynamic rounding mode References: <20230714025024.1408869-1-pan2.li@intel.com> X-Priority: 3 X-GUID: B0989ED0-C4F4-47FE-8615-59BBD5983814 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart140771142573_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,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_NextPart140771142573_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 TEdUTQ0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IHBh bjIubGkNCkRhdGU6IDIwMjMtMDctMTQgMTA6NTANClRvOiBnY2MtcGF0Y2hl cw0KQ0M6IGp1emhlLnpob25nOyBwYW4yLmxpOyB5YW56aGFuZy53YW5nOyBr aXRvLmNoZW5nDQpTdWJqZWN0OiBbUEFUQ0ggdjFdIFJJU0MtVjogU3VwcG9y dCBiYXNpYyBmbG9hdGluZy1wb2ludCBkeW5hbWljIHJvdW5kaW5nIG1vZGUN CkZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQogDQpUaGlzIHBh dGNoIHdvdWxkIGxpa2UgdG8gc3VwcG9ydCB0aGUgYmFzaWMgZmxvYXRpbmct cG9pbnQgZHluYW1pYw0Kcm91bmRpbmcgbW9kZXMgZm9yIHRoZSBSVlYuDQog DQpXZSBpbXBsZW1lbnQgdGhlIGR5bmFtaWMgcm91bmRpbmcgbW9kZSBieSBi ZWxvdyBzdGVwcy4NCjEuIFNldCBlbnRyeSB0byBEWU4gYW5kIGV4aXQgdG8g RFlOX0VYSVQuDQoyLiBBZGQgb25lIHJ0bCB2YXJpYWJsZSBpbnRvIG1hY2hp bmVfZnVuY3Rpb24gZm9yIGJhY2t1cC9yZXN0b3JlLg0KMy4gQmFja3VwIGZy bSB2YWx1ZSB3aGVuIGVudHJ5Lg0KNC4gUmVzdG9yZSBmcm0gdmFsdWUgd2hl biBleGl0IGFuZCBwcmV2IG1vZGUgaXMgbm90IERZTi4NCjUuIFJlc3RvcmUg ZnJtIHdoZW4gbW9kZSBzd2l0Y2hpbmcgdG8gRFlOLg0KNi4gU2V0IGZybSB3 aGVuIG1vZGUgc3dpdGNoaW5nIHRvIFNUQVRJQy4NCiANClRha2Ugb25lIGZs b3cgdG8gZGVzY3JpYmUgdGhlIHNjZW5hcmlvcy4NCiANCiAgICAgICAgICAg Ky0tLS0tLS0tLS0tLS0rDQogICAgICAgICAgIHwgRW50cnkgKERZTikgfCA8 LSBmcnJtIGE1DQogICAgICAgICAgICstLS0tLS0tLS0tLS0tKw0KICAgICAg ICAgIC8gICAgICAgICAgICAgICBcDQogICAgKy0tLS0tLS0rICAgICAgICAg ICAgKy0tLS0tLS0tLS0tKw0KICAgIHwgVkZBREQgfCA8LSBmc3JtIGE1IHwg VkZBREQgUlRaIHwgPC0gZnNybWkgMShSVFopDQogICAgKy0tLS0tLS0rICAg ICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgIHwNCiAgICArLS0tLS0tLSsgICAgICAgICAgICArLS0tLS0t LS0tLS0rDQogICAgfCBWRkFERCB8ICAgICAgICAgICAgfCBWRkFERCBSVFog fA0KICAgICstLS0tLS0tKyAgICAgICAgICAgICstLS0tLS0tLS0tLSsNCiAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8DQorLS0tLS0tLS0t LS0rICAgICAgICAgICAgICAgICArLS0tLS0tLSsNCnwgVkZBREQgUlVQIHwg PC0gZnNybWkgMyhSVVApIHwgVkZBREQgfCA8LSBmc3JtIGE1DQorLS0tLS0t LS0tLS0rICAgICAgICAgICAgICAgICArLS0tLS0tLSsNCiAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgLw0KKy0tLS0tLS0tLS0tKyAgICAgICAgICAg ICAgIC8NCnwgVkZBREQgUlVQIHwgICAgICAgICAgICAgIC8NCistLS0tLS0t LS0tLSsgICAgICAgICAgICAgLw0KICAgICAgICAgICBcICAgICAgICAgICAg IC8NCiAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLSsNCiAgICAgICAg ICAgIHwgRXhpdCAoRFlOX0VYSVQpIHwgPC0gZnNybSBhNQ0KICAgICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0KIA0KUGxlYXNlICpOT1RFKiBpbmxp bmUgYXNtIGFuZCBjYWxsIGR1cmluZyB0aGUgY2Z1biB3aWxsIGJlIGltcGxl bWVudGVkDQppbiBhbm90aGVyIFBBVENIKHMpLg0KIA0KU2lnbmVkLW9mZi1i eTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4NCkNvLUF1dGhvcmVkLUJ5 OiBKdXpoZS1aaG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+DQogDQpnY2Mv Q2hhbmdlTG9nOg0KIA0KKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKHN0cnVj dCBtYWNoaW5lX2Z1bmN0aW9uKTogQWRkIG5ldyBmaWVsZC4NCihyaXNjdl9z dGF0aWNfZnJtX21vZGVfcCk6IE5ldyBmdW5jdGlvbi4NCihyaXNjdl9lbWl0 X2ZybV9tb2RlX3NldCk6IE5ldyBmdW5jdGlvbiBmb3IgZW1pdCBGUk0uDQoo cmlzY3ZfZW1pdF9tb2RlX3NldCk6IEV4dHJhY3QgZnVuY3Rpb24gZm9yIEZS TS4NCihyaXNjdl9tb2RlX25lZWRlZCk6IEZpeCB0aGUgVE9ETy4NCihyaXNj dl9tb2RlX2VudHJ5KTogSW5pdGlhbCBkeW5hbWljIGZybSBSVEwuDQoocmlz Y3ZfbW9kZV9leGl0KTogUmV0dXJuIERZTl9FWElULg0KKiBjb25maWcvcmlz Y3YvcmlzY3YubWQ6IEFkZCByZGZybS4NCiogY29uZmlnL3Jpc2N2L3ZlY3Rv ci1pdGVyYXRvcnMubWQgKHVuc3BlY3YpOiBBZGQgRFlOX0VYSVQgdW5zcGVj di4NCiogY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCAoZnJtX21vZGVlKTogQWRk IG5ldyBtb2RlIGR5bl9leGl0Lg0KKGZzcm0pOiBSZW1vdmVkLg0KKGZzcm1z aV9iYWNrdXApOiBOZXcgcGF0dGVybiBmb3Igc3dhcC4NCihmc3Jtc2lfcmVz dG9yZSk6IE5ldyBwYXR0ZXJuIGZvciByZXN0b3JlLg0KKGZzcm1zaV9yZXN0 b3JlX2V4aXQpOiBOZXcgcGF0dGVybiBmb3IgcmVzdG9yZSBleGl0Lg0KKGZy cm1zaSk6IE5ldyBwYXR0ZXJuIGZvciBiYWNrdXAuDQogDQpnY2MvdGVzdHN1 aXRlL0NoYW5nZUxvZzoNCiANCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTEuYzogQWRqdXN0DQp0ZXN0IGNh c2VzLg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1pbnNlcnQtMTAuYzogRGl0dG8uDQoqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC0yLmM6IERpdHRvLg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1p bnNlcnQtMy5jOiBEaXR0by4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTQuYzogRGl0dG8uDQoqIGdjYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC01 LmM6IERpdHRvLg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWZybS1pbnNlcnQtNi5jOiBEaXR0by4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYzogRGl0 dG8uDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZnJtLWluc2VydC04LmM6IERpdHRvLg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtOS5jOiBEaXR0by4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVu LTEuYzogRGl0dG8uDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLXJ1bi0yLmM6IERpdHRvLg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tMy5jOiBEaXR0by4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0xLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTEwLmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTExLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTEyLmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTEzLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE0LmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTE1LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE2LmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTE3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE4 LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTE5LmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTIuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjAuYzogTmV3IHRlc3QuDQoqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMjEuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjIuYzogTmV3IHRlc3QuDQoq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMjMuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjQuYzogTmV3IHRlc3Qu DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMjUuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjYuYzogTmV3IHRl c3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMjcuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjguYzogTmV3 IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMjkuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMy5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zMC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMS5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0zMi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTUuYzogTmV3IHRlc3QuDQoqIGdjYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t Ni5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS03LmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTguYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tOS5jOiBOZXcgdGVzdC4NCi0tLQ0K Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyAgICAgICAgICAgICAgICAgICAg IHwgOTUgKysrKysrKysrKysrKy0tLS0tLQ0KZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi5tZCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCmdjYy9jb25m aWcvcmlzY3YvdmVjdG9yLWl0ZXJhdG9ycy5tZCAgICAgICAgICB8ICA0ICst DQpnY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCAgICAgICAgICAgICAgICAg ICAgfCA2MyArKysrKysrKy0tLS0NCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0xLmMgICAgICB8IDIxICsrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xMC5jICAgICB8IDI2ICsrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTEuYyAg ICAgfCAyNiArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTEyLmMgICAgIHwgMjkgKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMTMuYyAgICAgfCAyOSArKysrKysNCi4u Li9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xNC5jICAgICB8 IDI4ICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTE1LmMgICAgIHwgMjggKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMTYuYyAgICAgfCAyMiArKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE3LmMgICAgIHwgMjIg KysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0x OC5jICAgICB8IDI1ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMTkuYyAgICAgfCAyNSArKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTIuYyAgICAgIHwgMjAgKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTIwLmMgICAg IHwgMjcgKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMjEuYyAgICAgfCAyNyArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0yMi5jICAgICB8IDI1ICsrKysrDQouLi4v cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjMuYyAgICAgfCAy NSArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTI0LmMgICAgIHwgMTMgKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMjUuYyAgICAgfCAyOCArKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yNi5jICAgICB8IDIzICsrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjcuYyAg ICAgfCAzMCArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0yOC5jICAgICB8IDMwICsrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTI5LmMgICAgIHwgMjggKysrKysrDQou Li4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMy5jICAgICAg fCAyMSArKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMzAuYyAgICAgfCAzMCArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zMS5jICAgICB8IDI5ICsrKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMyLmMgICAgIHwgMjUg KysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 LmMgICAgICB8IDIxICsrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS01LmMgICAgICB8IDIxICsrKysNCi4uLi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02LmMgICAgICB8IDI3ICsrKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcuYyAgICAg IHwgMjcgKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tOC5jICAgICAgfCAyNiArKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTkuYyAgICAgIHwgMjYgKysrKysNCi4uLi9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTEuYyB8ICA0 ICstDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC0xMC5j ICAgICAgfCAgNCArLQ0KLi4uL3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1pbnNlcnQtMi5jIHwgIDQgKy0NCi4uLi9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1mcm0taW5zZXJ0LTMuYyB8ICA0ICstDQouLi4vcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC00LmMgfCAgNCArLQ0K Li4uL3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNS5j IHwgIDQgKy0NCi4uLi9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0t aW5zZXJ0LTYuYyB8ICA0ICstDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC03LmMgfCAgNCArLQ0KLi4uL3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtOC5jIHwgIDQgKy0NCi4uLi9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTkuYyB8ICA0 ICstDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi0x LmMgICAgfCAgNSArLQ0KLi4uL3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1ydW4tMi5jICAgIHwgIDUgKy0NCi4uLi9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1mcm0tcnVuLTMuYyAgICB8ICA5ICstDQo0OSBmaWxlcyBj aGFuZ2VkLCA5NjcgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTEuYw0KY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xMC5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTExLmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTIuYw0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xMy5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE0LmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTUuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xNi5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE3LmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTguYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xOS5jDQpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTIuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0yMC5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTIxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMjIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0yMy5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTI0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMjUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0yNi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTI3LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMjguYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0yOS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTMuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zMC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTMxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTYuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS03LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t OC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTku Yw0KIA0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2Mg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQppbmRleCA2ZWQ3MzVkNjk4 My4uYTQ1YzUyYTI0MzcgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQpA QCAtMTQ4LDYgKzE0OCw5IEBAIHN0cnVjdCBHVFkoKCkpICBtYWNoaW5lX2Z1 bmN0aW9uIHsNCiAgICAgIG5vdCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBwcm9s b2d1ZSBhbmQgZXBpbG9ndWUuICAqLw0KICAgYm9vbCByZWdfaXNfd3JhcHBl ZF9zZXBhcmF0ZWx5W0ZJUlNUX1BTRVVET19SRUdJU1RFUl07DQorICAvKiBU aGUgUlRMIHZhcmlhYmxlIHdoaWNoIHN0b3JlcyB0aGUgZHluYW1pYyBGUk0g dmFsdWUuICBXZSBhbHdheXMgdXNlIHRoaXMNCisgICAgIFJUWCB0byByZXN0 b3JlIGR5bmFtaWMgRlJNIHJvdW5kaW5nIG1vZGUgaW4gbW9kZSBzd2l0Y2hp bmcuICAqLw0KKyAgcnR4IGR5bmFtaWNfZnJtOw0KfTsNCi8qIEluZm9ybWF0 aW9uIGFib3V0IGEgc2luZ2xlIGFyZ3VtZW50LiAgKi8NCkBAIC03NjQxLDYg Kzc2NDQsNTUgQEAgcmlzY3ZfdmVjdG9yaXplX3ByZWZlcnJlZF92ZWN0b3Jf YWxpZ25tZW50IChjb25zdF90cmVlIHR5cGUpDQogICByZXR1cm4gVFlQRV9B TElHTiAodHlwZSk7DQp9DQorLyogUmV0dXJuIHRydWUgaWYgaXQgaXMgc3Rh dGljIEZSTSByb3VuZGluZyBtb2RlLiAgKi8NCisNCitzdGF0aWMgYm9vbA0K K3Jpc2N2X3N0YXRpY19mcm1fbW9kZV9wIChpbnQgbW9kZSkNCit7DQorICBz d2l0Y2ggKG1vZGUpDQorICAgIHsNCisgICAgY2FzZSBGUk1fTU9ERV9SRE46 DQorICAgIGNhc2UgRlJNX01PREVfUlVQOg0KKyAgICBjYXNlIEZSTV9NT0RF X1JUWjoNCisgICAgY2FzZSBGUk1fTU9ERV9STU06DQorICAgIGNhc2UgRlJN X01PREVfUk5FOg0KKyAgICAgIHJldHVybiB0cnVlOw0KKyAgICBkZWZhdWx0 Og0KKyAgICAgIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKw0KKyAgZ2NjX3Vu cmVhY2hhYmxlICgpOw0KK30NCisNCisvKiBJbXBsZW1lbnQgdGhlIGZsb2F0 aW5nLXBvaW50IE1vZGUgU3dpdGNoaW5nLiAgKi8NCisNCitzdGF0aWMgdm9p ZA0KK3Jpc2N2X2VtaXRfZnJtX21vZGVfc2V0IChpbnQgbW9kZSwgaW50IHBy ZXZfbW9kZSkNCit7DQorICBpZiAobW9kZSAhPSBwcmV2X21vZGUpDQorICAg IHsNCisgICAgICBydHggYmFja3VwX3JlZyA9IGNmdW4tPm1hY2hpbmUtPmR5 bmFtaWNfZnJtOw0KKyAgICAgIC8qIFRPRE86IEJ5IGRlc2lnbiwgRlJNX01P REVfeHh4IHVzZWQgYnkgbW9kZSBzd2l0Y2ggd2hpY2ggaXMNCisgZGlmZmVy ZW50IGZyb20gdGhlIEZSTSB2YWx1ZSBsaWtlIEZSTV9SVFogZGVmaW5lZCBp bg0KKyByaXNjdi1wcm90b3MuaC4gIFdoZW4gbW9kZSBzd2l0Y2hpbmcgd2Ug YWN0dWFsbHkgbmVlZCBhIGNvbnZlcnNpb24NCisgZnVuY3Rpb24gdG8gY29u dmVydCB0aGUgbW9kZSBvZiBtb2RlIHN3aXRjaGluZyB0byB0aGUgYWN0dWFs DQorIEZSTSB2YWx1ZSBsaWtlIEZSTV9SVFouICBGb3Igbm93LCB0aGUgdmFs dWUgYmV0d2VlbiB0aGUgbW9kZSBvZg0KKyBtb2RlIHN3aXRoIGFuZCB0aGUg RlJNIHZhbHVlIGluIHJpc2N2LXByb3Rvcy5oIHRha2UgdGhlIHNhbWUgdmFs dWUsDQorIGFuZCB0aGVuIHdlIGxldmVyYWdlIHRoaXMgYXNzdW1wdGlvbiB3 aGVuIGVtaXQuICAqLw0KKyAgICAgIHJ0eCBmcm0gPSBnZW5faW50X21vZGUg KG1vZGUsIFNJbW9kZSk7DQorDQorICAgICAgaWYgKG1vZGUgPT0gRlJNX01P REVfRFlOX0VYSVQgJiYgcHJldl9tb2RlICE9IEZSTV9NT0RFX0RZTikNCisg LyogTm8gbmVlZCB0byBlbWl0IHdoZW4gcHJldiBtb2RlIGlzIERZTiBhbHJl YWR5LiAgKi8NCisgZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfZXhp dCAoYmFja3VwX3JlZykpOw0KKyAgICAgIGVsc2UgaWYgKG1vZGUgPT0gRlJN X01PREVfRFlOKQ0KKyAvKiBSZXN0b3JlIGZybSB2YWx1ZSBmcm9tIGJhY2t1 cCB3aGVuIHN3aXRjaCB0byBEWU4gbW9kZS4gICovDQorIGVtaXRfaW5zbiAo Z2VuX2Zzcm1zaV9yZXN0b3JlIChiYWNrdXBfcmVnKSk7DQorICAgICAgZWxz ZSBpZiAocmlzY3Zfc3RhdGljX2ZybV9tb2RlX3AgKG1vZGUpKQ0KKyAvKiBT ZXQgZnJtIHZhbHVlIHdoZW4gc3dpdGNoIHRvIHN0YXRpYyBtb2RlLiAgKi8N CisgZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmUgKGZybSkpOw0KKyAg ICB9DQorfQ0KKw0KLyogSW1wbGVtZW50IE1vZGUgc3dpdGNoaW5nLiAgKi8N CnN0YXRpYyB2b2lkDQpAQCAtNzY1NCwyNSArNzcwNiw3IEBAIHJpc2N2X2Vt aXRfbW9kZV9zZXQgKGludCBlbnRpdHksIGludCBtb2RlLCBpbnQgcHJldl9t b2RlLA0KZW1pdF9pbnNuIChnZW5fdnhybXNpIChnZW5faW50X21vZGUgKG1v ZGUsIFNJbW9kZSkpKTsNCiAgICAgICBicmVhazsNCiAgICAgY2FzZSBSSVND Vl9GUk06DQotICAgICAgLyogU3dpdGNoaW5nIHRvIHRoZSBkeW5hbWljIHJv dW5kaW5nIG1vZGUgaXMgbm90IG5lY2Vzc2FyeS4gIFdoZW4gYW4NCi0gaW5z dHJ1Y3Rpb24gcmVxdWVzdHMgaXQsIGl0IGVmZmVjdGl2ZWx5IHVzZXMgdGhl IHJvdW5kaW5nIG1vZGUgYWxyZWFkeQ0KLSBzZXQgaW4gdGhlIEZSTSByZWdp c3Rlci4gIEFsbCBvdGhlciByb3VuZGluZyBtb2RlcyByZXF1aXJlIHVzIHRv DQotIHN3aXRjaCB0aGUgcm91bmRpbmcgbW9kZSB2aWEgdGhlIEZSTSByZWdp c3Rlci4gICovDQotICAgICAgaWYgKG1vZGUgIT0gRlJNX01PREVfRFlOICYm IG1vZGUgIT0gcHJldl9tb2RlKQ0KLSB7DQotICAgLyogVE9ETzogQnkgZGVz aWduLCBGUk1fTU9ERV94eHggdXNlZCBieSBtb2RlIHN3aXRjaCB3aGljaCBp cw0KLSAgICAgIGRpZmZlcmVudCBmcm9tIHRoZSBGUk0gdmFsdWUgbGlrZSBG Uk1fUlRaIGRlZmluZWQgaW4NCi0gICAgICByaXNjdi1wcm90b3MuaC4gIFdo ZW4gbW9kZSBzd2l0Y2hpbmcgd2UgYWN0dWFsbHkgbmVlZCBhIGNvbnZlcnNp b24NCi0gICAgICBmdW5jdGlvbiB0byBjb252ZXJ0IHRoZSBtb2RlIG9mIG1v ZGUgc3dpdGNoaW5nIHRvIHRoZSBhY3R1YWwNCi0gICAgICBGUk0gdmFsdWUg bGlrZSBGUk1fUlRaLiAgRm9yIG5vdywgdGhlIHZhbHVlIGJldHdlZW4gdGhl IG1vZGUgb2YNCi0gICAgICBtb2RlIHN3aXRoIGFuZCB0aGUgRlJNIHZhbHVl IGluIHJpc2N2LXByb3Rvcy5oIHRha2UgdGhlIHNhbWUgdmFsdWUsDQotICAg ICAgYW5kIHRoZW4gd2UgbGV2ZXJhZ2UgdGhpcyBhc3N1bXB0aW9uIHdoZW4g ZW1pdC4gICovDQotICAgcnR4IHNjYWxlciA9IGdlbl9yZWdfcnR4IChTSW1v ZGUpOw0KLSAgIHJ0eCBpbW0gPSBnZW5faW50X21vZGUgKG1vZGUsIFNJbW9k ZSk7DQotDQotICAgZW1pdF9pbnNuIChnZW5fbW92c2kgKHNjYWxlciwgaW1t KSk7DQotICAgZW1pdF9pbnNuIChnZW5fZnNybSAoc2NhbGVyLCBzY2FsZXIp KTsNCi0gfQ0KKyAgICAgIHJpc2N2X2VtaXRfZnJtX21vZGVfc2V0IChtb2Rl LCBwcmV2X21vZGUpOw0KICAgICAgIGJyZWFrOw0KICAgICBkZWZhdWx0Og0K ICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCkBAIC03NjkyLDEwICs3NzI2 LDcgQEAgcmlzY3ZfbW9kZV9uZWVkZWQgKGludCBlbnRpdHksIHJ0eF9pbnNu ICppbnNuKQ0KICAgICBjYXNlIFJJU0NWX1ZYUk06DQogICAgICAgcmV0dXJu IGNvZGUgPj0gMCA/IGdldF9hdHRyX3Z4cm1fbW9kZSAoaW5zbikgOiBWWFJN X01PREVfTk9ORTsNCiAgICAgY2FzZSBSSVNDVl9GUk06DQotICAgICAgLyog VE9ETzogSGVyZSB3ZSBtYXkgcmV0dXJuIEZSTV9NT0RFX05PTkUgZnJvbSBn ZXRfYXR0cl9mcm1fbW9kZSwgYXMgd2VsbA0KLSBhcyBGUk1fTU9ERV9EWU4g YXMgZGVmYXVsdC4gIEl0IGlzIGtpbmQgb2YgaW5jb25zaXN0ZW50IGFuZCB3 ZSB3aWxsDQotIHRha2UgY2FyZSBvZiBpdCBhZnRlciBkeW5hbWljIHJvdW5k aW5nIG1vZGUuICAqLw0KLSAgICAgIHJldHVybiBjb2RlID49IDAgPyBnZXRf YXR0cl9mcm1fbW9kZSAoaW5zbikgOiBGUk1fTU9ERV9EWU47DQorICAgICAg cmV0dXJuIGNvZGUgPj0gMCA/IGdldF9hdHRyX2ZybV9tb2RlIChpbnNuKSA6 IEZSTV9NT0RFX05PTkU7DQogICAgIGRlZmF1bHQ6DQogICAgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOw0KICAgICB9DQpAQCAtNzgxMSwxMCArNzg0MiwxOCBA QCByaXNjdl9tb2RlX2VudHJ5IChpbnQgZW50aXR5KQ0KICAgICBjYXNlIFJJ U0NWX1ZYUk06DQogICAgICAgcmV0dXJuIFZYUk1fTU9ERV9OT05FOw0KICAg ICBjYXNlIFJJU0NWX0ZSTToNCi0gICAgICAvKiBBY2NvcmRpbmcgdG8gUlZW IDEuMCBzcGVjLCBhbGwgdmVjdG9yIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlv bnMgdXNlDQotIHRoZSBkeW5hbWljIHJvdW5kaW5nIG1vZGUgaW4gdGhlIGZy bSByZWdpc3Rlci4gIExpa2V3aXNlIGluIG90aGVyDQotIHNpbWlsYXIgcGxh Y2VzLiAgKi8NCi0gICAgICByZXR1cm4gRlJNX01PREVfRFlOOw0KKyAgICAg IHsNCisgaWYgKCFjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSkNCisgICB7 DQorICAgICBjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSA9IGdlbl9yZWdf cnR4IChTSW1vZGUpOw0KKyAgICAgZW1pdF9pbnNuX2F0X2VudHJ5IChnZW5f ZnJybXNpIChjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSkpOw0KKyAgIH0N CisNCisgICAvKiBBY2NvcmRpbmcgdG8gUlZWIDEuMCBzcGVjLCBhbGwgdmVj dG9yIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgdXNlDQorICAgICAgdGhl IGR5bmFtaWMgcm91bmRpbmcgbW9kZSBpbiB0aGUgZnJtIHJlZ2lzdGVyLiAg TGlrZXdpc2UgaW4gb3RoZXINCisgICAgICBzaW1pbGFyIHBsYWNlcy4gICov DQorIHJldHVybiBGUk1fTU9ERV9EWU47DQorICAgICAgfQ0KICAgICBkZWZh dWx0Og0KICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCiAgICAgfQ0KQEAg LTc4MzEsNyArNzg3MCw3IEBAIHJpc2N2X21vZGVfZXhpdCAoaW50IGVudGl0 eSkNCiAgICAgY2FzZSBSSVNDVl9WWFJNOg0KICAgICAgIHJldHVybiBWWFJN X01PREVfTk9ORTsNCiAgICAgY2FzZSBSSVNDVl9GUk06DQotICAgICAgcmV0 dXJuIEZSTV9NT0RFX0RZTjsNCisgICAgICByZXR1cm4gRlJNX01PREVfRFlO X0VYSVQ7DQogICAgIGRlZmF1bHQ6DQogICAgICAgZ2NjX3VucmVhY2hhYmxl ICgpOw0KICAgICB9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi5tZCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YubWQNCmluZGV4IDc5 ODgwMjZkMTI5Li41YmNlYzFkMjIzNCAxMDA2NDQNCi0tLSBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YubWQNCisrKyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YubWQNCkBAIC0zOTEsNyArMzkxLDcgQEAgKGRlZmluZV9hdHRyICJ0eXBl Ig0KICAgIG10YyxtZmMsY29uc3QsYXJpdGgsbG9naWNhbCxzaGlmdCxzbHQs aW11bCxpZGl2LG1vdmUsZm1vdmUsZmFkZCxmbXVsLA0KICAgIGZtYWRkLGZk aXYsZmNtcCxmY3Z0LGZzcXJ0LG11bHRpLGF1aXBjLHNmYl9hbHUsbm9wLGdo b3N0LGJpdG1hbmlwLHJvdGF0ZSwNCiAgICBjbG11bCxtaW4sbWF4LG1pbnUs bWF4dSxjbHosY3R6LGNwb3AsDQotICAgYXRvbWljLGNvbmRtb3ZlLGNyeXB0 byxyZHZsZW5iLHJkdmwsd3J2eHJtLHdyZnJtLHZzZXR2bCwNCisgICBhdG9t aWMsY29uZG1vdmUsY3J5cHRvLHJkdmxlbmIscmR2bCx3cnZ4cm0sd3Jmcm0s cmRmcm0sdnNldHZsLA0KICAgIHZsZGUsdnN0ZSx2bGRtLHZzdG0sdmxkcyx2 c3RzLA0KICAgIHZsZHV4LHZsZG94LHZzdHV4LHZzdG94LHZsZGZmLHZsZHIs dnN0ciwNCiAgICB2bHNlZ2RlLHZzc2VndGUsdmxzZWdkcyx2c3NlZ3RzLHZs c2VnZHV4LHZsc2VnZG94LHZzc2VndHV4LHZzc2VndG94LHZsc2VnZGZmLA0K ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLWl0ZXJhdG9y cy5tZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLWl0ZXJhdG9ycy5tZA0K aW5kZXggZWM0OTU0NGJjZjYuLmZkYjg3MzE0MDE0IDEwMDY0NA0KLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi92ZWN0b3ItaXRlcmF0b3JzLm1kDQorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci1pdGVyYXRvcnMubWQNCkBAIC04MSw4 ICs4MSwxMCBAQCAoZGVmaW5lX2NfZW51bSAidW5zcGVjIiBbDQogICBVTlNQ RUNfVkNPTVBSRVNTDQogICBVTlNQRUNfVkxFRkYNCiAgIFVOU1BFQ19NT0RJ RllfVkwNCitdKQ0KLSAgVU5TUEVDX0ZTUk0NCisoZGVmaW5lX2NfZW51bSAi dW5zcGVjdiIgWw0KKyAgVU5TUEVDVl9GUk1fUkVTVE9SRV9FWElUDQpdKQ0K KGRlZmluZV9tb2RlX2l0ZXJhdG9yIFYgWw0KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvdmVjdG9yLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0 b3IubWQNCmluZGV4IGRlOTQ0NjM3NTcwLi4yMTVlY2I5Y2I1OCAxMDA2NDQN Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3ZlY3Rvci5tZA0KQEAgLTQ3NSw3ICs0NzUsNyBAQCAo ZGVmaW5lX2F0dHIgInZ4cm1fbW9kZSIgInJudSxybmUscmRuLHJvZCxub25l Ig0KKQ0KOzsgRGVmaW5lcyByb3VuZGluZyBtb2RlIG9mIGFuIGZsb2F0aW5n LXBvaW50IG9wZXJhdGlvbi4NCi0oZGVmaW5lX2F0dHIgImZybV9tb2RlIiAi cm5lLHJ0eixyZG4scnVwLHJtbSxkeW4sbm9uZSINCisoZGVmaW5lX2F0dHIg ImZybV9tb2RlIiAicm5lLHJ0eixyZG4scnVwLHJtbSxkeW4sZHluX2V4aXQs bm9uZSINCiAgIChjb25kDQogICAgIFsNCiAgICAgICAoZXFfYXR0ciAidHlw ZSIgInZmYWx1IikNCkBAIC01ODMsMjQgKzU4Myw1MSBAQCAoZGVmaW5lX2lu c24gInZ4cm1zaSINCiAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkNCjs7 IFNldCBGUk0NCi0oZGVmaW5lX2luc24gImZzcm0iDQotICBbDQotICAgIChz ZXQNCi0gICAgICAocmVnOlNJIEZSTV9SRUdOVU0pDQotICAgICAgKHVuc3Bl YzpTSQ0KLSBbDQotICAgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj0mciIpDQotICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKQ0KLSBdIFVOU1BFQ19GU1JNDQotICAgICAg KQ0KLSAgICApDQotICBdDQorKGRlZmluZV9pbnNuICJmc3Jtc2lfYmFja3Vw Ig0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yLHIiKQ0KKyAocmVnOlNJIEZSTV9SRUdOVU0pKQ0KKyAgIChz ZXQgKHJlZzpTSSBGUk1fUkVHTlVNKQ0KKyAobWF0Y2hfb3BlcmFuZDpTSSAx ICJyZWdfb3JfaW50X29wZXJhbmQiICJyLGkiKSldDQorICAgIlRBUkdFVF9W RUNUT1IiDQorICAiQA0KKyAgIGZzcm1cdCUwLCUxDQorICAgZnNybWlcdCUw LCUxIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIgIndyZnJtLHdyZnJtIikNCisg ICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXQ0KKykNCisNCisoZGVmaW5lX2lu c24gImZzcm1zaV9yZXN0b3JlIg0KKyAgWyhzZXQgKHJlZzpTSSBGUk1fUkVH TlVNKQ0KKyAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdfb3JfaW50X29wZXJh bmQiICJyLGkiKSldDQogICAiVEFSR0VUX1ZFQ1RPUiINCi0gICJmc3JtXHQl MCwlMSINCi0gIFsNCi0gICAgKHNldF9hdHRyICJ0eXBlIiAid3Jmcm0iKQ0K LSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpDQotICBdDQorICAiQA0KKyAg IGZzcm1cdCUwDQorICAgZnNybWlcdCUwIg0KKyAgWyhzZXRfYXR0ciAidHlw ZSIgIndyZnJtLHdyZnJtIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIp XQ0KKyApDQorDQorOzsgVGhlIHZvbGF0aWxlIGZzcm1zaSByZXN0b3JlIGlz IHVzZWQgZm9yIHRoZSBleGl0IHBvaW50IGZvciB0aGUNCis7OyBkeW5hbWlj IG1vZGUgc3dpdGNoaW5nLiBJdCB3aWxsIGdlbmVyYXRlIG9uZSB2b2xhdGls ZSBmc3JtIGE1DQorOzsgd2hpY2ggd29uJ3QgYmUgZWxpbWluYXRlZC4NCiso ZGVmaW5lX2luc24gImZzcm1zaV9yZXN0b3JlX2V4aXQiDQorICBbKHNldCAo cmVnOlNJIEZSTV9SRUdOVU0pDQorICh1bnNwZWNfdm9sYXRpbGU6U0kgWyht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIildDQor ICAgICBVTlNQRUNWX0ZSTV9SRVNUT1JFX0VYSVQpKV0NCisgICJUQVJHRVRf VkVDVE9SIg0KKyAgImZzcm1cdCUwIg0KKyAgWyhzZXRfYXR0ciAidHlwZSIg IndyZnJtIikNCisgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXQ0KKykNCisN Cis7OyBSZWFkIEZSTQ0KKyhkZWZpbmVfaW5zbiAiZnJybXNpIg0KKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y IikNCisgKHJlZzpTSSBGUk1fUkVHTlVNKSldDQorICAiVEFSR0VUX1ZFQ1RP UiINCisgICJmcnJtXHQlMCINCisgIFsoc2V0X2F0dHIgInR5cGUiICJyZGZy bSIpDQorICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0NCikNCjs7IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNzVhZjhlZWQxMjMNCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xLmMNCkBA IC0wLDAgKzEsMjEgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3Iu aCINCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFt aWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBz aXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdDsNCisNCisg IHJlc3VsdCAgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIG9wMiwg dmwpOw0KKyAgcmVzdWx0ICA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9w MSwgcmVzdWx0LCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1sw MTIzNF19IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1ccytbYXhzXVswLTldK30gfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0r fSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTAu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0xMC5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjcxNDI4ZDYzOTRjDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTAuYw0KQEAgLTAs MCArMSwyNiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19m cm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAg ICAgIGludCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IGNv dW50OyBpKyspDQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgICAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAx LCB2bCk7DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisgICAgfQ0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTExLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMTEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi45NGY4ZWExNzFiOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTExLmMNCkBAIC0wLDAgKzEsMjYgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgICBpbnQgY291bnQs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAg ICB7DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisgICAgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0K KyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3Vs dCwgb3AyLCB2bCk7DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQor fQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1sw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNd WzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0xMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTEyLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNjZj NzQ5NThmMmUNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0xMi5jDQpAQCAtMCwwICsxLDI5IEBADQorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1t YWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9h dF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0 MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50LCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAo aW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3Ay LCAxLCB2bCk7DQorDQorICAgICAgaWYgKGkgJSAyID09IDApDQorICAgICAg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQs IG9wMiwgMywgdmwpOw0KKw0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgIH0NCisNCisg IHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xMy5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTEzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uMGZiODQ5ODdkODkNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0xMy5jDQpAQCAtMCwwICsxLDI5IEBA DQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQordmZsb2F0 MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNv dW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykN CisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorDQorICAgICAgaWYgKGkg JSAyID09IDApDQorICAgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKw0KKyAgICAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2 bCk7DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0xNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTE0LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYWI1ZmMwNjQ5M2MN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xNC5j DQpAQCAtMCwwICsxLDI4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiDQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9k eW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9w MiwNCisgICAgICAgaW50IGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZs b2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAw OyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7 DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDMsIHZsKTsNCisNCisgICAgICBpZiAoaSAlIDIgPT0g MCkNCisgICAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KHJlc3VsdCwgb3AyLCB2bCk7DQorICAgIH0NCisNCisgIHJldHVybiByZXN1 bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltm YXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1p XHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxz K1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0xNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTE1LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MC4uOTdkYWNjYWQ3YWYNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0xNS5jDQpAQCAtMCwwICsxLDI4IEBADQorLyogeyBkZy1k byBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0 Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQordmZsb2F0MzJtMV90DQordGVz dF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwg dmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50LCBzaXplX3Qg dmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisg IGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAg ICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCAxLCB2bCk7DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisNCisgICAgICBpZiAo aSAlIDIgPT0gMCkNCisgICAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorICAgIH0NCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVsw LTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xNi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTE2LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uZGE3MTBiMTdmN2YNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0xNi5jDQpAQCAtMCwwICsxLDIy IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQordmZs b2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZs b2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0K K3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwp Ow0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3Ax LCByZXN1bHQsIDIsIHZsKTsNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICByZXR1cm4gcmVz dWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypb ZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt XHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlc cytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMTcuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0xNy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLjQzZjI1MTc5YWJhDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMTcuYw0KQEAgLTAsMCArMSwyMiBAQA0KKy8qIHsgZGct ZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2lu Y2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rl c3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEs IHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQz Mm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2 bCk7DQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChv cDEsIHJlc3VsdCwgMywgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAt OV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11b MC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTE4LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTguYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lNzI1 ODI1NDUyOQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTE4LmMNCkBAIC0wLDAgKzEsMjUgQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCINCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0 X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICBpZiAodmwgJSA0ID09 IDApDQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0o b3AxLCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICByZXR1 cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTld KyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMTkuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0xOS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmMwMTYxYTFiYTM2DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMTkuYw0KQEAgLTAsMCArMSwyNSBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2 ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisNCisg IGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisNCisgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0ob3AxLCByZXN1bHQsIDIsIHZs KTsNCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlsw LTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytb YXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1p XHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19 IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMDAuLjlmOGFjOTlmMjk0DQotLS0gL2Rldi9u dWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMi5jDQpAQCAtMCwwICsx LDIwIEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZs KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9w MiwgMSwgdmwpOw0KKw0KKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhz XVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yMC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTIwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uOWU3NWI3OTcyMmUNCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yMC5jDQpAQCAtMCwwICsx LDI3IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZs KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwg dmwpOw0KKw0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtKG9wMSwgcmVzdWx0LCAyLCB2bCk7 DQorICBlbHNlDQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0ob3AyLCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQor ICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMq dlswLTldKyxccypbZmF2XStbMC05XSt9IDUgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05 XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIz NF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjEuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0yMS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLmFlYzU2NDI3MzcxDQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjEuYw0KQEAgLTAsMCArMSwyNyBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9 ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZmbG9h dDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9h dDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7 DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsN CisNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybShvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyAg ZWxzZQ0KKyAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt KG9wMiwgcmVzdWx0LCAzLCB2bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSA1IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTIyLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMjIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi44M2JjMjZhOGQ3OA0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTIyLmMNCkBAIC0wLDAgKzEsMjUgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAg dmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQor ICBpZiAodmwgJSA0ID09IDApDQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0ob3AxLCByZXN1bHQsIDQsIHZsKTsNCisgIGVsc2UN CisgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybShvcDIs IHJlc3VsdCwgMywgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTIzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjMuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lN2M1MWVh ODc0ZQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTIzLmMNCkBAIC0wLDAgKzEsMjUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3Vs dCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICBpZiAodmwgJSA0ID09IDAp DQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwg cmVzdWx0LCB2bCk7DQorICBlbHNlDQorICAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0ob3AyLCByZXN1bHQsIDMsIHZsKTsNCisNCisg IHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0 XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTI0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uNDZhYzhlMDIyMTUNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0yNC5jDQpAQCAtMCwwICsxLDEzIEBA DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3ZvaWQNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3QgKm91dCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6 ZV90IHZsKQ0KK3sNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1swMTIzNF19IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge2Zzcm1ccytbYXhzXVswLTldK30gfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1th eHNdWzAtOV0rfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMjUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yNS5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmI3MGY1MzFhMjRj DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjUu Yw0KQEAgLTAsMCArMSwyOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3ZvaWQNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXpl X3QgdmwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg Km91dCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMSAob3AxLCBvcDIsIHZsKTsNCisNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCA0LCB2bCk7DQorICAgICAg Kih2ZmxvYXQzMm0xX3QgKikgb3V0ID0gcmVzdWx0Ow0KKyAgICB9DQorICBl bHNlDQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDIsIHJlc3VsdCwgMywgdmwpOw0KKyAgICAgICoodmZs b2F0MzJtMV90ICopIG91dCA9IHJlc3VsdDsNCisgICAgfQ0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52 W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMjYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0yNi5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjc4YjI5NDZiOWZi DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjYu Yw0KQEAgLTAsMCArMSwyMyBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3ZvaWQNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXpl X3QgdmwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQg Km91dCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMSAob3AxLCBvcDIsIHZsKTsNCisNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCA0LCB2bCk7DQorICAgICAg Kih2ZmxvYXQzMm0xX3QgKikgb3V0ID0gcmVzdWx0Ow0KKyAgICB9DQorfQ0K Kw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZh ZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTld K30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVsw LTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAt OV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0yNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTI3LmMNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNGRiYTY4 MDQwZTINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0yNy5jDQpAQCAtMCwwICsxLDMwIEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJp PWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlz Y3ZfdmVjdG9yLmgiDQorDQordm9pZA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IHNpemVfdCB2bCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm bG9hdCAqb3V0KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7 DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEs IHJlc3VsdCwgdmwpOw0KKw0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICB7 DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3Ax LCByZXN1bHQsIHZsKTsNCisgICAgICAqKHZmbG9hdDMybTFfdCAqKSBvdXQg PSByZXN1bHQ7DQorICAgIH0NCisgIGVsc2UNCisgICAgew0KKyAgICAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMiwgcmVzdWx0LCB2 bCk7DQorICAgICAgKih2ZmxvYXQzMm0xX3QgKikgKG91dCArIDE2KSA9IHJl c3VsdDsNCisgICAgfQ0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0 XX0gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnNybVxzK1theHNdWzAtOV0rfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMjguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0y OC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LjM1YTM3YjgzMjM5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMjguYw0KQEAgLTAsMCArMSwzMCBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj diAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZvaWQNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLCBzaXplX3QgdmwsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmxvYXQgKm91dCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0 ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MSAob3AxLCByZXN1bHQsIHZsKTsNCisNCisgIGlmICh2bCAlIDQgPT0gMCkN CisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKG9wMSwgcmVzdWx0LCA0LCB2bCk7DQorICAgICAgKih2ZmxvYXQz Mm0xX3QgKikgb3V0ID0gcmVzdWx0Ow0KKyAgICB9DQorICBlbHNlDQorICAg IHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChvcDIsIHJlc3VsdCwgMywgdmwpOw0KKyAgICAgICoodmZsb2F0MzJtMV90 ICopIChvdXQgKyAxNikgPSByZXN1bHQ7DQorICAgIH0NCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTI5LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMjkuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lMjRjMjA0NWY0Mw0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTI5LmMN CkBAIC0wLDAgKzEsMjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCit2b2lkDQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2Zy bSAoZmxvYXQgKmluLCBmbG9hdCAqb3V0LCBpbnQgbiwgc2l6ZV90IHZsKQ0K K3sNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQ0KKyAgICB7DQor ICAgICAgdmZsb2F0MzJtMV90IHYgPSBfX3Jpc2N2X3ZsZTMyX3ZfZjMybTEg KGluICsgaSwgdmwpOw0KKyAgICAgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtICh2LCB2LCA0LCB2bCk7DQorICAg ICAgX19yaXNjdl92c2UzMl92X2YzMm0xIChvdXQgKyBpLCByZXN1bHQsIHZs KTsNCisgICAgfQ0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKysp DQorICAgIHsNCisgICAgICB2ZmxvYXQzMm0xX3QgdiA9IF9fcmlzY3Zfdmxl MzJfdl9mMzJtMSAoaW4gKyBpICsgMTAwLCB2bCk7DQorICAgICAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHYs IHYsIDMsIHZsKTsNCisgICAgICBfX3Jpc2N2X3ZzZTMyX3ZfZjMybTEgKG91 dCArIGkgKyAxMDAsIHJlc3VsdCwgdmwpOw0KKyAgICB9DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMy5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjYwMGFjNDViYjAzDQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMy5jDQpA QCAtMCwwICsxLDIxIEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9y LmgiDQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwg c2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7 DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChy ZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0g MiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTMwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uYmY1NzcyMDczZjcNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0zMC5jDQpAQCAtMCwwICsxLDMwIEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQordm9pZA0KK3Rl c3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKGZsb2F0ICppbiwgZmxvYXQg Km91dCwgaW50IG4sIGludCBjb25kLCBzaXplX3QgdmwpDQorew0KKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBuOyBpKyspDQorICAgIHsNCisgICAgICBpZiAo Y29uZCkNCisgICAgICAgIHsNCisgICAgICAgICAgdmZsb2F0MzJtMV90IHYg PSBfX3Jpc2N2X3ZsZTMyX3ZfZjMybTEgKGluICsgaSArIDEwMCwgdmwpOw0K KyAgICAgICAgICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAodiwgdiwgMywgdmwpOw0KKyAgICAgICAgICBfX3Jp c2N2X3ZzZTMyX3ZfZjMybTEgKG91dCArIGkgKyAxMDAsIHJlc3VsdCwgdmwp Ow0KKyAgICAgICAgfQ0KKyAgICAgIGVsc2UNCisgICAgICAgIHsNCisgICAg ICAgICAgdmZsb2F0MzJtMV90IHYgPSBfX3Jpc2N2X3ZsZTMyX3ZfZjMybTEg KGluICsgaSArIDIwMCwgdmwpOw0KKyAgICAgICAgICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAodiwgdiwgMywg dmwpOw0KKyAgICAgICAgICBfX3Jpc2N2X3ZzZTMyX3ZfZjMybTEgKG91dCAr IGkgKyAyMDAsIHJlc3VsdCwgdmwpOw0KKyAgICAgICAgfQ0KKyAgICB9DQor fQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1sw LTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhz XVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNd WzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0zMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMxLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNjRh MGM4Y2QyYjANCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0zMS5jDQpAQCAtMCwwICsxLDI5IEBADQorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1t YWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAi cmlzY3ZfdmVjdG9yLmgiDQorDQordm9pZA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsIHNpemVfdCB2bCwNCisgICAgICAgaW50IG4sIGZsb2F0ICpvdXQpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTEgKG9wMSwgb3AyLCB2bCk7DQorDQorICBpZiAodmwgJSA0ID09IDAp DQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChvcDEsIHJlc3VsdCwgNCwgdmwpOw0KKyAgICAgICoodmZsb2F0 MzJtMV90ICopIG91dCA9IHJlc3VsdDsNCisgICAgfQ0KKw0KKyAgaWYgKG4g PiAwKQ0KKyAgICB7DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAob3AyLCByZXN1bHQsIHZsKTsNCisgICAgICAqKHZmbG9hdDMy bTFfdCAqKSAob3V0ICsgMTAwKSA9IHJlc3VsdDsNCisgICAgfQ0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMi5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmEyNGZmZDc5 OWZkDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t MzIuYw0KQEAgLTAsMCArMSwyNSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK3NpemVfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IGludCBjb3VudCwNCisgICAgICAgICBzaXplX3QgdmwsIGZsb2F0ICpvdXQp DQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGlm IChjb3VudCA9PSAwKQ0KKyAgICB7DQorICAgICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisg ICAgICAqKHZmbG9hdDMybTFfdCAqKSBvdXQgPSByZXN1bHQ7DQorICAgIH0N CisNCisgIHJldHVybiB2bDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS00LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uYWFmOTEyZTA5MjMNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00LmMNCkBAIC0wLDAgKzEsMjEgQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAq Lw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCit2ZmxvYXQz Mm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQz Mm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0K KyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MV9ybSAocmVzdWx0LCBvcDIsIDIsIHZsKTsNCisNCisgIHJldHVybiByZXN1 bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltm YXZdK1swLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1c cytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxz K1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LjkxNDkzODhiZWExDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNS5jDQpAQCAtMCwwICsxLDIxIEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICBpZiAodmwgJSA0ID09IDApDQorICAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3Ay LCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxz K3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlc cytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1ccytbYXhzXVswLTldK30gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAwLi4xNTQxZGU4ODk3OQ0KLS0tIC9kZXYvbnVsbA0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTYuYw0KQEAgLTAsMCArMSwyNyBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICov DQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZmbG9hdDMy bTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMy bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgIGludCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQor ICAgIHsNCisgICAgICBpZiAoaSAlIDIgPT0gMCkNCisgICAgICAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAy LCB2bCk7DQorICAgICAgZWxzZQ0KKyAgICAgICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisg ICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxz K1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0 XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS03LmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNmYyNDMxN2M1MWENCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03LmMNCkBAIC0wLDAg KzEsMjcgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGct b3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1w c2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisN Cit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJt ICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAg ICBpbnQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3Vu dDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAyID09IDApDQorICAg ICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1 bHQsIG9wMiwgNCwgdmwpOw0KKyAgICAgIGVsc2UNCisgICAgICAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7 DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZd XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zy cm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlsw MTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS04LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tOC5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmE0ODQ2YjA1YWI2DQotLS0g L2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tOC5jDQpAQCAt MCwwICsxLDI2IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1X bm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWlj X2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisg ICAgICAgaW50IGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJt MV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwg Y291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQorICAg ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0 LCBvcDIsIDIsIHZsKTsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKyAgICB9DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSss XHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2FzeF1b MC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2FzeF1b MC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbYXN4XVswLTldKyxccypbMDEyMzRdfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tOS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi5jZmI4ZmNhMDhhNw0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTkuYw0KQEAgLTAsMCArMSwyNiBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9 ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZmbG9h dDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9h dDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgIGludCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKysp DQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyAgICAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQor ICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVz dWx0LCBvcDIsIDMsIHZsKTsNCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3Vs dDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zh dl0rWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxz K1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMr W2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWZybS1pbnNlcnQtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtMS5j DQppbmRleCA3MzJlMDMwNWEzZC4uNjA4YjM4ODNkZDAgMTAwNjQ0DQotLS0g YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLWluc2VydC0xLmMNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5z ZXJ0LTEuYw0KQEAgLTI4LDQgKzI4LDYgQEAgdGVzdF92ZmFkZF92Zl9mMzJt MV9tX3JtKHZib29sMzJfdCBtYXNrLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9h dDMyX3Qgb3AyLA0KfQ0KLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theF1bMC05XSssXHMqW2F4XVsw LTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gNCB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC0xMC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1p bnNlcnQtMTAuYw0KaW5kZXggYzQ2OTEwYjg3OGMuLjMyNTJmNjdkMDc4IDEw MDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtMTAuYw0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1pbnNlcnQtMTAuYw0KQEAgLTIwLDQgKzIwLDYgQEAgdGVzdF9m bG9hdF9wb2ludF9mcm1fc3RhdGljIChmbG9hdCAqb3V0LCB2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KfQ0KLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theF1b MC05XSssXHMqW2F4XVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0g MiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC0yLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLWluc2VydC0yLmMNCmluZGV4IDcyZTVkMjA4NGIzLi45 NmUxMGM3MjBiOCAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTIu Yw0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtMi5jDQpAQCAtMTEsNCArMTEs NiBAQCB0ZXN0X2Zsb2F0X3BvaW50X2ZybV9pbnNlcnQgKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkgew0KfQ0KLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudnZc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqditbMC05XSt9IDIgfSB9ICovDQot LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4XVswLTldKyxccypbYXhdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAxIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0 LTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTMuYw0KaW5kZXggYzllOGQwYTZl YWYuLjUxOTUzN2MwN2NiIDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNl cnQtMy5jDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC0zLmMNCkBAIC0xMSw0 ICsxMSw2IEBAIHRlc3RfZmxvYXRfcG9pbnRfZnJtX2luc2VydCAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKSB7DQp9 DQovKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxccyp2K1swLTldK30gMiB9IH0g Ki8NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zz cm1ccytbYXhdWzAtOV0rLFxzKltheF1bMC05XSt9IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4 c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxz K1swMTIzNF19IDIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1p bnNlcnQtNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNC5jDQppbmRleCBhMjg4 ZTBiZTYyOC4uZjllNmJjMzZhOTAgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJt LWluc2VydC00LmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTQuYw0KQEAg LTIwLDQgKzIwLDYgQEAgdGVzdF9mbG9hdF9wb2ludF9mcm1faW5zZXJ0ICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgdmws DQp9DQovKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxccyp2K1swLTldK30gNCB9 IH0gKi8NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1ccytbYXhdWzAtOV0rLFxzKltheF1bMC05XSt9IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt aVxzK1swMTIzNF19IDEgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZy bS1pbnNlcnQtNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNS5jDQppbmRleCBi Yjc3YTZlZmM2Mi4uYzNmNjMwMjM4NGEgMTAwNjQ0DQotLS0gYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZnJtLWluc2VydC01LmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTUuYw0K QEAgLTIwLDQgKzIwLDYgQEAgdGVzdF9mbG9hdF9wb2ludF9mcm1faW5zZXJ0 ICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qg dmwsDQp9DQovKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZmYWRkXC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxccyp2K1swLTldK30g NCB9IH0gKi8NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhdWzAtOV0rLFxzKltheF1bMC05XSt9IDMgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt XHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDMgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1pbnNlcnQtNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNi5jDQppbmRl eCA2ZDg5NmUwOTUzZS4uMWVmMGUwMTVkOGYgMTAwNjQ0DQotLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZnJtLWluc2VydC02LmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTYu Yw0KQEAgLTI4LDQgKzI4LDYgQEAgdGVzdF92ZmFkZF92Zl9mMzJtMV9tX3Jt KHZib29sMzJfdCBtYXNrLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdDMyX3Qg b3AyLA0KfQ0KLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSA0IH0gfSAqLw0KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1ccytbYXhdWzAtOV0rLFxzKltheF1bMC05XSt9IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1ccytbYXhzXVswLTldK30gfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxz K1swMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5z ZXJ0LTcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYw0KaW5kZXggN2IxNjAy ZmQ1MDkuLjEyZGIxMTJkZDBiIDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1p bnNlcnQtNy5jDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMNCkBAIC0y Niw0ICsyNiw2IEBAIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3N0YXRpYyAoZmxv YXQgKm91dCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN Cn0NCi8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZh ZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTld K30gMiB9IH0gKi8NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhdWzAtOV0rLFxzKltheF1bMC05XSt9IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1pbnNlcnQtOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtOC5jDQpp bmRleCAzNzQ4MWRkYWMzOC4uY2M4M2RhZTRlOTUgMTAwNjQ0DQotLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC04LmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0 LTguYw0KQEAgLTI0LDQgKzI0LDYgQEAgdGVzdF9mbG9hdF9wb2ludF9mcm1f c3RhdGljIChmbG9hdCAqb3V0LCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLA0KfQ0KLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSAxIH0gfSAqLw0KLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theF1bMC05XSssXHMqW2F4XVsw LTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC05LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWlu c2VydC05LmMNCmluZGV4IDdhZTgzNGFkNTMxLi4zYjY1MGVjMjk0OCAxMDA2 NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTkuYw0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1pbnNlcnQtOS5jDQpAQCAtMjEsNCArMjEsNiBAQCB0ZXN0X2Zsb2F0 X3BvaW50X2ZybV9zdGF0aWMgKGZsb2F0ICpvdXQsIHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsDQp9DQovKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMq dlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQotLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4XVswLTld KyxccypbYXhdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAzIH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTEuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1mcm0tcnVuLTEuYw0KaW5kZXggMjEwYzQ5YzVlOGQuLjI0NWNlN2QxZmMw IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tMS5jDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZnJtLXJ1bi0xLmMNCkBAIC00NCw4ICs0NCw2IEBAIGFzc2VydF9lcXVh bCAoaW50IGEsIGludCBiLCBjaGFyICptZXNzYWdlKQ0KdmZsb2F0MzJtMV90 IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQp0ZXN0X2Zsb2F0X3BvaW50 X2ZybV9ydW4gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IHNpemVfdCB2bCkNCnsNCi0gIHNldF9mcm0gKDApOw0KLQ0KICAgdmZsb2F0 MzJtMV90IHJlc3VsdDsNCiAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAxLCB2bCk7DQpAQCAtNzMsNyArNzEs MTAgQEAgbWFpbiAoKQ0KICAgdmZsb2F0MzJtMV90IG9wMTsNCiAgIHZmbG9h dDMybTFfdCBvcDI7DQorICBzZXRfZnJtICg0KTsNCiAgIHRlc3RfZmxvYXRf cG9pbnRfZnJtX3J1biAob3AxLCBvcDIsIHZsKTsNCisgIGFzc2VydF9lcXVh bCAoNCwgZ2V0X2ZybSAoKSwgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0ZXIg c2hvdWxkIGJlIDQuIik7DQorDQogICByZXR1cm4gMDsNCn0NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLXJ1bi0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi0yLmMN CmluZGV4IGE3MDM2NTI5Y2YyLi5lYzRjYzI2MTM1ZCAxMDA2NDQNCi0tLSBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1mcm0tcnVuLTIuYw0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tMi5j DQpAQCAtNDQsOCArNDQsNiBAQCBhc3NlcnRfZXF1YWwgKGludCBhLCBpbnQg YiwgY2hhciAqbWVzc2FnZSkNCnZmbG9hdDMybTFfdCBfX2F0dHJpYnV0ZV9f ICgobm9pbmxpbmUpKQ0KdGVzdF9mbG9hdF9wb2ludF9mcm1fcnVuICh2Zmxv YXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQp7 DQotICBzZXRfZnJtICgwKTsNCi0NCiAgIHZmbG9hdDMybTFfdCByZXN1bHQg PSB7fTsNCiAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KG9wMSwgcmVzdWx0LCAxLCB2bCk7DQpAQCAtNjQsNyArNjIsMTAgQEAgbWFp biAoKQ0KICAgdmZsb2F0MzJtMV90IG9wMSA9IHt9Ow0KICAgdmZsb2F0MzJt MV90IG9wMiA9IHt9Ow0KKyAgc2V0X2ZybSAoMik7DQogICB0ZXN0X2Zsb2F0 X3BvaW50X2ZybV9ydW4gKG9wMSwgb3AyLCB2bCk7DQorICBhc3NlcnRfZXF1 YWwgKDIsIGdldF9mcm0gKCksICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVy IHNob3VsZCBiZSAyLiIpOw0KKw0KICAgcmV0dXJuIDA7DQp9DQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWZybS1ydW4tMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tMy5j DQppbmRleCA2OTI0YmRmNmEwNS4uMzJlZDY5NjJkYzkgMTAwNjQ0DQotLS0g YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLXJ1bi0zLmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTMu Yw0KQEAgLTQ0LDE3ICs0NCwxNSBAQCBhc3NlcnRfZXF1YWwgKGludCBhLCBp bnQgYiwgY2hhciAqbWVzc2FnZSkNCnZmbG9hdDMybTFfdCBfX2F0dHJpYnV0 ZV9fICgobm9pbmxpbmUpKQ0KdGVzdF9mbG9hdF9wb2ludF9mcm1fcnVuICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgdmwp DQp7DQotICBzZXRfZnJtICgwKTsNCi0NCiAgIHZmbG9hdDMybTFfdCByZXN1 bHQgPSB7fTsNCiAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKG9wMSwgcmVzdWx0LCA0LCB2bCk7DQorICBhc3NlcnRfZXF1YWwgKDQs IGdldF9mcm0gKCksICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVyIHNob3Vs ZCBiZSA0LiIpOw0KKw0KICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCiAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQotICBhc3NlcnRf ZXF1YWwgKDQsIGdldF9mcm0gKCksICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lz dGVyIHNob3VsZCBiZSA0LiIpOw0KLQ0KICAgcmV0dXJuIHJlc3VsdDsNCn0N CkBAIC02NSw3ICs2MywxMCBAQCBtYWluICgpDQogICB2ZmxvYXQzMm0xX3Qg b3AxID0ge307DQogICB2ZmxvYXQzMm0xX3Qgb3AyID0ge307DQorICBzZXRf ZnJtICgwKTsNCiAgIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAob3AxLCBv cDIsIHZsKTsNCisgIGFzc2VydF9lcXVhbCAoMCwgZ2V0X2ZybSAoKSwgIlRo ZSB2YWx1ZSBvZiBmcm0gcmVnaXN0ZXIgc2hvdWxkIGJlIDAuIik7DQorDQog ICByZXR1cm4gMDsNCn0NCi0tIA0KMi4zNC4xDQogDQogDQo= ------=_001_NextPart140771142573_=------