From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) by sourceware.org (Postfix) with ESMTPS id 27A17385AFA2 for ; Thu, 20 Jul 2023 06:47:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 27A17385AFA2 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: bizesmtp65t1689835641ts2jmic9 Received: from LAPTOP-EPITNQBU ( [113.104.214.112]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 20 Jul 2023 14:47:20 +0800 (CST) X-QQ-SSF: 01400000000000G0U000000A0000000 X-QQ-FEAT: W+onFc5Tw4OxK0sQvtpxQNqv/sW9j6XDgxk0GkKHYvi/rS6Guiwu2BdWHGDyL 5lydYtplK62TUT4BjOuj1FmCHgbxqhc10zo2OfljwYL4sIuaE5jOdvk7SbAI8B6YGY+fLXz YwS6PsiZMu0/EyOrT2hfkHxom8YQzLEAo74JK+LW3SeAWblEq6+XRnErR2LmdF0uZ24JG0o er/69yYUKgWGfOEtFwa+OkiWJ9dCmpwYp15M/HTEYYa6S6EUeUrzrkRIjijbg80bHIhAXBq ygMrkoYL8GJtmF6DURpEFNgWJ5OTlTFW+v4BUiMzde/cQS/9iEBCVnnn6L9FhQ5WmSeIV9/ K9i+J0NAFws7F2WkfpY3c+1Ql5Fjp6jkuChUBiGdWL08Kp0xVCrj1W0Cg5rME7++iYr6Bto c1G102XgIEs68wT91xJYgh7ribLTOSZi X-QQ-GoodBg: 2 X-BIZMAIL-ID: 11280050089094407330 Date: Thu, 20 Jul 2023 14:47:20 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: Kito.cheng , pan2.li , yanzhang.wang , jeffreyalaw , "Robin Dapp" Subject: Re: [PATCH v4] RISC-V: Support CALL for RVV floating-point dynamic rounding References: <20230719032822.85817-1-pan2.li@intel.com>, <20230720064307.1943091-1-pan2.li@intel.com> X-Priority: 3 X-GUID: DDFA79F8-5954-4871-9630-2889891EB16F X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <6FBF8DC5520A3CFE+202307201447196207923@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart600302001364_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.8 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,URIBL_BLACK 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_NextPart600302001364_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 TEdUTSBmcm9tIG15IHNpZGUgYnV0IHBseiB3YWl0IGZvciBjb21tZW50cyBm cm9tIG90aGVyIHJldmlld2Vycy4NCg0KDQoNCmp1emhlLnpob25nQHJpdmFp LmFpDQogDQpGcm9tOiBwYW4yLmxpDQpEYXRlOiAyMDIzLTA3LTIwIDE0OjQz DQpUbzogZ2NjLXBhdGNoZXMNCkNDOiBqdXpoZS56aG9uZzsga2l0by5jaGVu ZzsgcGFuMi5saTsgeWFuemhhbmcud2FuZw0KU3ViamVjdDogW1BBVENIIHY0 XSBSSVNDLVY6IFN1cHBvcnQgQ0FMTCBmb3IgUlZWIGZsb2F0aW5nLXBvaW50 IGR5bmFtaWMgcm91bmRpbmcNCkZyb206IFBhbiBMaSA8cGFuMi5saUBpbnRl bC5jb20+DQogDQpJbiBiYXNpYyBkeW5hbWljIHJvdW5kaW5nIG1vZGUsIHdl IHNpbXBseSBpZ25vcmUgY2FsbCBpbnN0cnVjdGlvbnMgYW5kDQp3ZSB3b3Vs ZCBsaWtlIHRvIHRha2UgY2FyZSBvZiBjYWxsIGluIHRoaXMgUEFUQ0guDQog DQpEdXJpbmcgdGhlIGNhbGwsIHRoZSBmcm0gbWF5IGJlIHVwZGF0ZWQgb3Ig a2VlcCBhcyBpcy4gVGh1cywgd2UgbXVzdA0KbWFrZSBzdXJlIGF0IGxlYXN0 IDIgdGhpbmdzLg0KIA0KMS4gVGhlIHN0YXRpYyBmcm0gYmVmb3JlIGNhbGwg c2hvdWxkIG5vdCBwb2xsdXRlIHRoZSBmcm0gdmFsdWUgaW4gY2FsbC4NCjIu IFRoZSB1cGRhdGVkIGZybSB2YWx1ZSBpbiBjYWxsIHNob3VsZCBiZSBzdGlj a3kgYWZ0ZXIgY2FsbCBjb21wbGV0ZWQuDQogDQpXZSB3aWxsIHBlcmZyb20g c29tZSBzdGVwcyB0byBtYWtlIGFib3ZlIGhhcHBlbi4NCiANCjEuIE1hcmsg Y2FsbCBpbnN0cnVjdGlvbiB3aXRoIG5ldyBtb2RlIERZTl9DQUxMLg0KMi4g TWFyayB0aGUgaW5zdHJ1Y3Rpb24gYWZ0ZXIgQ0FMTCBmcm9tIE5PTkUgdG8g RFlOLg0KMy4gV2hlbiBlbWl0IGZvciBhIERZTl9DQUxMLCB3ZSB3aWxsIHJl c3RvcmUgdGhlIGZybSB2YWx1ZS4NCjQuIFdoZW4gZW1pdCBmcm9tIGEgRFlO X0NBTEwsIHdlIHdpbGwgYmFja3VwIHRoZSBmcm0gdmFsdWUuDQogDQpMZXQn cyB0YWtlIGEgZmxvdyBmb3IgdGhpcy4NCiANCiAgICAgICAgICAgKy0tLS0t LS0tLS0tLS0rDQogICAgICAgICAgIHwgRW50cnkgKERZTikgfCA8LSBmcnJt IGE1DQogICAgICAgICAgICstLS0tLS0tLS0tLS0tKw0KICAgICAgICAgIC8g ICAgICAgICAgICAgICBcDQogICAgKy0tLS0tLS0rICAgICAgICAgICAgICst LS0tLS0tLS0tLSsNCiAgICB8IFZGQUREIHwgICAgICAgICAgICAgfCBWRkFE RCBSVFogfCAgPC0gZnNybWkgMShSVFopDQogICAgKy0tLS0tLS0rICAgICAg ICAgICAgICstLS0tLS0tLS0tLSsNCiAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICB8DQogICAgKy0tLS0tLS0rICAgICAgICAgICAgICstLS0tLS0t LS0tLSsNCiAgICB8IENBTEwgIHwgICAgICAgICAgICAgfCBDQUxMICAgICAg fCAgPC0gZnNybSBhNQ0KICAgICstLS0tLS0tKyAgICAgICAgICAgICArLS0t LS0tLS0tLS0rDQogICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fA0KKy0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICAgKy0tLS0tLS0rDQp8 IFNISUZUICAgICB8IDwtIGZycm0gYTUgICAgICB8IFZGQUREIHwgIDwtIGZy cm0gYTUNCistLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAgICstLS0tLS0t Kw0KICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAvDQorLS0tLS0tLS0t LS0rICAgICAgICAgICAgICAgLw0KfCBWRkFERCBSVVAgfCA8LSBmc3JtMSAz KFJVUCkNCistLS0tLS0tLS0tLSsgICAgICAgICAgICAgLw0KICAgICAgICAg ICBcICAgICAgICAgICAgIC8NCiAgICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLSsNCiAgICAgICAgICAgIHwgRXhpdCAoRFlOX0VYSVQpIHwgPC0gZnNy bSBhNQ0KICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0KIA0KUGxl YXNlICpOT1RFKiBzb21lIGNvcm4gY2FzZXMgbGlrZSBubyBpbnN0cnVjdGlv biBhZnRlciBhIGNhbGwgaXMgbm90DQp3ZWxsIGhhbmRsZWQsIGFuZCB3aWxs IGJlIGNvdmVycmVkIGluIGFub3RoZXIgUEFUQ0gocykgc29vbi4NCiANClNp Z25lZC1vZmYtYnk6IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQpDby1B dXRob3JlZC1CeTogSnV6aGUtWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFp Pg0KIA0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2 LmNjIChEWU5BTUlDX0ZSTV9SVEwpOiBOZXcgbWFjcm8uDQooU1RBVElDX0ZS TV9QKTogRGl0dG8uDQooc3RydWN0IG1vZGVfc3dpdGNoaW5nX2luZm8pOiBO ZXcgc3RydWN0IGZvciBtb2RlIHN3aXRjaGluZy4NCihzdHJ1Y3QgbWFjaGlu ZV9mdW5jdGlvbik6IEFkZCBuZXcgZmllbGQgbW9kZSBzd2l0Y2hpbmcuDQoo cmlzY3ZfZW1pdF9mcm1fbW9kZV9zZXQpOiBBZGQgRFlOX0NBTEwgZW1pdC4N CihyaXNjdl9mcm1fbW9kZV9uZWVkZWQpOiBOZXcgZnVuY3Rpb24gZm9yIGZy bSBtb2RlIG5lZWRlZC4NCihyaXNjdl9tb2RlX25lZWRlZCk6IEV4dHJhYyBm dW5jdGlvbiBmb3IgZnJtLg0KKHJpc2N2X2ZybV9tb2RlX2FmdGVyKTogQWRk IERZTl9DQUxMIGFmdGVyLg0KKiBjb25maWcvcmlzY3YvdmVjdG9yLm1kIChm cm1fbW9kZSk6IEFkZCBkeW5fY2FsbC4NCihmc3Jtc2lfcmVzdG9yZV9leGl0 KTogUmVuYW1lIHRvIF92b2xhdGlsZS4NCihmc3Jtc2lfcmVzdG9yZV92b2xh dGlsZSk6IExpa2V3aXNlLg0KIA0KZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 DQogDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZnJtLWluc2VydC03LmM6IEFkanVzdA0KdGVzdCBjYXNlcy4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0z My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0zNC5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0zNS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNi5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0zNy5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOC5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zOS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS00MS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jOiBOZXcg dGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS00My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NC5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00NS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Ni5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS00Ny5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 OC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00OS5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS01MC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS01Mi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01My5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01NC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS01Ni5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5jOiBOZXcg dGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS01OC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OS5jOiBO ZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS02MC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MS5j OiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS02Mi5jOiBOZXcgdGVzdC4NCiogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02 My5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jOiBOZXcgdGVzdC4NCiogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS02NS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ni5jOiBOZXcgdGVzdC4NCiog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02Ny5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02OC5jOiBOZXcgdGVzdC4N CiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02OS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MC5jOiBOZXcgdGVz dC4NCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS03MS5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQuYzogTmV3IHRlc3Qu DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJt LXJ1bi01LmM6IE5ldyB0ZXN0Lg0KLS0tDQpnY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LmNjICAgICAgICAgICAgICAgICAgICAgfCAxMDAgKysrKysrKysrKysr KysrKy0tDQpnY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCAgICAgICAgICAg ICAgICAgICAgfCAgIDQgKy0NCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zMy5jICAgICB8ICAzMSArKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNC5jICAgICB8ICAzMiArKysr KysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNS5j ICAgICB8ICAzMiArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNi5jICAgICB8ICAyOSArKysrKw0KLi4uL3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3LmMgICAgIHwgIDM2ICsrKysr KysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOC5j ICAgICB8ICAzNCArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zOS5jICAgICB8ICAzNiArKysrKysrDQouLi4vcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDAuYyAgICAgfCAgMzQgKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEu YyAgICAgfCAgMzcgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQyLmMgICAgIHwgIDM3ICsrKysrKysNCi4uLi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00My5jICAgICB8ICAzOCAr KysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDQuYyAgICAgfCAgNDAgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ1LmMgICAgIHwgIDM1ICsrKysrKw0KLi4uL3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmMgICAgIHwgIDM1 ICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ3LmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00OC5jICAgICB8ICAzNiArKysrKysrDQouLi4v cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDkuYyAgICAgfCAg MzYgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTUwLmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01MS5jICAgICB8ICAzNiArKysrKysrDQou Li4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTIuYyAgICAg fCAgMzYgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUzLmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01NC5jICAgICB8ICAzOCArKysrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTUuYyAg ICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTU2LmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5jICAgICB8ICAzOCArKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTgu YyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTU5LmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MC5jICAgICB8ICAzOCAr KysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjEuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTYyLmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02My5jICAgICB8ICAz OCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNjQuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTY1LmMgICAgIHwgIDM4ICsrKysrKysNCi4u Li9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ni5jICAgICB8 ICAzOCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNjcuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTY4LmMgICAgIHwgIDM4ICsrKysrKysN Ci4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02OS5jICAg ICB8ICAzMSArKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS03MC5jICAgICB8ICAyOCArKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTcxLmMgICAgIHwgIDI4ICsrKysrDQou Li4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMg fCAgIDUgKy0NCi4uLi9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0t cnVuLTQuYyAgICB8ICA4MiArKysrKysrKysrKysrKw0KLi4uL3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNS5jICAgIHwgIDgzICsrKysr KysrKysrKysrKw0KNDQgZmlsZXMgY2hhbmdlZCwgMTY1NyBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzMuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS0zNC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTM1LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMzYuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNy5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTM4LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzkuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00MC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTQxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS00My5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTQ0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00Ni5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ3LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDguYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 OS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUw LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTEu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Mi5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUzLmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTQuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTcuYw0KY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OC5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU5LmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjAuYw0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MS5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYyLmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjMuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1LmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjYuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jDQpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY4LmMNCmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS03MC5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTcxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZnJtLXJ1bi00LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZnJtLXJ1bi01LmMNCiANCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KaW5k ZXggMzMyZmE3MjBmMDEuLjVmZmQ4OTQ1YjZiIDEwMDY0NA0KLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5jYw0KQEAgLTkwLDYgKzkwLDEyIEBAIGFsb25nIHdpdGggR0ND OyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlDQovKiBUcnVl IGlmIGJpdCBCSVQgaXMgc2V0IGluIFZBTFVFLiAgKi8NCiNkZWZpbmUgQklU U0VUX1AoVkFMVUUsIEJJVCkgKCgoVkFMVUUpICYgKDFVTEwgPDwgKEJJVCkp KSAhPSAwKQ0KKy8qIEV4dHJhY3QgdGhlIGJhY2t1cCBkeW5hbWljIGZybSBy dGwuICAqLw0KKyNkZWZpbmUgRFlOQU1JQ19GUk1fUlRMKGMpICgoYyktPm1h Y2hpbmUtPm1vZGVfc3dfaW5mby5keW5hbWljX2ZybSkNCisNCisvKiBUcnVl IHRoZSBtb2RlIHN3aXRjaGluZyBoYXMgc3RhdGljIGZybSwgb3IgZmFsc2Uu ICAqLw0KKyNkZWZpbmUgU1RBVElDX0ZSTV9QKGMpICgoYyktPm1hY2hpbmUt Pm1vZGVfc3dfaW5mby5zdGF0aWNfZnJtX3ApDQorDQovKiBJbmZvcm1hdGlv biBhYm91dCBhIGZ1bmN0aW9uJ3MgZnJhbWUgbGF5b3V0LiAgKi8NCnN0cnVj dCBHVFkoKCkpICByaXNjdl9mcmFtZV9pbmZvIHsNCiAgIC8qIFRoZSBzaXpl IG9mIHRoZSBmcmFtZSBpbiBieXRlcy4gICovDQpAQCAtMTI1LDYgKzEzMSwy MiBAQCBlbnVtIHJpc2N2X3ByaXZpbGVnZV9sZXZlbHMgew0KICAgVU5LTk9X Tl9NT0RFLCBVU0VSX01PREUsIFNVUEVSVklTT1JfTU9ERSwgTUFDSElORV9N T0RFDQp9Ow0KK3N0cnVjdCBHVFkoKCkpIG1vZGVfc3dpdGNoaW5nX2luZm8g ew0KKyAgLyogVGhlIFJUTCB2YXJpYWJsZSB3aGljaCBzdG9yZXMgdGhlIGR5 bmFtaWMgRlJNIHZhbHVlLiAgV2UgYWx3YXlzIHVzZSB0aGlzDQorICAgICBS VFggdG8gcmVzdG9yZSBkeW5hbWljIEZSTSByb3VuZGluZyBtb2RlIGluIG1v ZGUgc3dpdGNoaW5nLiAgKi8NCisgIHJ0eCBkeW5hbWljX2ZybTsNCisNCisg IC8qIFRoZSBib29sZWFuIHZhcmlhYmxlcyBpbmRpY2F0ZXMgdGhlcmUgaXMg YXQgbGVhc3Qgb25lIHN0YXRpYyByb3VuZGluZw0KKyAgICAgbW9kZSBpbnN0 cnVjdGlvbiBpbiB0aGUgZnVuY3Rpb24gb3Igbm90LiAgKi8NCisgIGJvb2wg c3RhdGljX2ZybV9wOw0KKw0KKyAgbW9kZV9zd2l0Y2hpbmdfaW5mbyAoKQ0K KyAgICB7DQorICAgICAgZHluYW1pY19mcm0gPSBOVUxMX1JUWDsNCisgICAg ICBzdGF0aWNfZnJtX3AgPSBmYWxzZTsNCisgICAgfQ0KK307DQorDQpzdHJ1 Y3QgR1RZKCgpKSAgbWFjaGluZV9mdW5jdGlvbiB7DQogICAvKiBUaGUgbnVt YmVyIG9mIGV4dHJhIHN0YWNrIGJ5dGVzIHRha2VuIHVwIGJ5IHJlZ2lzdGVy IHZhcmFyZ3MuDQogICAgICBUaGlzIGFyZWEgaXMgYWxsb2NhdGVkIGJ5IHRo ZSBjYWxsZWUgYXQgdGhlIHZlcnkgdG9wIG9mIHRoZSBmcmFtZS4gICovDQpA QCAtMTQ4LDkgKzE3MCw3IEBAIHN0cnVjdCBHVFkoKCkpICBtYWNoaW5lX2Z1 bmN0aW9uIHsNCiAgICAgIG5vdCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBwcm9s b2d1ZSBhbmQgZXBpbG9ndWUuICAqLw0KICAgYm9vbCByZWdfaXNfd3JhcHBl ZF9zZXBhcmF0ZWx5W0ZJUlNUX1BTRVVET19SRUdJU1RFUl07DQotICAvKiBU aGUgUlRMIHZhcmlhYmxlIHdoaWNoIHN0b3JlcyB0aGUgZHluYW1pYyBGUk0g dmFsdWUuICBXZSBhbHdheXMgdXNlIHRoaXMNCi0gICAgIFJUWCB0byByZXN0 b3JlIGR5bmFtaWMgRlJNIHJvdW5kaW5nIG1vZGUgaW4gbW9kZSBzd2l0Y2hp bmcuICAqLw0KLSAgcnR4IGR5bmFtaWNfZnJtOw0KKyAgc3RydWN0IG1vZGVf c3dpdGNoaW5nX2luZm8gbW9kZV9zd19pbmZvOw0KfTsNCi8qIEluZm9ybWF0 aW9uIGFib3V0IGEgc2luZ2xlIGFyZ3VtZW50LiAgKi8NCkBAIC03NzA5LDkg Kzc3MjksMTMgQEAgcmlzY3Zfc3RhdGljX2ZybV9tb2RlX3AgKGludCBtb2Rl KQ0Kc3RhdGljIHZvaWQNCnJpc2N2X2VtaXRfZnJtX21vZGVfc2V0IChpbnQg bW9kZSwgaW50IHByZXZfbW9kZSkNCnsNCisgIHJ0eCBiYWNrdXBfcmVnID0g RFlOQU1JQ19GUk1fUlRMIChjZnVuKTsNCisNCisgIGlmIChwcmV2X21vZGUg PT0gRlJNX01PREVfRFlOX0NBTEwpDQorICAgIGVtaXRfaW5zbiAoZ2VuX2Zy cm1zaSAoYmFja3VwX3JlZykpOyAvKiBCYWNrdXAgZnJtIHdoZW4gRFlOX0NB TEwuICAqLw0KKw0KICAgaWYgKG1vZGUgIT0gcHJldl9tb2RlKQ0KICAgICB7 DQotICAgICAgcnR4IGJhY2t1cF9yZWcgPSBjZnVuLT5tYWNoaW5lLT5keW5h bWljX2ZybTsNCiAgICAgICAvKiBUT0RPOiBCeSBkZXNpZ24sIEZSTV9NT0RF X3h4eCB1c2VkIGJ5IG1vZGUgc3dpdGNoIHdoaWNoIGlzDQpkaWZmZXJlbnQg ZnJvbSB0aGUgRlJNIHZhbHVlIGxpa2UgRlJNX1JUWiBkZWZpbmVkIGluDQpy aXNjdi1wcm90b3MuaC4gIFdoZW4gbW9kZSBzd2l0Y2hpbmcgd2UgYWN0dWFs bHkgbmVlZCBhIGNvbnZlcnNpb24NCkBAIC03NzIxLDkgKzc3NDUsMTMgQEAg cmlzY3ZfZW1pdF9mcm1fbW9kZV9zZXQgKGludCBtb2RlLCBpbnQgcHJldl9t b2RlKQ0KYW5kIHRoZW4gd2UgbGV2ZXJhZ2UgdGhpcyBhc3N1bXB0aW9uIHdo ZW4gZW1pdC4gICovDQogICAgICAgcnR4IGZybSA9IGdlbl9pbnRfbW9kZSAo bW9kZSwgU0ltb2RlKTsNCi0gICAgICBpZiAobW9kZSA9PSBGUk1fTU9ERV9E WU5fRVhJVCAmJiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOKQ0KKyAgICAg IGlmIChtb2RlID09IEZSTV9NT0RFX0RZTl9DQUxMICYmIHByZXZfbW9kZSAh PSBGUk1fTU9ERV9EWU4pDQovKiBObyBuZWVkIHRvIGVtaXQgd2hlbiBwcmV2 IG1vZGUgaXMgRFlOIGFscmVhZHkuICAqLw0KLSBlbWl0X2luc24gKGdlbl9m c3Jtc2lfcmVzdG9yZV9leGl0IChiYWNrdXBfcmVnKSk7DQorIGVtaXRfaW5z biAoZ2VuX2Zzcm1zaV9yZXN0b3JlX3ZvbGF0aWxlIChiYWNrdXBfcmVnKSk7 DQorICAgICAgZWxzZSBpZiAobW9kZSA9PSBGUk1fTU9ERV9EWU5fRVhJVCAm JiBTVEFUSUNfRlJNX1AgKGNmdW4pDQorICYmIHByZXZfbW9kZSAhPSBGUk1f TU9ERV9EWU4gJiYgcHJldl9tb2RlICE9IEZSTV9NT0RFX0RZTl9DQUxMKQ0K KyAvKiBObyBuZWVkIHRvIGVtaXQgd2hlbiBwcmV2IG1vZGUgaXMgRFlOIG9y IERZTl9DQUxMIGFscmVhZHkuICAqLw0KKyBlbWl0X2luc24gKGdlbl9mc3Jt c2lfcmVzdG9yZV92b2xhdGlsZSAoYmFja3VwX3JlZykpOw0KICAgICAgIGVs c2UgaWYgKG1vZGUgPT0gRlJNX01PREVfRFlOKQ0KLyogUmVzdG9yZSBmcm0g dmFsdWUgZnJvbSBiYWNrdXAgd2hlbiBzd2l0Y2ggdG8gRFlOIG1vZGUuICAq Lw0KZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmUgKGJhY2t1cF9yZWcp KTsNCkBAIC03NzUzLDYgKzc3ODEsNTMgQEAgcmlzY3ZfZW1pdF9tb2RlX3Nl dCAoaW50IGVudGl0eSwgaW50IG1vZGUsIGludCBwcmV2X21vZGUsDQogICAg IH0NCn0NCisvKiBSZXR1cm4gbW9kZSB0aGF0IGZybSBtdXN0IGJlIHN3aXRj aGVkIGludG8NCisgICBwcmlvciB0byB0aGUgZXhlY3V0aW9uIG9mIGluc24u ICAqLw0KKw0KK3N0YXRpYyBpbnQNCityaXNjdl9mcm1fbW9kZV9uZWVkZWQg KHJ0eF9pbnNuICpjdXJfaW5zbiwgaW50IGNvZGUpDQorew0KKyAgaWYgKENB TExfUCAoY3VyX2luc24pKQ0KKyAgICByZXR1cm4gRlJNX01PREVfRFlOX0NB TEw7DQorDQorICBpbnQgbW9kZSA9IGNvZGUgPj0gMCA/IGdldF9hdHRyX2Zy bV9tb2RlIChjdXJfaW5zbikgOiBGUk1fTU9ERV9OT05FOw0KKw0KKyAgaWYg KG1vZGUgPT0gRlJNX01PREVfTk9ORSkNCisgICAgew0KKyAgICAgIC8qIEFm dGVyIG1lZXQgYSBjYWxsLCB3ZSBuZWVkIHRvIGJhY2t1cCB0aGUgZnJtIGJl Y2F1c2UgaXQgbWF5IGJlDQorIHVwZGF0ZWQgZHVyaW5nIHRoZSBjYWxsLiBI ZXJlLCBmb3IgZWFjaCBpbnNuLCB3ZSB3aWxsIGNoZWNrIGlmDQorIHRoZSBw cmV2aW91cyBpbnNuIGlzIGEgY2FsbCBvciBub3QuIFdoZW4gcHJldmlvdXMg aW5zbiBpcyBjYWxsLA0KKyB0aGVyZSB3aWxsIGJlIDIgY2FzZXMgZm9yIHRo ZSBlbWl0IG1vZGUgc2V0Lg0KKw0KKyAxLiBDdXJyZW50IGluc24gaXMgbm90 IE1PREVfTk9ORSwgdGhlbiB0aGUgbW9kZSBzd2l0Y2ggZnJhbWV3b3JrDQor ICAgICB3aWxsIGRvIHRoZSBtb2RlIHN3aXRjaCBmcm9tIE1PREVfQ0FMTCB0 byBNT0RFX05PTl9OT05FIG5hdGl2ZWx5Lg0KKyAyLiBDdXJyZW50IGluc24g aXMgTU9ERV9OT05FLCB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgTU9ERV9OT05F IHRvDQorICAgICB0aGUgTU9ERV9EWU4sIGFuZCBsZWF2ZSB0aGUgbW9kZSBz d2l0Y2ggaXRzZWxmIHRvIHBlcmZvcm0NCisgICAgIHRoZSBlbWl0IG1vZGUg c2V0Lg0KKw0KKyBUT0RPOiB0aGlzIGNhbm5vdCBoYW5kbGUgb25lIGNhc2Ug aWYgdGhlcmUgaXMgbm8gaW5zdHJ1Y3Rpb24NCisgYWZ0ZXIgYSBjYWxsLCB3 ZSB3aWxsIHRha2UgY2FyZSBvZiBpdCBzb29uLg0KKyAgICAgICAqLw0KKyAg ICAgIHJ0eF9pbnNuICppbnNuOw0KKyAgICAgIGJhc2ljX2Jsb2NrIGJiID0g QkxPQ0tfRk9SX0lOU04gKGN1cl9pbnNuKTsNCisNCisgICAgICBmb3IgKGlu c24gPSBQUkVWX0lOU04gKGN1cl9pbnNuKTsgaW5zbjsgaW5zbiA9IFBSRVZf SU5TTiAoaW5zbikpDQorIHsNCisgICBpZiAoSU5TTl9QIChpbnNuKSkNCisg ICAgIHsNCisgICAgICAgaWYgKENBTExfUCAoaW5zbikpDQorIG1vZGUgPSBG Uk1fTU9ERV9EWU47DQorICAgICAgIGJyZWFrOw0KKyAgICAgfQ0KKw0KKyAg IGlmIChpbnNuID09IFBSRVZfSU5TTiAoQkJfSEVBRCAoYmIpKSkNCisgICAg IGJyZWFrOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiBtb2RlOw0KK30N CisNCi8qIFJldHVybiBtb2RlIHRoYXQgZW50aXR5IG11c3QgYmUgc3dpdGNo ZWQgaW50bw0KICAgIHByaW9yIHRvIHRoZSBleGVjdXRpb24gb2YgaW5zbi4g ICovDQpAQCAtNzc2Niw3ICs3ODQxLDcgQEAgcmlzY3ZfbW9kZV9uZWVkZWQg KGludCBlbnRpdHksIHJ0eF9pbnNuICppbnNuKQ0KICAgICBjYXNlIFJJU0NW X1ZYUk06DQogICAgICAgcmV0dXJuIGNvZGUgPj0gMCA/IGdldF9hdHRyX3Z4 cm1fbW9kZSAoaW5zbikgOiBWWFJNX01PREVfTk9ORTsNCiAgICAgY2FzZSBS SVNDVl9GUk06DQotICAgICAgcmV0dXJuIGNvZGUgPj0gMCA/IGdldF9hdHRy X2ZybV9tb2RlIChpbnNuKSA6IEZSTV9NT0RFX05PTkU7DQorICAgICAgcmV0 dXJuIHJpc2N2X2ZybV9tb2RlX25lZWRlZCAoaW5zbiwgY29kZSk7DQogICAg IGRlZmF1bHQ6DQogICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KICAgICB9 DQpAQCAtNzg0Myw2ICs3OTE4LDExIEBAIHJpc2N2X3Z4cm1fbW9kZV9hZnRl ciAocnR4X2luc24gKmluc24sIGludCBtb2RlKQ0Kc3RhdGljIGludA0Kcmlz Y3ZfZnJtX21vZGVfYWZ0ZXIgKHJ0eF9pbnNuICppbnNuLCBpbnQgbW9kZSkN CnsNCisgIFNUQVRJQ19GUk1fUCAoY2Z1bikgPSBTVEFUSUNfRlJNX1AgKGNm dW4pIHx8IHJpc2N2X3N0YXRpY19mcm1fbW9kZV9wIChtb2RlKTsNCisNCisg IGlmIChDQUxMX1AgKGluc24pKQ0KKyAgICByZXR1cm4gRlJNX01PREVfRFlO X0NBTEw7DQorDQogICBpZiAoZnJtX3Vua25vd25fZHluYW1pY19wIChpbnNu KSkNCiAgICAgcmV0dXJuIEZSTV9NT0RFX0RZTjsNCkBAIC03ODgzLDEwICs3 OTYzLDEwIEBAIHJpc2N2X21vZGVfZW50cnkgKGludCBlbnRpdHkpDQogICAg ICAgcmV0dXJuIFZYUk1fTU9ERV9OT05FOw0KICAgICBjYXNlIFJJU0NWX0ZS TToNCiAgICAgICB7DQotIGlmICghY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19m cm0pDQorIGlmICghRFlOQU1JQ19GUk1fUlRMKGNmdW4pKQ0KICB7DQotICAg ICBjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSA9IGdlbl9yZWdfcnR4IChT SW1vZGUpOw0KLSAgICAgZW1pdF9pbnNuX2F0X2VudHJ5IChnZW5fZnJybXNp IChjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSkpOw0KKyAgICAgRFlOQU1J Q19GUk1fUlRMIChjZnVuKSA9IGdlbl9yZWdfcnR4IChTSW1vZGUpOw0KKyAg ICAgZW1pdF9pbnNuX2F0X2VudHJ5IChnZW5fZnJybXNpIChEWU5BTUlDX0ZS TV9SVEwgKGNmdW4pKSk7DQogIH0NCiAgLyogQWNjb3JkaW5nIHRvIFJWViAx LjAgc3BlYywgYWxsIHZlY3RvciBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25z IHVzZQ0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1k IGIvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQNCmluZGV4IDY5NjgwZGUy NjAwLi42M2IyZDNhOWI4MiAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlz Y3YvdmVjdG9yLm1kDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5t ZA0KQEAgLTY5NCw3ICs2OTQsNyBAQCAoZGVmaW5lX2F0dHIgInZ4cm1fbW9k ZSIgInJudSxybmUscmRuLHJvZCxub25lIg0KKQ0KOzsgRGVmaW5lcyByb3Vu ZGluZyBtb2RlIG9mIGFuIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbi4NCi0o ZGVmaW5lX2F0dHIgImZybV9tb2RlIiAicm5lLHJ0eixyZG4scnVwLHJtbSxk eW4sZHluX2V4aXQsbm9uZSINCisoZGVmaW5lX2F0dHIgImZybV9tb2RlIiAi cm5lLHJ0eixyZG4scnVwLHJtbSxkeW4sZHluX2V4aXQsZHluX2NhbGwsbm9u ZSINCiAgIChjb25kDQogICAgIFsNCiAgICAgICAoZXFfYXR0ciAidHlwZSIg InZmYWx1IikNCkBAIC04MjksNyArODI5LDcgQEAgKGRlZmluZV9pbnNuICJm c3Jtc2lfcmVzdG9yZSINCjs7IFRoZSB2b2xhdGlsZSBmc3Jtc2kgcmVzdG9y ZSBpcyB1c2VkIGZvciB0aGUgZXhpdCBwb2ludCBmb3IgdGhlDQo7OyBkeW5h bWljIG1vZGUgc3dpdGNoaW5nLiBJdCB3aWxsIGdlbmVyYXRlIG9uZSB2b2xh dGlsZSBmc3JtIGE1DQo7OyB3aGljaCB3b24ndCBiZSBlbGltaW5hdGVkLg0K LShkZWZpbmVfaW5zbiAiZnNybXNpX3Jlc3RvcmVfZXhpdCINCisoZGVmaW5l X2luc24gImZzcm1zaV9yZXN0b3JlX3ZvbGF0aWxlIg0KICAgWyhzZXQgKHJl ZzpTSSBGUk1fUkVHTlVNKQ0KKHVuc3BlY192b2xhdGlsZTpTSSBbKG1hdGNo X29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKV0NCiAgICBV TlNQRUNWX0ZSTV9SRVNUT1JFX0VYSVQpKV0NCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMy5j DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjRi ZDUyMGVhMmFmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMzMuYw0KQEAgLTAsMCArMSwzMSBAQA0KKy8qIHsgZGctZG8gY29t cGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAt bWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgo bm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisg IGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0 dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZm bG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0K KyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSss XHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11b MC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1sw MTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zNC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLjZjN2NmN2VmNjljDQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYw0KQEAgLTAsMCArMSwz MiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3Np emVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92 bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAg cmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsN Cit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwg c2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7 DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChy ZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHZs ID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICByZXR1cm4gdmwgPiAxMjgg PyByZXN1bHQgOiBvcDI7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNS5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTM1LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uYjdmNWE2OTE5ZjQNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS0zNS5jDQpAQCAtMCwwICsxLDMyIEBA DQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90 IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChz aXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1 cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30N CisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXpl X3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisN CisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwp Ow0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3Ax LCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0K Kw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZh ZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTld K30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0 XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAt OV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM2LmMNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNDQ4NWNl YTI0ZDkNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0zNi5jDQpAQCAtMCwwICsxLDI5IEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJp PWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlz Y3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lu bGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYg KHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4g KCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0 ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3Ax LCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGlmICh2bCAlIDQgIT0gMCkN CisgICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJldHVybiB2 bCA+IDE2ID8gcmVzdWx0IDogb3AyOw0KK30NCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0XX0gfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybVxzK1theHNdWzAtOV0r fSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmcnJtXHMrW2F4c11bMC05XSt9IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u YTFmY2ExYTJhM2YNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zNy5jDQpAQCAtMCwwICsxLDM2IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18g KChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0K KyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICBy ZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgICBpbnQgY291bnQs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAg ICB7DQorICAgICAgaWYgKGkgJSAyID09IDApDQorICAgICAgICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwg dmwpOw0KKyAgICAgIGVsc2UNCisgICAgICAgIHZsID0gbm9ybWFsaXplX3Zs ICh2bCk7DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRc LnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uOGQ1OWNhZTlh ODcNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0z OC5jDQpAQCAtMCwwICsxLDM0IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxw NjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGlu ZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZs ICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2 bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0 X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2 ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgICBpbnQgY291bnQsIHNpemVfdCB2 bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAg ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0 LCBvcDIsIDQsIHZsKTsNCisgICAgICB2bCA9IG5vcm1hbGl6ZV92bCAodmwp Ow0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3Zm XVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDEgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm cnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypb MDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMzkuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjA0YzU0ODc3MzkzDQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYw0K QEAgLTAsMCArMSwzNiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0K K25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQg PT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0 KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9h dF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0 MzJtMV90IG9wMiwNCisgICAgICAgaW50IGNvdW50LCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAo aW50IGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3Ay LCA0LCB2bCk7DQorDQorICAgICAgaWYgKHZsICUgOCAhPSAwKQ0KKyAgICAg ICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgICAgfQ0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNDAuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi40OWNmNTJmNzM5Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMNCkBAIC0wLDAgKzEsMzQgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19h dHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVf dCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2 bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0K K3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0g KHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2 bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBv cDIsIDQsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQor ICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsN CisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhz XVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQxLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uNzllZjU1YjJjOWYNCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jDQpAQCAtMCwwICsx LDM3IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor c2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXpl X3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAg ICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0 Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5 bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3Ay LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92 bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisNCisgIHZsID0gbm9ybWFs aXplX3ZsICh2bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgNCwgdmwpOw0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQyLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi5kMmExN2FkNzE1Zg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQyLmMNCkBAIC0wLDAgKzEsMzcgQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRy aWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2 bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsN CisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkN Cit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIs IDQsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQor ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9w MiwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVz dWx0LCAyLCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52 W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00My5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjUwZTFkYTJjM2Mx DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDMu Yw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwg LyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgdmwg PSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIGlmICh2bCAlIDE2ID09IDAp DQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJl c3VsdCwgb3AyLCAxLCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAo dmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0K Kw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZh ZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTld K30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0 XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAt OV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS00NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ0LmMNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTY2Y2E4 OTMwOGINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00NC5jDQpAQCAtMCwwICsxLDQwIEBADQorLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJp PWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlz Y3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lu bGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYg KHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4g KCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0 ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3Ax LCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQor ICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgaWYgKHZsICUgMTYg PT0gMCkNCisgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisNCisNCisgIGlmICh2bCAlIDcg IT0gMCkNCisgICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2 bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3Zb MC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMr W2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4c11bMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRd fSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDUu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00NS5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmQ5YzFlZjI5NDUwDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDUuYw0KQEAgLTAs MCArMSwzNSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpOw0K Kw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19m cm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAg ICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQz Mm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0g MDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMg PT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICAgdmwgPSBub3JtYWxp emVfdmwgKHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3Vs dCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7 DQorICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgfQ0KKyAgICB9DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSss XHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11b MC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11b MC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDYuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00Ni5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLmI5OTBmYjQzNGY4DQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDYuYw0KQEAgLTAsMCArMSwz NSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpOw0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5z aWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkN Cisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmwg KHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAzLCB2bCk7 DQorICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgfQ0KKyAgICB9DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSss XHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11b MC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11b MC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00Ny5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLjJjMzQ4MWI5ODBlDQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcuYw0KQEAgLTAsMCArMSwz NiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2 ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVu c2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90 IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg PCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDAp DQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChy ZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZs KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorICAgdmwg PSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ4LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDguYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi40YWVhZTJlZTBjZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQ4LmMNCkBAIC0wLDAgKzEsMzYgQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90 DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90 IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3Vu dCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBv cDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkr KykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQs IHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorIH0NCisg ICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzIgKHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDkuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS00OS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjM1MGJkNDkyNGViDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNDkuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QN Cit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qg b3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr KQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICB2 bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisg fQ0KKyAgICAgIGVsc2UNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIg KHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChv cDEsIHJlc3VsdCwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiBy ZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zz cm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3Jt aVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01MC5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTUwLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uMjNmNzI2NjQ0MjYNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS01MC5jDQpAQCAtMCwwICsxLDM2IEBADQorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisj aW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5v cm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0K K3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKysp DQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHZs ID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyB9 DQorICAgICAgZWxzZQ0KKyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAo dmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KG9wMSwgcmVzdWx0LCAzLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0 dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAz IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUxLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAwMDAwLi44NzM3YWI5MzBhYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTUxLmMNCkBAIC0wLDAgKzEsMzYgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1h cmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0K Kw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJt MV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJt MV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0N CisgICAgICBlbHNlDQorIHsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2 bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3Ax LCByZXN1bHQsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVz dWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypb ZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt XHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEy MzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1swMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUy LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u YTczZDQxNDg2NmINCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01Mi5jDQpAQCAtMCwwICsxLDM2IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVf dCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0K KyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAg IHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9DQorICAgICAgZWxz ZQ0KKyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3Ay LCAxLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTUzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTMu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41 MTAyMTBiNGY1YQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUzLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8xIChzaXplX3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXpl X3ZsXzIgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90 IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQor ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAg ew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgfQ0K KyAgICAgIGVsc2UNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorICAgdmwgPSBub3JtYWxp emVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorIH0NCisgICAgfQ0KKw0KKyAg cmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqW2Zhdl0rWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0r fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0XX0g fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTQuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01NC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLjUyYzk5MDM5NTY0DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTQuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNv dW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3Vs dCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwg dmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgICB2 bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisg fQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3Zm XVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm cnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDUg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypb MDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNTUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmE3MGZjMTliNWM3DQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTUuYw0K QEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVf dCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90 IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5 bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3Ay LA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAg dmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWdu ZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYg KGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0gbm9ybWFs aXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0K KyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDEsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8y ICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo cmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTYuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS01Ni5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjgwM2VjODBiNWRlDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNTYuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QN Cit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qg b3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr KQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwg dmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwp Ow0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsN CisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52 W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9 IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNTcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjg0NmFlY2U0MzA3 DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTcu Yw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNp emVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6 ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50 X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qg b3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0K KyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5z aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAg aWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyB9DQorICAg ICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92 bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MSAocmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1 cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTld KyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDUgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTguYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01OC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmM1Zjk2YmM0NWMwDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTguYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNv dW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3Vs dCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3Vs dCwgMiwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsN CisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZs KTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTkuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OS5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjA2YzdmY2Yx Yjg5DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NTkuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEg KHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAo c2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAg ICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0g bm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyB9DQor ICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0KKyAgICB9DQor DQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSss XHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11b MC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDQgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1sw MTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjAuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS02MC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLmFkM2E3ZjgxYTY5DQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjAuYw0KQEAgLTAsMCArMSwz OCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4 dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2 ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVu c2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90 IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg PCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDAp DQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChv cDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZs KTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChv cDEsIHJlc3VsdCwgMiwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0 LCBvcDIsIDMsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7 DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVz dWx0LCBvcDIsIDQsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjEuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02MS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLjBhZTljNjdjZTg2DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNjEuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QN Cit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qg b3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr KQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3Vs dCwgMSwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3Vs dCwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0K KyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxz K3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJt XHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEy MzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Mi5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjFkZDVhNjNiMzgxDQotLS0g L2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjIuYw0KQEAg LTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAt V25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5o Ig0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2 bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZs KTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFt aWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0K KyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZs b2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkg JSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMSwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9DQorICAgICAgZWxz ZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo cmVzdWx0LCBvcDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2 bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDIsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1 cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTld KyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjMuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02My5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLmY3MzM4M2ZjMjc5DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNjMuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXpl X3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNv dW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJl c3VsdCwgMSwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsN CisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJl c3VsdCwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMs IHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZs KTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNjQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmVkNmYyMmM0 MWQxDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjQuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEg KHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAo c2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAg ICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMSwgdmwpOw0KKyAg IHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9DQor ICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgfQ0KKyAg ICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3Zb MC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMr W2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDQgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3Jt aVxzK1swMTIzNF19IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRd fSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjUu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02NS5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjNlNDNhZWNkOTEzDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjUuYw0KQEAgLTAs MCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7 DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsN CisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAg ICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9 IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAz ID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChvcDEsIHJlc3VsdCwgMSwgdmwpOw0KKyAgIHZsID0gbm9ybWFs aXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyB9DQorICAgICAg ZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MSAocmVzdWx0LCBvcDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8y ICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo cmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxc cypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtXHMrW2F4c11bMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjYuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02Ni5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMDAuLmVhOTk4MzFmMzFmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNjYuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9 cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qg bm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QN Cit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qg b3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50 LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr KQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3Vs dCwgMSwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJl c3VsdCwgMiwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZs KTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQs IHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11b MC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDMgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVsw LTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNjcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjM0NDcw MWYzY2I1DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNjcuYw0KQEAgLTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3Zs XzEgKHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxf MiAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0 X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3Qgdmwp DQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZv ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQor ICAgICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMSwgdmwpOw0K KyAgIHZsID0gbm9ybWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwp Ow0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisg ICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0K KyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxz K3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJt XHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDQgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtm c3JtaVxzK1swMTIzNF19IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEy MzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02OC5jDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjFkYmY2ZGJhMjA4DQotLS0g L2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjguYw0KQEAg LTAsMCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyog eyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAt V25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5o Ig0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2 bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZs KTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFt aWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0K KyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZs b2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkg JSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMSwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyB9DQorICAg ICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisgICB2bCA9IG5vcm1h bGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgfQ0KKyAgICB9 DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05 XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDQgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4 c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxz K1swMTIzNF19IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9 IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS02OS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMDAwMDAuLmIwOGFiMWVmNjA1DQotLS0gL2Rldi9u dWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjkuYw0KQEAgLTAsMCAr MSwzMSBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1v cHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBz YWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0K K2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQor DQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2Zy bSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAg ICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMy bTFfdCByZXN1bHQ7DQorICB2ZmxvYXQzMm0xX3QgZjMyX3JlcyA9IG9wMTsN CisgIHZpbnQzMm0xX3QgaTMyX3JlcyA9IF9fcmlzY3ZfdnJlaW50ZXJwcmV0 X3ZfZjMybTFfaTMybTEgKG9wMik7DQorDQorICBpZiAoY291bnQgJiB2bCA9 PSAweDFmKQ0KKyAgICBpMzJfcmVzID0gX19yaXNjdl92YWRkX3Z2X2kzMm0x IChpMzJfcmVzLCBpMzJfcmVzLCB2bCk7DQorICBlbHNlDQorICAgIHZsID0g bm9ybWFsaXplX3ZsXzEgKHZsKTsNCisNCisgIGYzMl9yZXMgPSBfX3Jpc2N2 X3ZyZWludGVycHJldF92X2kzMm0xX2YzMm0xIChpMzJfcmVzKTsNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKGYzMl9yZXMsIG9w MiwgNCwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTcwLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzAuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi41YTJiOGExNjk1Mg0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcwLmMN CkBAIC0wLDAgKzEsMjggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgaWYgKGNvdW50 ICYgdmwgPT0gMHgxZikNCisgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisgIGVsc2UNCisgICAgdmwg PSBub3JtYWxpemVfdmxfMSAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDMsIHZsKTsNCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVsw LTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTcxLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uMTg1YTA0Y2MyYmQNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS03MS5jDQpAQCAtMCwwICsxLDI4 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCisNCit2 ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2 ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVu c2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90 IHJlc3VsdCA9IG9wMTsNCisNCisgIGlmIChjb3VudCAmIHZsID09IDB4MWYp DQorICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJl c3VsdCwgb3AyLCAxLCB2bCk7DQorICBlbHNlDQorICAgIHZsID0gbm9ybWFs aXplX3ZsXzEgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAzLCB2bCk7DQorDQorICByZXR1 cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTld KyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWlu c2VydC03LmMNCmluZGV4IDEyZGIxMTJkZDBiLi42ZGU5ZDA2Yjg3NSAxMDA2 NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYw0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWZybS1pbnNlcnQtNy5jDQpAQCAtMjYsNiArMjYsNyBAQCB0ZXN0X2Zsb2F0 X3BvaW50X2ZybV9zdGF0aWMgKGZsb2F0ICpvdXQsIHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsDQp9DQovKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMq dlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQotLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDEgfSB9ICovDQotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11b MC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQovKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1m cm0tcnVuLTQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi41Nzk2YWE1M2E3Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1ydW4tNC5jDQpAQCAtMCwwICsxLDgyIEBADQorLyogeyBkZy1k byBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNp bmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQorI2RlZmluZSBPUklHSU5BTF9G Uk0gMQ0KKw0KK3N0YXRpYyBpbnQNCitnZXRfZnJtICgpDQorew0KKyAgaW50 IGZybSA9IC0xOw0KKw0KKyAgX19hc21fXyB2b2xhdGlsZSAoDQorICAgICJm cnJtICUwIg0KKyAgICA6Ij1yIihmcm0pDQorICAgIDoNCisgICAgOg0KKyAg KTsNCisNCisgIHJldHVybiBmcm07DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQor c2V0X2ZybSAoaW50IGZybSkNCit7DQorICBfX2FzbV9fIHZvbGF0aWxlICgN CisgICAgImZzcm0gJTAiDQorICAgIDoNCisgICAgOiJyIihmcm0pDQorICAg IDoNCisgICk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZA0KK2Fzc2Vy dF9lcXVhbCAoaW50IGEsIGludCBiLCBjaGFyICptZXNzYWdlKQ0KK3sNCisg IGlmIChhICE9IGIpDQorICAgIHsNCisgICAgICBmcHJpbnRmIChzdGRvdXQs ICIlcywgYnV0IGdldCAlZCAhPSAlZFxuIiwgbWVzc2FnZSwgYSwgYik7DQor ICAgICAgX19idWlsdGluX2Fib3J0ICgpOw0KKyAgICB9DQorfQ0KKw0KK3Zm bG9hdDMybTFfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK290aGVy X2Z1bmN0aW9uICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3Ay LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9w MjsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9w MSwgcmVzdWx0LCB2bCk7DQorDQorICBhc3NlcnRfZXF1YWwgKE9SSUdJTkFM X0ZSTSwgZ2V0X2ZybSAoKSwNCisgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0 ZXIgc2hvdWxkIGJlIE9SSUdJTkFMX0ZSTS4iKTsNCisNCisgIHJldHVybiBy ZXN1bHQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdCBfX2F0dHJpYnV0ZV9fICgo bm9pbmxpbmUpKQ0KK3Rlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSB7fTsNCisNCisgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCA0LCB2 bCk7DQorDQorICBhc3NlcnRfZXF1YWwgKDQsIGdldF9mcm0gKCksICJUaGUg dmFsdWUgb2YgZnJtIHJlZ2lzdGVyIHNob3VsZCBiZSA0LiIpOw0KKw0KKyAg cmV0dXJuIG90aGVyX2Z1bmN0aW9uIChyZXN1bHQsIG9wMiwgdmwpOw0KK30N CisNCitpbnQNCittYWluICgpDQorew0KKyAgc2l6ZV90IHZsID0gODsNCisg IHZmbG9hdDMybTFfdCBvcDEgPSB7fTsNCisgIHZmbG9hdDMybTFfdCBvcDIg PSB7fTsNCisNCisgIHNldF9mcm0gKE9SSUdJTkFMX0ZSTSk7DQorICB0ZXN0 X2Zsb2F0X3BvaW50X2ZybV9ydW4gKG9wMSwgb3AyLCB2bCk7DQorDQorICBy ZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNS5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWZybS1ydW4tNS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLjIwOGE2NWZjZDNhDQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi01LmMNCkBAIC0wLDAgKzEsODMgQEAN CisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0g fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorI2luY2x1ZGUgPHN0 ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGludC1nY2MuaD4NCisNCisjZGVmaW5l IE9SSUdJTkFMX0ZSTSAxDQorI2RlZmluZSBORVdfRlJNIDQNCisNCitzdGF0 aWMgaW50DQorZ2V0X2ZybSAoKQ0KK3sNCisgIGludCBmcm0gPSAtMTsNCisN CisgIF9fYXNtX18gdm9sYXRpbGUgKA0KKyAgICAiZnJybSAlMCINCisgICAg OiI9ciIoZnJtKQ0KKyAgICA6DQorICAgIDoNCisgICk7DQorDQorICByZXR1 cm4gZnJtOw0KK30NCisNCitzdGF0aWMgdm9pZA0KK3NldF9mcm0gKGludCBm cm0pDQorew0KKyAgX19hc21fXyB2b2xhdGlsZSAoDQorICAgICJmc3JtICUw Ig0KKyAgICA6DQorICAgIDoiciIoZnJtKQ0KKyAgICA6DQorICApOw0KK30N CisNCitzdGF0aWMgaW5saW5lIHZvaWQNCithc3NlcnRfZXF1YWwgKGludCBh LCBpbnQgYiwgY2hhciAqbWVzc2FnZSkNCit7DQorICBpZiAoYSAhPSBiKQ0K KyAgICB7DQorICAgICAgZnByaW50ZiAoc3Rkb3V0LCAiJXMsIGJ1dCBnZXQg JWQgIT0gJWRcbiIsIG1lc3NhZ2UsIGEsIGIpOw0KKyAgICAgIF9fYnVpbHRp bl9hYm9ydCAoKTsNCisgICAgfQ0KK30NCisNCit2b2lkIF9fYXR0cmlidXRl X18gKChub2lubGluZSkpDQorb3RoZXJfZnVuY3Rpb24gKCkNCit7DQorICBz ZXRfZnJtIChORVdfRlJNKTsNCit9DQorDQordmZsb2F0MzJtMV90IF9fYXR0 cmlidXRlX18gKChub2lubGluZSkpDQordGVzdF9mbG9hdF9wb2ludF9mcm1f cnVuICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXpl X3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IHt9Ow0KKw0K KyAgb3RoZXJfZnVuY3Rpb24gKCk7DQorICBhc3NlcnRfZXF1YWwgKE5FV19G Uk0sIGdldF9mcm0gKCksDQorICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVy IHNob3VsZCBiZSBORVdfRlJNLiIpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNj dl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisg IGFzc2VydF9lcXVhbCAoMiwgZ2V0X2ZybSAoKSwgIlRoZSB2YWx1ZSBvZiBm cm0gcmVnaXN0ZXIgc2hvdWxkIGJlIDIuIik7DQorDQorICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAg YXNzZXJ0X2VxdWFsIChORVdfRlJNLCBnZXRfZnJtICgpLA0KKyAiVGhlIHZh bHVlIG9mIGZybSByZWdpc3RlciBzaG91bGQgYmUgTkVXX0ZSTS4iKTsNCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KK2ludA0KK21haW4gKCkNCit7 DQorICBzaXplX3QgdmwgPSA4Ow0KKyAgdmZsb2F0MzJtMV90IG9wMSA9IHt9 Ow0KKyAgdmZsb2F0MzJtMV90IG9wMiA9IHt9Ow0KKw0KKyAgc2V0X2ZybSAo T1JJR0lOQUxfRlJNKTsNCisgIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAo b3AxLCBvcDIsIHZsKTsNCisNCisgIHJldHVybiAwOw0KK30NCi0tIA0KMi4z NC4xDQogDQogDQo= ------=_001_NextPart600302001364_=------