From: Juergen Gross Subject: [PATCH v2 01/18] xen: add some xen headers Date: Tue, 9 Oct 2018 13:03:00 +0200 Message-ID: <20181009110317.6022-2-jgross@suse.com> References: <20181009110317.6022-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181009110317.6022-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: hans@knorrie.org, phcoder@gmail.com, daniel.kiper@oracle.com, Juergen Gross , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW4gb3JkZXIgdG8gc3VwcG9ydCBncnViMiBpbiBYZW4gUFZIIGVudmlyb25tZW50IHNvbWUgYWRk aXRpb25hbCBYZW4KaGVhZGVycyBhcmUgbmVlZGVkIGFzIGdydWIyIHdpbGwgYmUgc3RhcnRlZCBp biBQVkggbW9kZSByZXF1aXJpbmcgdG8KdXNlIHNldmVyYWwgSFZNIGh5cGVyY2FsbHMgYW5kIHN0 cnVjdHVyZXMuCgpBZGQgdGhlIG5lZWRlZCBoZWFkZXJzIGZyb20gWGVuIDQuMTAgYmVpbmcgdGhl IGZpcnN0IFhlbiB2ZXJzaW9uIHdpdGgKZnVsbCAobm90IG9ubHkgZXhwZXJpbWVudGFsKSBQVkgg Z3Vlc3Qgc3VwcG9ydC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNl LmNvbT4KLS0tClYyOiB1cGRhdGUgY29tbWl0IG1lc3NhZ2UgKERhbmllbCBLaXBlcikKLS0tCiBp bmNsdWRlL3hlbi9odm0vaHZtX29wLmggICAgIHwgMjk2ICsrKysrKysrKysrKysrKysrKysKIGlu Y2x1ZGUveGVuL2h2bS9wYXJhbXMuaCAgICAgfCAyODQgKysrKysrKysrKysrKysrKysrCiBpbmNs dWRlL3hlbi9odm0vc3RhcnRfaW5mby5oIHwgIDk4ICsrKysrKysKIGluY2x1ZGUveGVuL21lbW9y eS5oICAgICAgICAgfCA2NjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogaW5jbHVkZS94ZW4vcGh5c2Rldi5oICAgICAgICB8IDM4NyArKysrKysrKysrKysrKysr KysrKysrKysrCiBpbmNsdWRlL3hlbi90cmFjZS5oICAgICAgICAgIHwgMzM5ICsrKysrKysrKysr KysrKysrKysrKysKIGluY2x1ZGUveGVuL3hlbi5oICAgICAgICAgICAgfCAxMDQgKysrKystLQog NyBmaWxlcyBjaGFuZ2VkLCAyMTQyIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL2h2bS9odm1fb3AuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGluY2x1ZGUveGVuL2h2bS9wYXJhbXMuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv eGVuL2h2bS9zdGFydF9pbmZvLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3hlbi9tZW1v cnkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3BoeXNkZXYuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUveGVuL3RyYWNlLmgKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9o dm0vaHZtX29wLmggYi9pbmNsdWRlL3hlbi9odm0vaHZtX29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi4wYmRhZmRmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl L3hlbi9odm0vaHZtX29wLmgKQEAgLTAsMCArMSwyOTYgQEAKKy8qCisgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g ZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92 ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGlu Y2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBT b2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisg KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQ29w eXJpZ2h0IChjKSAyMDA3LCBLZWlyIEZyYXNlcgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElD X0hWTV9IVk1fT1BfSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19IVk1fSFZNX09QX0hfXworCisj aW5jbHVkZSAiLi4veGVuLmgiCisjaW5jbHVkZSAiLi4vdHJhY2UuaCIKKyNpbmNsdWRlICIuLi9l dmVudF9jaGFubmVsLmgiCisKKy8qIEdldC9zZXQgc3ViY29tbWFuZHM6IGV4dHJhIGFyZ3VtZW50 ID09IHBvaW50ZXIgdG8geGVuX2h2bV9wYXJhbSBzdHJ1Y3QuICovCisjZGVmaW5lIEhWTU9QX3Nl dF9wYXJhbSAgICAgICAgICAgMAorI2RlZmluZSBIVk1PUF9nZXRfcGFyYW0gICAgICAgICAgIDEK K3N0cnVjdCB4ZW5faHZtX3BhcmFtIHsKKyAgICBkb21pZF90ICBkb21pZDsgICAgLyogSU4gKi8K KyAgICB1aW50MzJfdCBpbmRleDsgICAgLyogSU4gKi8KKyAgICB1aW50NjRfdCB2YWx1ZTsgICAg LyogSU4vT1VUICovCit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9wYXJhbSB4ZW5faHZtX3Bh cmFtX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX3BhcmFtX3QpOworCisjaWYg X19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA5MDAKKworLyogU2V0IHRoZSBsb2dp Y2FsIGxldmVsIG9mIG9uZSBvZiBhIGRvbWFpbidzIFBDSSBJTlR4IHdpcmVzLiAqLworI2RlZmlu ZSBIVk1PUF9zZXRfcGNpX2ludHhfbGV2ZWwgIDIKK3N0cnVjdCB4ZW5faHZtX3NldF9wY2lfaW50 eF9sZXZlbCB7CisgICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCisgICAgZG9taWRfdCAg ZG9taWQ7CisgICAgLyogUENJIElOVHggaWRlbnRpZmljYXRpb24gaW4gUENJIHRvcG9sb2d5IChk b21haW46YnVzOmRldmljZTppbnR4KS4gKi8KKyAgICB1aW50OF90ICBkb21haW4sIGJ1cywgZGV2 aWNlLCBpbnR4OworICAgIC8qIEFzc2VydGlvbiBsZXZlbCAoMCA9IHVuYXNzZXJ0ZWQsIDEgPSBh c3NlcnRlZCkuICovCisgICAgdWludDhfdCAgbGV2ZWw7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVu X2h2bV9zZXRfcGNpX2ludHhfbGV2ZWwgeGVuX2h2bV9zZXRfcGNpX2ludHhfbGV2ZWxfdDsKK0RF RklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X3BjaV9pbnR4X2xldmVsX3QpOworCisv KiBTZXQgdGhlIGxvZ2ljYWwgbGV2ZWwgb2Ygb25lIG9mIGEgZG9tYWluJ3MgSVNBIElSUSB3aXJl cy4gKi8KKyNkZWZpbmUgSFZNT1Bfc2V0X2lzYV9pcnFfbGV2ZWwgICAzCitzdHJ1Y3QgeGVuX2h2 bV9zZXRfaXNhX2lycV9sZXZlbCB7CisgICAgLyogRG9tYWluIHRvIGJlIHVwZGF0ZWQuICovCisg ICAgZG9taWRfdCAgZG9taWQ7CisgICAgLyogSVNBIGRldmljZSBpZGVudGlmaWNhdGlvbiwgYnkg SVNBIElSUSAoMC0xNSkuICovCisgICAgdWludDhfdCAgaXNhX2lycTsKKyAgICAvKiBBc3NlcnRp b24gbGV2ZWwgKDAgPSB1bmFzc2VydGVkLCAxID0gYXNzZXJ0ZWQpLiAqLworICAgIHVpbnQ4X3Qg IGxldmVsOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9odm1fc2V0X2lzYV9pcnFfbGV2ZWwgeGVu X2h2bV9zZXRfaXNhX2lycV9sZXZlbF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2h2 bV9zZXRfaXNhX2lycV9sZXZlbF90KTsKKworI2RlZmluZSBIVk1PUF9zZXRfcGNpX2xpbmtfcm91 dGUgIDQKK3N0cnVjdCB4ZW5faHZtX3NldF9wY2lfbGlua19yb3V0ZSB7CisgICAgLyogRG9tYWlu IHRvIGJlIHVwZGF0ZWQuICovCisgICAgZG9taWRfdCAgZG9taWQ7CisgICAgLyogUENJIGxpbmsg aWRlbnRpZmllciAoMC0zKS4gKi8KKyAgICB1aW50OF90ICBsaW5rOworICAgIC8qIElTQSBJUlEg KDEtMTUpLCBvciAwIChkaXNhYmxlIGxpbmspLiAqLworICAgIHVpbnQ4X3QgIGlzYV9pcnE7Cit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9zZXRfcGNpX2xpbmtfcm91dGUgeGVuX2h2bV9zZXRf cGNpX2xpbmtfcm91dGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fc2V0X3Bj aV9saW5rX3JvdXRlX3QpOworCisjZW5kaWYgLyogX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8 IDB4MDAwNDA5MDAgKi8KKworLyogRmx1c2hlcyBhbGwgVkNQVSBUTEJzOiBAYXJnIG11c3QgYmUg TlVMTC4gKi8KKyNkZWZpbmUgSFZNT1BfZmx1c2hfdGxicyAgICAgICAgICA1CisKK3R5cGVkZWYg ZW51bSB7CisgICAgSFZNTUVNX3JhbV9ydywgICAgICAgICAgICAgLyogTm9ybWFsIHJlYWQvd3Jp dGUgZ3Vlc3QgUkFNICovCisgICAgSFZNTUVNX3JhbV9ybywgICAgICAgICAgICAgLyogUmVhZC1v bmx5OyB3cml0ZXMgYXJlIGRpc2NhcmRlZCAqLworICAgIEhWTU1FTV9tbWlvX2RtLCAgICAgICAg ICAgIC8qIFJlYWRzIGFuZCB3cml0ZSBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICovCisjaWYgX19Y RU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA3MDAKKyAgICBIVk1NRU1fbW1pb193cml0 ZV9kbSwgICAgICAvKiBSZWFkLW9ubHk7IHdyaXRlcyBnbyB0byB0aGUgZGV2aWNlIG1vZGVsICov CisjZWxzZQorICAgIEhWTU1FTV91bnVzZWQsICAgICAgICAgICAgIC8qIFBsYWNlaG9sZGVyOyBz ZXR0aW5nIG1lbW9yeSB0byB0aGlzIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3aWxsIGZhaWwgZm9yIGNvZGUgYWZ0ZXIgNC43LjAgKi8KKyNlbmRpZgorICAgIEhWTU1F TV9pb3JlcV9zZXJ2ZXIgICAgICAgIC8qIE1lbW9yeSB0eXBlIGNsYWltZWQgYnkgYW4gaW9yZXEg c2VydmVyOyB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlcyB0 byB0aGlzIHZhbHVlIGFyZSBvbmx5IGFsbG93ZWQgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbiBpb3JlcSBzZXJ2ZXIgaGFzIGNsYWltZWQgaXRzIG93bmVyc2hpcC4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbmx5IHBhZ2VzIHdpdGggSFZNTUVN X3JhbV9ydyBhcmUgYWxsb3dlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoYW5nZSB0byB0aGlzIHR5cGU7IGNvbnZlcnNlbHksIHBhZ2VzIHdpdGgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzIHR5cGUgYXJlIG9ubHkgYWxsb3dlZCB0byBiZSBj aGFuZ2VkIGJhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBIVk1NRU1f cmFtX3J3LiAqLworfSBodm1tZW1fdHlwZV90OworCisvKiBIaW50IGZyb20gUFYgZHJpdmVycyBm b3IgcGFnZXRhYmxlIGRlc3RydWN0aW9uLiAqLworI2RlZmluZSBIVk1PUF9wYWdldGFibGVfZHlp bmcgICAgICAgIDkKK3N0cnVjdCB4ZW5faHZtX3BhZ2V0YWJsZV9keWluZyB7CisgICAgLyogRG9t YWluIHdpdGggYSBwYWdldGFibGUgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiAqLworICAgIGRvbWlk X3QgIGRvbWlkOworICAgIHVpbnQxNl90IHBhZFszXTsgLyogYWxpZ24gbmV4dCBmaWVsZCBvbiA4 LWJ5dGUgYm91bmRhcnkgKi8KKyAgICAvKiBndWVzdCBwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSB0 b3BsZXZlbCBwYWdldGFibGUgZHlpbmcgKi8KKyAgICB1aW50NjRfdCBncGE7Cit9OwordHlwZWRl ZiBzdHJ1Y3QgeGVuX2h2bV9wYWdldGFibGVfZHlpbmcgeGVuX2h2bV9wYWdldGFibGVfZHlpbmdf dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1fcGFnZXRhYmxlX2R5aW5nX3QpOwor CisvKiBHZXQgdGhlIGN1cnJlbnQgWGVuIHRpbWUsIGluIG5hbm9zZWNvbmRzIHNpbmNlIHN5c3Rl bSBib290LiAqLworI2RlZmluZSBIVk1PUF9nZXRfdGltZSAgICAgICAgICAgICAgMTAKK3N0cnVj dCB4ZW5faHZtX2dldF90aW1lIHsKKyAgICB1aW50NjRfdCBub3c7ICAgICAgLyogT1VUICovCit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9nZXRfdGltZSB4ZW5faHZtX2dldF90aW1lX3Q7CitE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2dldF90aW1lX3QpOworCisjZGVmaW5lIEhW TU9QX3hlbnRyYWNlICAgICAgICAgICAgICAxMQorc3RydWN0IHhlbl9odm1feGVudHJhY2Ugewor ICAgIHVpbnQxNl90IGV2ZW50LCBleHRyYV9ieXRlczsKKyAgICB1aW50OF90IGV4dHJhW1RSQUNF X0VYVFJBX01BWCAqIHNpemVvZih1aW50MzJfdCldOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9o dm1feGVudHJhY2UgeGVuX2h2bV94ZW50cmFjZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo eGVuX2h2bV94ZW50cmFjZV90KTsKKworLyogRm9sbG93aW5nIHRvb2xzLW9ubHkgaW50ZXJmYWNl cyBtYXkgY2hhbmdlIGluIGZ1dHVyZS4gKi8KKyNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmlu ZWQoX19YRU5fVE9PTFNfXykKKworLyogRGVwcmVjYXRlZCBieSBYRU5NRU1fYWNjZXNzX29wX3Nl dF9hY2Nlc3MgKi8KKyNkZWZpbmUgSFZNT1Bfc2V0X21lbV9hY2Nlc3MgICAgICAgIDEyCisKKy8q IERlcHJlY2F0ZWQgYnkgWEVOTUVNX2FjY2Vzc19vcF9nZXRfYWNjZXNzICovCisjZGVmaW5lIEhW TU9QX2dldF9tZW1fYWNjZXNzICAgICAgICAxMworCisjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9f KSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCisKKyNkZWZpbmUgSFZNT1BfZ2V0X21lbV90 eXBlICAgIDE1CisvKiBSZXR1cm4gaHZtbWVtX3R5cGVfdCBmb3IgdGhlIHNwZWNpZmllZCBwZm4u ICovCitzdHJ1Y3QgeGVuX2h2bV9nZXRfbWVtX3R5cGUgeworICAgIC8qIERvbWFpbiB0byBiZSBx dWVyaWVkLiAqLworICAgIGRvbWlkX3QgZG9taWQ7CisgICAgLyogT1VUIHZhcmlhYmxlLiAqLwor ICAgIHVpbnQxNl90IG1lbV90eXBlOworICAgIHVpbnQxNl90IHBhZFsyXTsgLyogYWxpZ24gbmV4 dCBmaWVsZCBvbiA4LWJ5dGUgYm91bmRhcnkgKi8KKyAgICAvKiBJTiB2YXJpYWJsZS4gKi8KKyAg ICB1aW50NjRfdCBwZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9nZXRfbWVtX3R5cGUg eGVuX2h2bV9nZXRfbWVtX3R5cGVfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9odm1f Z2V0X21lbV90eXBlX3QpOworCisvKiBGb2xsb3dpbmcgdG9vbHMtb25seSBpbnRlcmZhY2VzIG1h eSBjaGFuZ2UgaW4gZnV0dXJlLiAqLworI2lmIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5lZChf X1hFTl9UT09MU19fKQorCisvKgorICogRGVmaW5pdGlvbnMgcmVsYXRpbmcgdG8gRE1PUF9jcmVh dGVfaW9yZXFfc2VydmVyLiAoRGVmaW5lZCBoZXJlIGZvcgorICogYmFja3dhcmRzIGNvbXBhdGli aWxpdHkpLgorICovCisKKyNkZWZpbmUgSFZNX0lPUkVRU1JWX0JVRklPUkVRX09GRiAgICAwCisj ZGVmaW5lIEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9MRUdBQ1kgMQorLyoKKyAqIFVzZSB0aGlzIHdo ZW4gcmVhZF9wb2ludGVyIGdldHMgdXBkYXRlZCBhdG9taWNhbGx5IGFuZAorICogdGhlIHBvaW50 ZXIgcGFpciBnZXRzIHJlYWQgYXRvbWljYWxseToKKyAqLworI2RlZmluZSBIVk1fSU9SRVFTUlZf QlVGSU9SRVFfQVRPTUlDIDIKKworI2VuZGlmIC8qIGRlZmluZWQoX19YRU5fXykgfHwgZGVmaW5l ZChfX1hFTl9UT09MU19fKSAqLworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKQorCisvKgorICogSFZNT1Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yOiBTZXQg YSA8dmVjdG9yPiB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBldmVudAorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFubmVsIHVwY2FsbHMgb24gdGhlIHNwZWNpZmllZCA8dmNw dT4uIElmIHNldCwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB2ZWN0 b3Igd2lsbCBiZSB1c2VkIGluIHByZWZlcmVuY2UgdG8gdGhlCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWFpbiBnbG9iYWwgY2FsbGJhY2sgdmlhIChzZWUKKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSFZNX1BBUkFNX0NBTExCQUNLX0lSUSkuCisgKi8K KyNkZWZpbmUgSFZNT1Bfc2V0X2V2dGNobl91cGNhbGxfdmVjdG9yIDIzCitzdHJ1Y3QgeGVuX2h2 bV9ldnRjaG5fdXBjYWxsX3ZlY3RvciB7CisgICAgdWludDMyX3QgdmNwdTsKKyAgICB1aW50OF90 IHZlY3RvcjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2V2dGNobl91cGNhbGxfdmVjdG9y IHhlbl9odm1fZXZ0Y2huX3VwY2FsbF92ZWN0b3JfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl9odm1fZXZ0Y2huX3VwY2FsbF92ZWN0b3JfdCk7CisKKyNlbmRpZiAvKiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pICovCisKKyNkZWZpbmUgSFZNT1BfZ3Vlc3Rf cmVxdWVzdF92bV9ldmVudCAyNAorCisvKiBIVk1PUF9hbHRwMm06IHBlcmZvcm0gYWx0cDJtIHN0 YXRlIG9wZXJhdGlvbnMgKi8KKyNkZWZpbmUgSFZNT1BfYWx0cDJtIDI1CisKKyNkZWZpbmUgSFZN T1BfQUxUUDJNX0lOVEVSRkFDRV9WRVJTSU9OIDB4MDAwMDAwMDEKKworc3RydWN0IHhlbl9odm1f YWx0cDJtX2RvbWFpbl9zdGF0ZSB7CisgICAgLyogSU4gb3IgT1VUIHZhcmlhYmxlIG9uL29mZiAq LworICAgIHVpbnQ4X3Qgc3RhdGU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1f ZG9tYWluX3N0YXRlIHhlbl9odm1fYWx0cDJtX2RvbWFpbl9zdGF0ZV90OworREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fZG9tYWluX3N0YXRlX3QpOworCitzdHJ1Y3QgeGVu X2h2bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5IHsKKyAgICB1aW50MzJfdCB2Y3B1X2lkOwor ICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiAjVkUgaW5mbyBhcmVhIGdmbiAqLworICAgIHVpbnQ2 NF90IGdmbjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV92Y3B1X2VuYWJsZV9u b3RpZnkgeGVuX2h2bV9hbHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5X3Q7CitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV92Y3B1X2VuYWJsZV9ub3RpZnlfdCk7CisKK3N0cnVj dCB4ZW5faHZtX2FsdHAybV92aWV3IHsKKyAgICAvKiBJTi9PVVQgdmFyaWFibGUgKi8KKyAgICB1 aW50MTZfdCB2aWV3OworICAgIC8qIENyZWF0ZSB2aWV3IG9ubHk6IGRlZmF1bHQgYWNjZXNzIHR5 cGUKKyAgICAgKiBOT1RFOiBjdXJyZW50bHkgaWdub3JlZCAqLworICAgIHVpbnQxNl90IGh2bW1l bV9kZWZhdWx0X2FjY2VzczsgLyogeGVubWVtX2FjY2Vzc190ICovCit9OwordHlwZWRlZiBzdHJ1 Y3QgeGVuX2h2bV9hbHRwMm1fdmlldyB4ZW5faHZtX2FsdHAybV92aWV3X3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV92aWV3X3QpOworCitzdHJ1Y3QgeGVuX2h2bV9h bHRwMm1fc2V0X21lbV9hY2Nlc3MgeworICAgIC8qIHZpZXcgKi8KKyAgICB1aW50MTZfdCB2aWV3 OworICAgIC8qIE1lbW9yeSB0eXBlICovCisgICAgdWludDE2X3QgaHZtbWVtX2FjY2VzczsgLyog eGVubWVtX2FjY2Vzc190ICovCisgICAgdWludDMyX3QgcGFkOworICAgIC8qIGdmbiAqLworICAg IHVpbnQ2NF90IGdmbjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9zZXRfbWVt X2FjY2VzcyB4ZW5faHZtX2FsdHAybV9zZXRfbWVtX2FjY2Vzc190OworREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUoeGVuX2h2bV9hbHRwMm1fc2V0X21lbV9hY2Nlc3NfdCk7CisKK3N0cnVjdCB4ZW5f aHZtX2FsdHAybV9jaGFuZ2VfZ2ZuIHsKKyAgICAvKiB2aWV3ICovCisgICAgdWludDE2X3Qgdmll dzsKKyAgICB1aW50MTZfdCBwYWQxOworICAgIHVpbnQzMl90IHBhZDI7CisgICAgLyogb2xkIGdm biAqLworICAgIHVpbnQ2NF90IG9sZF9nZm47CisgICAgLyogbmV3IGdmbiwgSU5WQUxJRF9HRk4g KH4wVUwpIG1lYW5zIHJldmVydCAqLworICAgIHVpbnQ2NF90IG5ld19nZm47Cit9OwordHlwZWRl ZiBzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fY2hhbmdlX2dmbiB4ZW5faHZtX2FsdHAybV9jaGFuZ2Vf Z2ZuX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faHZtX2FsdHAybV9jaGFuZ2VfZ2Zu X3QpOworCitzdHJ1Y3QgeGVuX2h2bV9hbHRwMm1fb3AgeworICAgIHVpbnQzMl90IHZlcnNpb247 ICAgLyogSFZNT1BfQUxUUDJNX0lOVEVSRkFDRV9WRVJTSU9OICovCisgICAgdWludDMyX3QgY21k OworLyogR2V0L3NldCB0aGUgYWx0cDJtIHN0YXRlIGZvciBhIGRvbWFpbiAqLworI2RlZmluZSBI Vk1PUF9hbHRwMm1fZ2V0X2RvbWFpbl9zdGF0ZSAgICAgMQorI2RlZmluZSBIVk1PUF9hbHRwMm1f c2V0X2RvbWFpbl9zdGF0ZSAgICAgMgorLyogU2V0IHRoZSBjdXJyZW50IFZDUFUgdG8gcmVjZWl2 ZSBhbHRwMm0gZXZlbnQgbm90aWZpY2F0aW9ucyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fdmNw dV9lbmFibGVfbm90aWZ5ICAgMworLyogQ3JlYXRlIGEgbmV3IHZpZXcgKi8KKyNkZWZpbmUgSFZN T1BfYWx0cDJtX2NyZWF0ZV9wMm0gICAgICAgICAgIDQKKy8qIERlc3Ryb3kgYSB2aWV3ICovCisj ZGVmaW5lIEhWTU9QX2FsdHAybV9kZXN0cm95X3AybSAgICAgICAgICA1CisvKiBTd2l0Y2ggdmll dyBmb3IgYW4gZW50aXJlIGRvbWFpbiAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc3dpdGNoX3Ay bSAgICAgICAgICAgNgorLyogTm90aWZ5IHRoYXQgYSBwYWdlIG9mIG1lbW9yeSBpcyB0byBoYXZl IHNwZWNpZmljIGFjY2VzcyB0eXBlcyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fc2V0X21lbV9h Y2Nlc3MgICAgICAgNworLyogQ2hhbmdlIGEgcDJtIGVudHJ5IHRvIGhhdmUgYSBkaWZmZXJlbnQg Z2ZuLT5tZm4gbWFwcGluZyAqLworI2RlZmluZSBIVk1PUF9hbHRwMm1fY2hhbmdlX2dmbiAgICAg ICAgICAgOAorICAgIGRvbWlkX3QgZG9tYWluOworICAgIHVpbnQxNl90IHBhZDE7CisgICAgdWlu dDMyX3QgcGFkMjsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB4ZW5faHZtX2FsdHAybV9k b21haW5fc3RhdGUgICAgICAgZG9tYWluX3N0YXRlOworICAgICAgICBzdHJ1Y3QgeGVuX2h2bV9h bHRwMm1fdmNwdV9lbmFibGVfbm90aWZ5IGVuYWJsZV9ub3RpZnk7CisgICAgICAgIHN0cnVjdCB4 ZW5faHZtX2FsdHAybV92aWV3ICAgICAgICAgICAgICAgdmlldzsKKyAgICAgICAgc3RydWN0IHhl bl9odm1fYWx0cDJtX3NldF9tZW1fYWNjZXNzICAgICBzZXRfbWVtX2FjY2VzczsKKyAgICAgICAg c3RydWN0IHhlbl9odm1fYWx0cDJtX2NoYW5nZV9nZm4gICAgICAgICBjaGFuZ2VfZ2ZuOworICAg ICAgICB1aW50OF90IHBhZFs2NF07CisgICAgfSB1OworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9o dm1fYWx0cDJtX29wIHhlbl9odm1fYWx0cDJtX29wX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRM RSh4ZW5faHZtX2FsdHAybV9vcF90KTsKKworI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1fSFZN X09QX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1m aWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAor ICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2luY2x1 ZGUveGVuL2h2bS9wYXJhbXMuaCBiL2luY2x1ZGUveGVuL2h2bS9wYXJhbXMuaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjJlYzJlN2M4MAotLS0gL2Rldi9udWxsCisrKyBi L2luY2x1ZGUveGVuL2h2bS9wYXJhbXMuaApAQCAtMCwwICsxLDI4NCBAQAorLyoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUK KyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us IEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq CisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hF Tl9QVUJMSUNfSFZNX1BBUkFNU19IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX0hWTV9QQVJBTVNf SF9fCisKKyNpbmNsdWRlICJodm1fb3AuaCIKKworLyoKKyAqIFBhcmFtZXRlciBzcGFjZSBmb3Ig SFZNT1Bfe3NldCxnZXR9X3BhcmFtLgorICovCisKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNL X0lSUSAwCisjZGVmaW5lIEhWTV9QQVJBTV9DQUxMQkFDS19JUlFfVFlQRV9NQVNLIHhlbl9ta191 bGxvbmcoMHhGRjAwMDAwMDAwMDAwMDAwKQorLyoKKyAqIEhvdyBzaG91bGQgQ1BVMCBldmVudC1j aGFubmVsIG5vdGlmaWNhdGlvbnMgYmUgZGVsaXZlcmVkPworICoKKyAqIElmIHZhbCA9PSAwIHRo ZW4gQ1BVMCBldmVudC1jaGFubmVsIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBkZWxpdmVyZWQuCisg KiBJZiB2YWwgIT0gMCwgdmFsWzYzOjU2XSBlbmNvZGVzIHRoZSB0eXBlLCBhcyBmb2xsb3dzOgor ICovCisKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfR1NJICAgICAgMAorLyoKKyAq IHZhbFs1NTowXSBpcyBhIGRlbGl2ZXJ5IEdTSS4gIEdTSSAwIGNhbm5vdCBiZSB1c2VkLCBhcyBp dCBhbGlhc2VzIHZhbCA9PSAwLAorICogYW5kIGRpc2FibGVzIGFsbCBub3RpZmljYXRpb25zLgor ICovCisKKyNkZWZpbmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfUENJX0lOVFggMQorLyoKKyAq IHZhbFs1NTowXSBpcyBhIGRlbGl2ZXJ5IFBDSSBJTlR4IGxpbmU6CisgKiBEb21haW4gPSB2YWxb NDc6MzJdLCBCdXMgPSB2YWxbMzE6MTZdIERldkZuID0gdmFsWzE1OjhdLCBJbnRYID0gdmFsWzE6 MF0KKyAqLworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQor I2RlZmluZSBIVk1fUEFSQU1fQ0FMTEJBQ0tfVFlQRV9WRUNUT1IgICAyCisvKgorICogdmFsWzc6 MF0gaXMgYSB2ZWN0b3IgbnVtYmVyLiAgQ2hlY2sgZm9yIFhFTkZFQVRfaHZtX2NhbGxiYWNrX3Zl Y3RvciB0byBrbm93CisgKiBpZiB0aGlzIGRlbGl2ZXJ5IG1ldGhvZCBpcyBhdmFpbGFibGUuCisg Ki8KKyNlbGlmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKKyNkZWZp bmUgSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfUFBJICAgICAgMgorLyoKKyAqIHZhbFs1NToxNl0g bmVlZHMgdG8gYmUgemVyby4KKyAqIHZhbFsxNTo4XSBpcyBpbnRlcnJ1cHQgZmxhZyBvZiB0aGUg UFBJIHVzZWQgYnkgZXZlbnQtY2hhbm5lbDoKKyAqICBiaXQgODogdGhlIFBQSSBpcyBlZGdlKDEp IG9yIGxldmVsKDApIHRyaWdnZXJlZAorICogIGJpdCA5OiB0aGUgUFBJIGlzIGFjdGl2ZSBsb3co MSkgb3IgaGlnaCgwKQorICogdmFsWzc6MF0gaXMgYSBQUEkgbnVtYmVyIHVzZWQgYnkgZXZlbnQt Y2hhbm5lbC4KKyAqIFRoaXMgaXMgb25seSB1c2VkIGJ5IEFSTS9BUk02NCBhbmQgbWFza2luZy9l b2kgdGhlIGludGVycnVwdCBhc3NvY2lhdGVkIHRvCisgKiB0aGUgbm90aWZpY2F0aW9uIGlzIGhh bmRsZWQgYnkgdGhlIGludGVycnVwdCBjb250cm9sbGVyLgorICovCisjZGVmaW5lIEhWTV9QQVJB TV9DQUxMQkFDS19UWVBFX1BQSV9GTEFHX01BU0sgICAgICAweEZGMDAKKyNkZWZpbmUgSFZNX1BB UkFNX0NBTExCQUNLX1RZUEVfUFBJX0ZMQUdfTE9XX0xFVkVMIDIKKyNlbmRpZgorCisvKgorICog VGhlc2UgYXJlIG5vdCB1c2VkIGJ5IFhlbi4gVGhleSBhcmUgaGVyZSBmb3IgY29udmVuaWVuY2Ug b2YgSFZNLWd1ZXN0CisgKiB4ZW5idXMgaW1wbGVtZW50YXRpb25zLgorICovCisjZGVmaW5lIEhW TV9QQVJBTV9TVE9SRV9QRk4gICAgMQorI2RlZmluZSBIVk1fUEFSQU1fU1RPUkVfRVZUQ0hOIDIK KworI2RlZmluZSBIVk1fUEFSQU1fUEFFX0VOQUJMRUQgIDQKKworI2RlZmluZSBIVk1fUEFSQU1f SU9SRVFfUEZOICAgIDUKKworI2RlZmluZSBIVk1fUEFSQU1fQlVGSU9SRVFfUEZOIDYKKyNkZWZp bmUgSFZNX1BBUkFNX0JVRklPUkVRX0VWVENITiAyNgorCisjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3g4Nl82NF9fKQorCisvKgorICogVmlyaWRpYW4gZW5saWdodGVubWVudHMK KyAqCisgKiAoU2VlIGh0dHA6Ly9kb3dubG9hZC5taWNyb3NvZnQuY29tL2Rvd25sb2FkL0EvQi80 L0FCNDNBMzRFLUJERDAtNEZBNi1CREVGLTc5RUVGMTZFODgwQi9IeXBlcnZpc29yJTIwVG9wJTIw TGV2ZWwlMjBGdW5jdGlvbmFsJTIwU3BlY2lmaWNhdGlvbiUyMHY0LjAuZG9jeCkKKyAqCisgKiBU byBleHBvc2UgdmlyaWRpYW4gZW5saWdodGVubWVudHMgdG8gdGhlIGd1ZXN0IHNldCB0aGlzIHBh cmFtZXRlcgorICogdG8gdGhlIGRlc2lyZWQgZmVhdHVyZSBtYXNrLiBUaGUgYmFzZSBmZWF0dXJl IHNldCBtdXN0IGJlIHByZXNlbnQKKyAqIGluIGFueSB2YWxpZCBmZWF0dXJlIG1hc2suCisgKi8K KyNkZWZpbmUgSFZNX1BBUkFNX1ZJUklESUFOICAgICA5CisKKy8qIEJhc2UrRnJlcSB2aXJpZGlh biBmZWF0dXJlIHNldHM6CisgKgorICogLSBIeXBlcmNhbGwgTVNScyAoSFZfWDY0X01TUl9HVUVT VF9PU19JRCBhbmQgSFZfWDY0X01TUl9IWVBFUkNBTEwpCisgKiAtIEFQSUMgYWNjZXNzIE1TUnMg KEhWX1g2NF9NU1JfRU9JLCBIVl9YNjRfTVNSX0lDUiBhbmQgSFZfWDY0X01TUl9UUFIpCisgKiAt IFZpcnR1YWwgUHJvY2Vzc29yIGluZGV4IE1TUiAoSFZfWDY0X01TUl9WUF9JTkRFWCkKKyAqIC0g VGltZXIgZnJlcXVlbmN5IE1TUnMgKEhWX1g2NF9NU1JfVFNDX0ZSRVFVRU5DWSBhbmQKKyAqICAg SFZfWDY0X01TUl9BUElDX0ZSRVFVRU5DWSkKKyAqLworI2RlZmluZSBfSFZNUFZfYmFzZV9mcmVx IDAKKyNkZWZpbmUgSFZNUFZfYmFzZV9mcmVxICAoMSA8PCBfSFZNUFZfYmFzZV9mcmVxKQorCisv KiBGZWF0dXJlIHNldCBtb2RpZmljYXRpb25zICovCisKKy8qIERpc2FibGUgdGltZXIgZnJlcXVl bmN5IE1TUnMgKEhWX1g2NF9NU1JfVFNDX0ZSRVFVRU5DWSBhbmQKKyAqIEhWX1g2NF9NU1JfQVBJ Q19GUkVRVUVOQ1kpLgorICogVGhpcyBtb2RpZmljYXRpb24gcmVzdG9yZXMgdGhlIHZpcmlkaWFu IGZlYXR1cmUgc2V0IHRvIHRoZQorICogb3JpZ2luYWwgJ2Jhc2UnIHNldCBleHBvc2VkIGluIHJl bGVhc2VzIHByaW9yIHRvIFhlbiA0LjQuCisgKi8KKyNkZWZpbmUgX0hWTVBWX25vX2ZyZXEgMQor I2RlZmluZSBIVk1QVl9ub19mcmVxICAoMSA8PCBfSFZNUFZfbm9fZnJlcSkKKworLyogRW5hYmxl IFBhcnRpdGlvbiBUaW1lIFJlZmVyZW5jZSBDb3VudGVyIChIVl9YNjRfTVNSX1RJTUVfUkVGX0NP VU5UKSAqLworI2RlZmluZSBfSFZNUFZfdGltZV9yZWZfY291bnQgMgorI2RlZmluZSBIVk1QVl90 aW1lX3JlZl9jb3VudCAgKDEgPDwgX0hWTVBWX3RpbWVfcmVmX2NvdW50KQorCisvKiBFbmFibGUg UmVmZXJlbmNlIFRTQyBQYWdlIChIVl9YNjRfTVNSX1JFRkVSRU5DRV9UU0MpICovCisjZGVmaW5l IF9IVk1QVl9yZWZlcmVuY2VfdHNjIDMKKyNkZWZpbmUgSFZNUFZfcmVmZXJlbmNlX3RzYyAgKDEg PDwgX0hWTVBWX3JlZmVyZW5jZV90c2MpCisKKy8qIFVzZSBIeXBlcmNhbGwgZm9yIHJlbW90ZSBU TEIgZmx1c2ggKi8KKyNkZWZpbmUgX0hWTVBWX2hjYWxsX3JlbW90ZV90bGJfZmx1c2ggNAorI2Rl ZmluZSBIVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoICgxIDw8IF9IVk1QVl9oY2FsbF9yZW1v dGVfdGxiX2ZsdXNoKQorCisvKiBVc2UgQVBJQyBhc3Npc3QgKi8KKyNkZWZpbmUgX0hWTVBWX2Fw aWNfYXNzaXN0IDUKKyNkZWZpbmUgSFZNUFZfYXBpY19hc3Npc3QgKDEgPDwgX0hWTVBWX2FwaWNf YXNzaXN0KQorCisvKiBFbmFibGUgY3Jhc2ggTVNScyAqLworI2RlZmluZSBfSFZNUFZfY3Jhc2hf Y3RsIDYKKyNkZWZpbmUgSFZNUFZfY3Jhc2hfY3RsICgxIDw8IF9IVk1QVl9jcmFzaF9jdGwpCisK KyNkZWZpbmUgSFZNUFZfZmVhdHVyZV9tYXNrIFwKKyAgICAgICAgKEhWTVBWX2Jhc2VfZnJlcSB8 IFwKKyAgICAgICAgIEhWTVBWX25vX2ZyZXEgfCBcCisgICAgICAgICBIVk1QVl90aW1lX3JlZl9j b3VudCB8IFwKKyAgICAgICAgIEhWTVBWX3JlZmVyZW5jZV90c2MgfCBcCisgICAgICAgICBIVk1Q Vl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoIHwgXAorICAgICAgICAgSFZNUFZfYXBpY19hc3Npc3Qg fCBcCisgICAgICAgICBIVk1QVl9jcmFzaF9jdGwpCisKKyNlbmRpZgorCisvKgorICogU2V0IG1v ZGUgZm9yIHZpcnR1YWwgdGltZXJzIChjdXJyZW50bHkgeDg2IG9ubHkpOgorICogIGRlbGF5X2Zv cl9taXNzZWRfdGlja3MgKGRlZmF1bHQpOgorICogICBEbyBub3QgYWR2YW5jZSBhIHZjcHUncyB0 aW1lIGJleW9uZCB0aGUgY29ycmVjdCBkZWxpdmVyeSB0aW1lIGZvcgorICogICBpbnRlcnJ1cHRz IHRoYXQgaGF2ZSBiZWVuIG1pc3NlZCBkdWUgdG8gcHJlZW1wdGlvbi4gRGVsaXZlciBtaXNzZWQK KyAqICAgaW50ZXJydXB0cyB3aGVuIHRoZSB2Y3B1IGlzIHJlc2NoZWR1bGVkIGFuZCBhZHZhbmNl IHRoZSB2Y3B1J3MgdmlydHVhbAorICogICB0aW1lIHN0ZXB3aXNlIGZvciBlYWNoIG9uZS4KKyAq ICBub19kZWxheV9mb3JfbWlzc2VkX3RpY2tzOgorICogICBBcyBhYm92ZSwgbWlzc2VkIGludGVy cnVwdHMgYXJlIGRlbGl2ZXJlZCwgYnV0IGd1ZXN0IHRpbWUgYWx3YXlzIHRyYWNrcworICogICB3 YWxsY2xvY2sgKGkuZS4sIHJlYWwpIHRpbWUgd2hpbGUgZG9pbmcgc28uCisgKiAgbm9fbWlzc2Vk X3RpY2tzX3BlbmRpbmc6CisgKiAgIE5vIG1pc3NlZCBpbnRlcnJ1cHRzIGFyZSBoZWxkIHBlbmRp bmcuIEluc3RlYWQsIHRvIGVuc3VyZSB0aWNrcyBhcmUKKyAqICAgZGVsaXZlcmVkIGF0IHNvbWUg bm9uLXplcm8gcmF0ZSwgaWYgd2UgZGV0ZWN0IG1pc3NlZCB0aWNrcyB0aGVuIHRoZQorICogICBp bnRlcm5hbCB0aWNrIGFsYXJtIGlzIG5vdCBkaXNhYmxlZCBpZiB0aGUgVkNQVSBpcyBwcmVlbXB0 ZWQgZHVyaW5nIHRoZQorICogICBuZXh0IHRpY2sgcGVyaW9kLgorICogIG9uZV9taXNzZWRfdGlj a19wZW5kaW5nOgorICogICBNaXNzZWQgaW50ZXJydXB0cyBhcmUgY29sbGFwc2VkIHRvZ2V0aGVy IGFuZCBkZWxpdmVyZWQgYXMgb25lICdsYXRlIHRpY2snLgorICogICBHdWVzdCB0aW1lIGFsd2F5 cyB0cmFja3Mgd2FsbGNsb2NrIChpLmUuLCByZWFsKSB0aW1lLgorICovCisjZGVmaW5lIEhWTV9Q QVJBTV9USU1FUl9NT0RFICAgMTAKKyNkZWZpbmUgSFZNUFRNX2RlbGF5X2Zvcl9taXNzZWRfdGlj a3MgICAgMAorI2RlZmluZSBIVk1QVE1fbm9fZGVsYXlfZm9yX21pc3NlZF90aWNrcyAxCisjZGVm aW5lIEhWTVBUTV9ub19taXNzZWRfdGlja3NfcGVuZGluZyAgIDIKKyNkZWZpbmUgSFZNUFRNX29u ZV9taXNzZWRfdGlja19wZW5kaW5nICAgMworCisvKiBCb29sZWFuOiBFbmFibGUgdmlydHVhbCBI UEVUIChoaWdoLXByZWNpc2lvbiBldmVudCB0aW1lcik/ICh4ODYtb25seSkgKi8KKyNkZWZpbmUg SFZNX1BBUkFNX0hQRVRfRU5BQkxFRCAxMQorCisvKiBJZGVudGl0eS1tYXAgcGFnZSBkaXJlY3Rv cnkgdXNlZCBieSBJbnRlbCBFUFQgd2hlbiBDUjAuUEc9MC4gKi8KKyNkZWZpbmUgSFZNX1BBUkFN X0lERU5UX1BUICAgICAxMgorCisvKiBEZXZpY2UgTW9kZWwgZG9tYWluLCBkZWZhdWx0cyB0byAw LiAqLworI2RlZmluZSBIVk1fUEFSQU1fRE1fRE9NQUlOICAgIDEzCisKKy8qIEFDUEkgUyBzdGF0 ZTogY3VycmVudGx5IHN1cHBvcnQgUzAgYW5kIFMzIG9uIHg4Ni4gKi8KKyNkZWZpbmUgSFZNX1BB UkFNX0FDUElfU19TVEFURSAxNAorCisvKiBUU1MgdXNlZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0w LiAqLworI2RlZmluZSBIVk1fUEFSQU1fVk04Nl9UU1MgICAgIDE1CisKKy8qIEJvb2xlYW46IEVu YWJsZSBhbGlnbmluZyBhbGwgcGVyaW9kaWMgdnB0cyB0byByZWR1Y2UgaW50ZXJydXB0cyAqLwor I2RlZmluZSBIVk1fUEFSQU1fVlBUX0FMSUdOICAgIDE2CisKKy8qIENvbnNvbGUgZGVidWcgc2hh cmVkIG1lbW9yeSByaW5nIGFuZCBldmVudCBjaGFubmVsICovCisjZGVmaW5lIEhWTV9QQVJBTV9D T05TT0xFX1BGTiAgICAxNworI2RlZmluZSBIVk1fUEFSQU1fQ09OU09MRV9FVlRDSE4gMTgKKwor LyoKKyAqIFNlbGVjdCBsb2NhdGlvbiBvZiBBQ1BJIFBNMWEgYW5kIFRNUiBjb250cm9sIGJsb2Nr cy4gQ3VycmVudGx5IHR3byBsb2NhdGlvbnMKKyAqIGFyZSBzdXBwb3J0ZWQsIHNwZWNpZmllZCBi eSB2ZXJzaW9uIDAgb3IgMSBpbiB0aGlzIHBhcmFtZXRlcjoKKyAqICAgLSAwOiBkZWZhdWx0LCB1 c2UgdGhlIG9sZCBhZGRyZXNzZXMKKyAqICAgICAgICBQTTFBX0VWVCA9PSAweDFmNDA7IFBNMUFf Q05UID09IDB4MWY0NDsgUE1fVE1SID09IDB4MWY0OAorICogICAtIDE6IHVzZSB0aGUgbmV3IGRl ZmF1bHQgcWVtdSBhZGRyZXNzZXMKKyAqICAgICAgICBQTTFBX0VWVCA9PSAweGIwMDA7IFBNMUFf Q05UID09IDB4YjAwNDsgUE1fVE1SID09IDB4YjAwOAorICogWW91IGNhbiBmaW5kIHRoZXNlIGFk ZHJlc3MgZGVmaW5pdGlvbnMgaW4gPGh2bS9pb3JlcS5oPgorICovCisjZGVmaW5lIEhWTV9QQVJB TV9BQ1BJX0lPUE9SVFNfTE9DQVRJT04gMTkKKworLyogRGVwcmVjYXRlZCAqLworI2RlZmluZSBI Vk1fUEFSQU1fTUVNT1JZX0VWRU5UX0NSMCAgICAgICAgICAyMAorI2RlZmluZSBIVk1fUEFSQU1f TUVNT1JZX0VWRU5UX0NSMyAgICAgICAgICAyMQorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VW RU5UX0NSNCAgICAgICAgICAyMgorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX0lOVDMg ICAgICAgICAyMworI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX1NJTkdMRV9TVEVQICAy NQorI2RlZmluZSBIVk1fUEFSQU1fTUVNT1JZX0VWRU5UX01TUiAgICAgICAgICAzMAorCisvKiBC b29sZWFuOiBFbmFibGUgbmVzdGVkaHZtIChodm0gb25seSkgKi8KKyNkZWZpbmUgSFZNX1BBUkFN X05FU1RFREhWTSAgICAyNAorCisvKiBQYXJhbXMgZm9yIHRoZSBtZW0gZXZlbnQgcmluZ3MgKi8K KyNkZWZpbmUgSFZNX1BBUkFNX1BBR0lOR19SSU5HX1BGTiAgIDI3CisjZGVmaW5lIEhWTV9QQVJB TV9NT05JVE9SX1JJTkdfUEZOICAyOAorI2RlZmluZSBIVk1fUEFSQU1fU0hBUklOR19SSU5HX1BG TiAgMjkKKworLyogU0hVVERPV05fKiBhY3Rpb24gaW4gY2FzZSBvZiBhIHRyaXBsZSBmYXVsdCAq LworI2RlZmluZSBIVk1fUEFSQU1fVFJJUExFX0ZBVUxUX1JFQVNPTiAzMQorCisjZGVmaW5lIEhW TV9QQVJBTV9JT1JFUV9TRVJWRVJfUEZOIDMyCisjZGVmaW5lIEhWTV9QQVJBTV9OUl9JT1JFUV9T RVJWRVJfUEFHRVMgMzMKKworLyogTG9jYXRpb24gb2YgdGhlIFZNIEdlbmVyYXRpb24gSUQgaW4g Z3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZS4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX1ZNX0dF TkVSQVRJT05fSURfQUREUiAzNAorCisvKgorICogU2V0IG1vZGUgZm9yIGFsdHAybToKKyAqICBk aXNhYmxlZDogZG9uJ3QgYWN0aXZhdGUgYWx0cDJtIChkZWZhdWx0KQorICogIG1peGVkOiBhbGxv dyBhY2Nlc3MgdG8gYWxsIGFsdHAybSBvcHMgZm9yIGJvdGggaW4tZ3Vlc3QgYW5kIGV4dGVybmFs IHRvb2xzCisgKiAgZXh0ZXJuYWw6IGFsbG93IGFjY2VzcyB0byBleHRlcm5hbCBwcml2aWxlZ2Vk IHRvb2xzIG9ubHkKKyAqICBsaW1pdGVkOiBndWVzdCBvbmx5IGhhcyBsaW1pdGVkIGFjY2VzcyAo aWUuIGNvbnRyb2wgVk1GVU5DIGFuZCAjVkUpCisgKi8KKyNkZWZpbmUgSFZNX1BBUkFNX0FMVFAy TSAgICAgICAzNQorI2RlZmluZSBYRU5fQUxUUDJNX2Rpc2FibGVkICAgICAgMAorI2RlZmluZSBY RU5fQUxUUDJNX21peGVkICAgICAgICAgMQorI2RlZmluZSBYRU5fQUxUUDJNX2V4dGVybmFsICAg ICAgMgorI2RlZmluZSBYRU5fQUxUUDJNX2xpbWl0ZWQgICAgICAgMworCisvKgorICogU2l6ZSBv ZiB0aGUgeDg3IEZQVSBGSVAvRkRQIHJlZ2lzdGVycyB0aGF0IHRoZSBoeXBlcnZpc29yIG5lZWRz IHRvCisgKiBzYXZlL3Jlc3RvcmUuICBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYSBoYXJkd2Fy ZSBsaW1pdGF0aW9uIHRoYXQKKyAqIGRvZXMgbm90IGFsbG93IHRoZSBmdWxsIEZJUC9GRFAgYW5k IEZDUy9GRFMgdG8gYmUgcmVzdG9yZWQuCisgKgorICogVmFsaWQgdmFsdWVzIGFyZToKKyAqCisg KiA4OiBzYXZlL3Jlc3RvcmUgNjQtYml0IEZJUC9GRFAgYW5kIGNsZWFyIEZDUy9GRFMgKGRlZmF1 bHQgaWYgQ1BVCisgKiAgICBoYXMgRlBDU0RTIGZlYXR1cmUpLgorICoKKyAqIDQ6IHNhdmUvcmVz dG9yZSAzMi1iaXQgRklQL0ZEUCwgRkNTL0ZEUywgYW5kIGNsZWFyIHVwcGVyIDMyLWJpdHMgb2YK KyAqICAgIEZJUC9GRFAuCisgKgorICogMDogYWxsb3cgaHlwZXJ2aXNvciB0byBjaG9vc2UgYmFz ZWQgb24gdGhlIHZhbHVlIG9mIEZJUC9GRFAKKyAqICAgIChkZWZhdWx0IGlmIENQVSBkb2VzIG5v dCBoYXZlIEZQQ1NEUykuCisgKgorICogSWYgRlBDU0RTIChiaXQgMTMgaW4gQ1BVSUQgbGVhZiAw eDcsIHN1YmxlYWYgMHgwKSBpcyBzZXQsIHRoZSBDUFUKKyAqIG5ldmVyIHNhdmVzIEZDUy9GRFMg YW5kIHRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSBsZWZ0IGF0IHRoZQorICogZGVmYXVsdCBvZiA4 LgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9YODdfRklQX1dJRFRIIDM2CisKKy8qCisgKiBUU1Mg KGFuZCBpdHMgc2l6ZSkgdXNlZCBvbiBJbnRlbCB3aGVuIENSMC5QRT0wLiBUaGUgYWRkcmVzcyBv Y2N1cGllcworICogdGhlIGxvdyAzMiBiaXRzLCB3aGlsZSB0aGUgc2l6ZSBpcyBpbiB0aGUgaGln aCAzMiBvbmVzLgorICovCisjZGVmaW5lIEhWTV9QQVJBTV9WTTg2X1RTU19TSVpFRCAzNworCisv KiBFbmFibGUgTUNBIGNhcGFiaWxpdGllcy4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX01DQV9DQVAg MzgKKyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgICAoeGVuX21rX3VsbG9uZygxKSA8PCAw KQorI2RlZmluZSBYRU5fSFZNX01DQV9DQVBfTUFTSyAgIFhFTl9IVk1fTUNBX0NBUF9MTUNFCisK KyNkZWZpbmUgSFZNX05SX1BBUkFNUyAzOQorCisjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9Q QVJBTVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9odm0vc3RhcnRfaW5mby5oIGIv aW5jbHVkZS94ZW4vaHZtL3N0YXJ0X2luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjY0ODQxNTk3NgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL2h2bS9z dGFydF9pbmZvLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkK KyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAo dGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0 cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJpZ2h0cyB0byB1 c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2Us IGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQg aW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBDb3B5cmlnaHQg KGMpIDIwMTYsIENpdHJpeCBTeXN0ZW1zLCBJbmMuCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJM SUNfQVJDSF9YODZfSFZNX1NUQVJUX0lORk9fSF9fCisjZGVmaW5lIF9fWEVOX1BVQkxJQ19BUkNI X1g4Nl9IVk1fU1RBUlRfSU5GT19IX18KKworLyoKKyAqIFN0YXJ0IG9mIGRheSBzdHJ1Y3R1cmUg cGFzc2VkIHRvIFBWSCBndWVzdHMgYW5kIHRvIEhWTSBndWVzdHMgaW4gJWVieC4KKyAqCisgKiBO T1RFOiBub3RoaW5nIHdpbGwgYmUgbG9hZGVkIGF0IHBoeXNpY2FsIGFkZHJlc3MgMCwgc28gYSAw IHZhbHVlIGluIGFueQorICogb2YgdGhlIGFkZHJlc3MgZmllbGRzIHNob3VsZCBiZSB0cmVhdGVk IGFzIG5vdCBwcmVzZW50LgorICoKKyAqICAwICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBt YWdpYyAgICAgICAgICB8IENvbnRhaW5zIHRoZSBtYWdpYyB2YWx1ZSBYRU5fSFZNX1NUQVJUX01B R0lDX1ZBTFVFCisgKiAgICB8ICAgICAgICAgICAgICAgIHwgKCJ4RW4zIiB3aXRoIHRoZSAweDgw IGJpdCBvZiB0aGUgIkUiIHNldCkuCisgKiAgNCArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwg dmVyc2lvbiAgICAgICAgfCBWZXJzaW9uIG9mIHRoaXMgc3RydWN0dXJlLiBDdXJyZW50IHZlcnNp b24gaXMgMC4gTmV3CisgKiAgICB8ICAgICAgICAgICAgICAgIHwgdmVyc2lvbnMgYXJlIGd1YXJh bnRlZWQgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUuCisgKiAgOCArLS0tLS0tLS0tLS0tLS0t LSsKKyAqICAgIHwgZmxhZ3MgICAgICAgICAgfCBTSUZfeHh4IGZsYWdzLgorICogMTIgKy0tLS0t LS0tLS0tLS0tLS0rCisgKiAgICB8IG5yX21vZHVsZXMgICAgIHwgTnVtYmVyIG9mIG1vZHVsZXMg cGFzc2VkIHRvIHRoZSBrZXJuZWwuCisgKiAxNiArLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgIHwg bW9kbGlzdF9wYWRkciAgfCBQaHlzaWNhbCBhZGRyZXNzIG9mIGFuIGFycmF5IG9mIG1vZHVsZXMK KyAqICAgIHwgICAgICAgICAgICAgICAgfCAobGF5b3V0IG9mIHRoZSBzdHJ1Y3R1cmUgYmVsb3cp LgorICogMjQgKy0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICB8IGNtZGxpbmVfcGFkZHIgIHwgUGh5 c2ljYWwgYWRkcmVzcyBvZiB0aGUgY29tbWFuZCBsaW5lLAorICogICAgfCAgICAgICAgICAgICAg ICB8IGEgemVyby10ZXJtaW5hdGVkIEFTQ0lJIHN0cmluZy4KKyAqIDMyICstLS0tLS0tLS0tLS0t LS0tKworICogICAgfCByc2RwX3BhZGRyICAgICB8IFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIFJT RFAgQUNQSSBkYXRhIHN0cnVjdHVyZS4KKyAqIDQwICstLS0tLS0tLS0tLS0tLS0tKworICoKKyAq IFRoZSBsYXlvdXQgb2YgZWFjaCBlbnRyeSBpbiB0aGUgbW9kdWxlIHN0cnVjdHVyZSBpcyB0aGUg Zm9sbG93aW5nOgorICoKKyAqICAwICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBwYWRkciAg ICAgICAgICB8IFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4KKyAqICA4ICstLS0tLS0t LS0tLS0tLS0tKworICogICAgfCBzaXplICAgICAgICAgICB8IFNpemUgb2YgdGhlIG1vZHVsZSBp biBieXRlcy4KKyAqIDE2ICstLS0tLS0tLS0tLS0tLS0tKworICogICAgfCBjbWRsaW5lX3BhZGRy ICB8IFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZSwKKyAqICAgIHwgICAgICAg ICAgICAgICAgfCBhIHplcm8tdGVybWluYXRlZCBBU0NJSSBzdHJpbmcuCisgKiAyNCArLS0tLS0t LS0tLS0tLS0tLSsKKyAqICAgIHwgcmVzZXJ2ZWQgICAgICAgfAorICogMzIgKy0tLS0tLS0tLS0t LS0tLS0rCisgKgorICogVGhlIGFkZHJlc3MgYW5kIHNpemVzIGFyZSBhbHdheXMgYSA2NGJpdCBs aXR0bGUgZW5kaWFuIHVuc2lnbmVkIGludGVnZXIuCisgKgorICogTkI6IFhlbiBvbiB4ODYgd2ls bCBhbHdheXMgdHJ5IHRvIHBsYWNlIGFsbCB0aGUgZGF0YSBiZWxvdyB0aGUgNEdpQgorICogYm91 bmRhcnkuCisgKi8KKyNkZWZpbmUgWEVOX0hWTV9TVEFSVF9NQUdJQ19WQUxVRSAweDMzNmVjNTc4 CisKKy8qCisgKiBDIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB4ODYvSFZNIHN0YXJ0IGluZm8gbGF5 b3V0LgorICoKKyAqIFRoZSBjYW5vbmljYWwgZGVmaW5pdGlvbiBvZiB0aGlzIGxheW91dCBpcyBh Ym92ZSwgdGhpcyBpcyBqdXN0IGEgd2F5IHRvCisgKiByZXByZXNlbnQgdGhlIGxheW91dCBkZXNj cmliZWQgdGhlcmUgdXNpbmcgQyB0eXBlcy4KKyAqLworc3RydWN0IGh2bV9zdGFydF9pbmZvIHsK KyAgICB1aW50MzJfdCBtYWdpYzsgICAgICAgICAgICAgLyogQ29udGFpbnMgdGhlIG1hZ2ljIHZh bHVlIDB4MzM2ZWM1NzggICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogKCJ4RW4zIiB3aXRoIHRoZSAweDgwIGJpdCBvZiB0aGUgIkUiIHNldCkuKi8KKyAgICB1aW50 MzJfdCB2ZXJzaW9uOyAgICAgICAgICAgLyogVmVyc2lvbiBvZiB0aGlzIHN0cnVjdHVyZS4gICAg ICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCBmbGFnczsgICAgICAgICAgICAgLyogU0lGX3h4 eCBmbGFncy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCBucl9t b2R1bGVzOyAgICAgICAgLyogTnVtYmVyIG9mIG1vZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJuZWwu ICAgKi8KKyAgICB1aW50NjRfdCBtb2RsaXN0X3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVz cyBvZiBhbiBhcnJheSBvZiAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogaHZtX21vZGxpc3RfZW50cnkuICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAg ICB1aW50NjRfdCBjbWRsaW5lX3BhZGRyOyAgICAgLyogUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUg Y29tbWFuZCBsaW5lLiAgICAgKi8KKyAgICB1aW50NjRfdCByc2RwX3BhZGRyOyAgICAgICAgLyog UGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgUlNEUCBBQ1BJIGRhdGEgICAgKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogc3RydWN0dXJlLiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KK307CisKK3N0cnVjdCBodm1fbW9kbGlzdF9lbnRyeSB7CisgICAgdWludDY0 X3QgcGFkZHI7ICAgICAgICAgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4g ICAgICAgICAgICovCisgICAgdWludDY0X3Qgc2l6ZTsgICAgICAgICAgICAgIC8qIFNpemUgb2Yg dGhlIG1vZHVsZSBpbiBieXRlcy4gICAgICAgICAgICAgICovCisgICAgdWludDY0X3QgY21kbGlu ZV9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1hbmQgbGluZS4gICAg ICovCisgICAgdWludDY0X3QgcmVzZXJ2ZWQ7Cit9OworCisjZW5kaWYgLyogX19YRU5fUFVCTElD X0FSQ0hfWDg2X0hWTV9TVEFSVF9JTkZPX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4v bWVtb3J5LmggYi9pbmNsdWRlL3hlbi9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLjI5Mzg2ZGY5OAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL21l bW9yeS5oCkBAIC0wLDAgKzEsNjY1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBtZW1v cnkuaAorICogCisgKiBNZW1vcnkgcmVzZXJ2YXRpb24gYW5kIGluZm9ybWF0aW9uLgorICogCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1LCBLZWlyIEZyYXNlciA8a2VpckB4ZW5zb3Vy Y2UuY29tPgorICovCisKKyNpZm5kZWYgX19YRU5fUFVCTElDX01FTU9SWV9IX18KKyNkZWZpbmUg X19YRU5fUFVCTElDX01FTU9SWV9IX18KKworI2luY2x1ZGUgInhlbi5oIgorI2luY2x1ZGUgInBo eXNkZXYuaCIKKworLyoKKyAqIEluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBzcGVjaWZpZWQgZG9t YWluJ3MgbWVtb3J5IHJlc2VydmF0aW9uLiBSZXR1cm5zIHRoZQorICogbnVtYmVyIG9mIGV4dGVu dHMgc3VjY2Vzc2Z1bGx5IGFsbG9jYXRlZCBvciBmcmVlZC4KKyAqIGFyZyA9PSBhZGRyIG9mIHN0 cnVjdCB4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uLgorICovCisjZGVmaW5lIFhFTk1FTV9pbmNyZWFz ZV9yZXNlcnZhdGlvbiAwCisjZGVmaW5lIFhFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlvbiAxCisj ZGVmaW5lIFhFTk1FTV9wb3B1bGF0ZV9waHlzbWFwICAgICA2CisKKyNpZiBfX1hFTl9JTlRFUkZB Q0VfVkVSU0lPTl9fID49IDB4MDAwMzAyMDkKKy8qCisgKiBNYXhpbXVtICMgYml0cyBhZGRyZXNz YWJsZSBieSB0aGUgdXNlciBvZiB0aGUgYWxsb2NhdGVkIHJlZ2lvbiAoZS5nLiwgSS9PIAorICog ZGV2aWNlcyBvZnRlbiBoYXZlIGEgMzItYml0IGxpbWl0YXRpb24gZXZlbiBpbiA2NC1iaXQgc3lz dGVtcykuIElmIHplcm8gCisgKiB0aGVuIHRoZSB1c2VyIGhhcyBubyBhZGRyZXNzaW5nIHJlc3Ry aWN0aW9uLiBUaGlzIGZpZWxkIGlzIG5vdCB1c2VkIGJ5IAorICogWEVOTUVNX2RlY3JlYXNlX3Jl c2VydmF0aW9uLgorICovCisjZGVmaW5lIFhFTk1FTUZfYWRkcmVzc19iaXRzKHgpICAgICAoeCkK KyNkZWZpbmUgWEVOTUVNRl9nZXRfYWRkcmVzc19iaXRzKHgpICgoeCkgJiAweGZmdSkKKy8qIE5V TUEgbm9kZSB0byBhbGxvY2F0ZSBmcm9tLiAqLworI2RlZmluZSBYRU5NRU1GX25vZGUoeCkgICAg ICgoKHgpICsgMSkgPDwgOCkKKyNkZWZpbmUgWEVOTUVNRl9nZXRfbm9kZSh4KSAoKCgoeCkgPj4g OCkgLSAxKSAmIDB4ZmZ1KQorLyogRmxhZyB0byBwb3B1bGF0ZSBwaHlzbWFwIHdpdGggcG9wdWxh dGUtb24tZGVtYW5kIGVudHJpZXMgKi8KKyNkZWZpbmUgWEVOTUVNRl9wb3B1bGF0ZV9vbl9kZW1h bmQgKDE8PDE2KQorLyogRmxhZyB0byByZXF1ZXN0IGFsbG9jYXRpb24gb25seSBmcm9tIHRoZSBu b2RlIHNwZWNpZmllZCAqLworI2RlZmluZSBYRU5NRU1GX2V4YWN0X25vZGVfcmVxdWVzdCAgKDE8 PDE3KQorI2RlZmluZSBYRU5NRU1GX2V4YWN0X25vZGUobikgKFhFTk1FTUZfbm9kZShuKSB8IFhF Tk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0KQorLyogRmxhZyB0byBpbmRpY2F0ZSB0aGUgbm9kZSBz cGVjaWZpZWQgaXMgdmlydHVhbCBub2RlICovCisjZGVmaW5lIFhFTk1FTUZfdm5vZGUgICgxPDwx OCkKKyNlbmRpZgorCitzdHJ1Y3QgeGVuX21lbW9yeV9yZXNlcnZhdGlvbiB7CisKKyAgICAvKgor ICAgICAqIFhFTk1FTV9pbmNyZWFzZV9yZXNlcnZhdGlvbjoKKyAgICAgKiAgIE9VVDogTUZOICgq bm90KiBHTUZOKSBiYXNlcyBvZiBleHRlbnRzIHRoYXQgd2VyZSBhbGxvY2F0ZWQKKyAgICAgKiBY RU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb246CisgICAgICogICBJTjogIEdNRk4gYmFzZXMgb2Yg ZXh0ZW50cyB0byBmcmVlCisgICAgICogWEVOTUVNX3BvcHVsYXRlX3BoeXNtYXA6CisgICAgICog ICBJTjogIEdQRk4gYmFzZXMgb2YgZXh0ZW50cyB0byBwb3B1bGF0ZSB3aXRoIG1lbW9yeQorICAg ICAqICAgT1VUOiBHTUZOIGJhc2VzIG9mIGV4dGVudHMgdGhhdCB3ZXJlIGFsbG9jYXRlZAorICAg ICAqICAgKE5CLiBUaGlzIGNvbW1hbmQgYWxzbyB1cGRhdGVzIHRoZSBtYWNoX3RvX3BoeXMgdHJh bnNsYXRpb24gdGFibGUpCisgICAgICogWEVOTUVNX2NsYWltX3BhZ2VzOgorICAgICAqICAgSU46 IG11c3QgYmUgemVybworICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBl eHRlbnRfc3RhcnQ7CisKKyAgICAvKiBOdW1iZXIgb2YgZXh0ZW50cywgYW5kIHNpemUvYWxpZ25t ZW50IG9mIGVhY2ggKDJeZXh0ZW50X29yZGVyIHBhZ2VzKS4gKi8KKyAgICB4ZW5fdWxvbmdfdCAg ICBucl9leHRlbnRzOworICAgIHVuc2lnbmVkIGludCAgIGV4dGVudF9vcmRlcjsKKworI2lmIF9f WEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAzMDIwOQorICAgIC8qIFhFTk1FTUYgZmxh Z3MuICovCisgICAgdW5zaWduZWQgaW50ICAgbWVtX2ZsYWdzOworI2Vsc2UKKyAgICB1bnNpZ25l ZCBpbnQgICBhZGRyZXNzX2JpdHM7CisjZW5kaWYKKworICAgIC8qCisgICAgICogRG9tYWluIHdo b3NlIHJlc2VydmF0aW9uIGlzIGJlaW5nIGNoYW5nZWQuCisgICAgICogVW5wcml2aWxlZ2VkIGRv bWFpbnMgY2FuIHNwZWNpZnkgb25seSBET01JRF9TRUxGLgorICAgICAqLworICAgIGRvbWlkX3Qg ICAgICAgIGRvbWlkOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24g eGVuX21lbW9yeV9yZXNlcnZhdGlvbl90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21l bW9yeV9yZXNlcnZhdGlvbl90KTsKKworLyoKKyAqIEFuIGF0b21pYyBleGNoYW5nZSBvZiBtZW1v cnkgcGFnZXMuIElmIHJldHVybiBjb2RlIGlzIHplcm8gdGhlbgorICogQG91dC5leHRlbnRfbGlz dCBwcm92aWRlcyBHTUZOcyBvZiB0aGUgbmV3bHktYWxsb2NhdGVkIG1lbW9yeS4KKyAqIFJldHVy bnMgemVybyBvbiBjb21wbGV0ZSBzdWNjZXNzLCBvdGhlcndpc2UgYSBuZWdhdGl2ZSBlcnJvciBj b2RlLgorICogT24gY29tcGxldGUgc3VjY2VzcyB0aGVuIGFsd2F5cyBAbnJfZXhjaGFuZ2VkID09 IEBpbi5ucl9leHRlbnRzLgorICogT24gcGFydGlhbCBzdWNjZXNzIEBucl9leGNoYW5nZWQgaW5k aWNhdGVzIGhvdyBtdWNoIHdvcmsgd2FzIGRvbmUuCisgKgorICogTm90ZSB0aGF0IG9ubHkgUFYg Z3Vlc3RzIGNhbiB1c2UgdGhpcyBvcGVyYXRpb24uCisgKi8KKyNkZWZpbmUgWEVOTUVNX2V4Y2hh bmdlICAgICAgICAgICAgIDExCitzdHJ1Y3QgeGVuX21lbW9yeV9leGNoYW5nZSB7CisgICAgLyoK KyAgICAgKiBbSU5dIERldGFpbHMgb2YgbWVtb3J5IGV4dGVudHMgdG8gYmUgZXhjaGFuZ2VkIChH TUZOIGJhc2VzKS4KKyAgICAgKiBOb3RlIHRoYXQgQGluLmFkZHJlc3NfYml0cyBpcyBpZ25vcmVk IGFuZCB1bnVzZWQuCisgICAgICovCisgICAgc3RydWN0IHhlbl9tZW1vcnlfcmVzZXJ2YXRpb24g aW47CisKKyAgICAvKgorICAgICAqIFtJTi9PVVRdIERldGFpbHMgb2YgbmV3IG1lbW9yeSBleHRl bnRzLgorICAgICAqIFdlIHJlcXVpcmUgdGhhdDoKKyAgICAgKiAgMS4gQGluLmRvbWlkID09IEBv dXQuZG9taWQKKyAgICAgKiAgMi4gQGluLm5yX2V4dGVudHMgIDw8IEBpbi5leHRlbnRfb3JkZXIg PT0gCisgICAgICogICAgIEBvdXQubnJfZXh0ZW50cyA8PCBAb3V0LmV4dGVudF9vcmRlcgorICAg ICAqICAzLiBAaW4uZXh0ZW50X3N0YXJ0IGFuZCBAb3V0LmV4dGVudF9zdGFydCBsaXN0cyBtdXN0 IG5vdCBvdmVybGFwCisgICAgICogIDQuIEBvdXQuZXh0ZW50X3N0YXJ0IGxpc3RzIEdQRk4gYmFz ZXMgdG8gYmUgcG9wdWxhdGVkCisgICAgICogIDUuIEBvdXQuZXh0ZW50X3N0YXJ0IGlzIG92ZXJ3 cml0dGVuIHdpdGggYWxsb2NhdGVkIEdNRk4gYmFzZXMKKyAgICAgKi8KKyAgICBzdHJ1Y3QgeGVu X21lbW9yeV9yZXNlcnZhdGlvbiBvdXQ7CisKKyAgICAvKgorICAgICAqIFtPVVRdIE51bWJlciBv ZiBpbnB1dCBleHRlbnRzIHRoYXQgd2VyZSBzdWNjZXNzZnVsbHkgZXhjaGFuZ2VkOgorICAgICAq ICAxLiBUaGUgZmlyc3QgQG5yX2V4Y2hhbmdlZCBpbnB1dCBleHRlbnRzIHdlcmUgc3VjY2Vzc2Z1 bGx5CisgICAgICogICAgIGRlYWxsb2NhdGVkLgorICAgICAqICAyLiBUaGUgY29ycmVzcG9uZGlu ZyBmaXJzdCBlbnRyaWVzIGluIHRoZSBvdXRwdXQgZXh0ZW50IGxpc3QgY29ycmVjdGx5CisgICAg ICogICAgIGluZGljYXRlIHRoZSBHTUZOcyB0aGF0IHdlcmUgc3VjY2Vzc2Z1bGx5IGV4Y2hhbmdl ZC4KKyAgICAgKiAgMy4gQWxsIG90aGVyIGlucHV0IGFuZCBvdXRwdXQgZXh0ZW50cyBhcmUgdW50 b3VjaGVkLgorICAgICAqICA0LiBJZiBub3QgYWxsIGlucHV0IGV4ZW50cyBhcmUgZXhjaGFuZ2Vk IHRoZW4gdGhlIHJldHVybiBjb2RlIG9mIHRoaXMKKyAgICAgKiAgICAgY29tbWFuZCB3aWxsIGJl IG5vbi16ZXJvLgorICAgICAqICA1LiBUSElTIEZJRUxEIE1VU1QgQkUgSU5JVElBTElTRUQgVE8g WkVSTyBCWSBUSEUgQ0FMTEVSIQorICAgICAqLworICAgIHhlbl91bG9uZ190IG5yX2V4Y2hhbmdl ZDsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fbWVtb3J5X2V4Y2hhbmdlIHhlbl9tZW1vcnlfZXhj aGFuZ2VfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9tZW1vcnlfZXhjaGFuZ2VfdCk7 CisKKy8qCisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG1hY2hpbmUgZnJhbWUgbnVtYmVyIG9mIG1h cHBlZCBSQU0gaW4gdGhpcyBzeXN0ZW0uCisgKiBUaGlzIGNvbW1hbmQgYWx3YXlzIHN1Y2NlZWRz IChpdCBuZXZlciByZXR1cm5zIGFuIGVycm9yIGNvZGUpLgorICogYXJnID09IE5VTEwuCisgKi8K KyNkZWZpbmUgWEVOTUVNX21heGltdW1fcmFtX3BhZ2UgICAgIDIKKworLyoKKyAqIFJldHVybnMg dGhlIGN1cnJlbnQgb3IgbWF4aW11bSBtZW1vcnkgcmVzZXJ2YXRpb24sIGluIHBhZ2VzLCBvZiB0 aGUKKyAqIHNwZWNpZmllZCBkb21haW4gKG1heSBiZSBET01JRF9TRUxGKS4gUmV0dXJucyAtdmUg ZXJyY29kZSBvbiBmYWlsdXJlLgorICogYXJnID09IGFkZHIgb2YgZG9taWRfdC4KKyAqLworI2Rl ZmluZSBYRU5NRU1fY3VycmVudF9yZXNlcnZhdGlvbiAgMworI2RlZmluZSBYRU5NRU1fbWF4aW11 bV9yZXNlcnZhdGlvbiAgNAorCisvKgorICogUmV0dXJucyB0aGUgbWF4aW11bSBHUEZOIGluIHVz ZSBieSB0aGUgZ3Vlc3QsIG9yIC12ZSBlcnJjb2RlIG9uIGZhaWx1cmUuCisgKi8KKyNkZWZpbmUg WEVOTUVNX21heGltdW1fZ3BmbiAgICAgICAgIDE0CisKKy8qCisgKiBSZXR1cm5zIGEgbGlzdCBv ZiBNRk4gYmFzZXMgb2YgMk1CIGV4dGVudHMgY29tcHJpc2luZyB0aGUgbWFjaGluZV90b19waHlz CisgKiBtYXBwaW5nIHRhYmxlLiBBcmNoaXRlY3R1cmVzIHdoaWNoIGRvIG5vdCBoYXZlIGEgbTJw IHRhYmxlIGRvIG5vdCBpbXBsZW1lbnQKKyAqIHRoaXMgY29tbWFuZC4KKyAqIGFyZyA9PSBhZGRy IG9mIHhlbl9tYWNocGh5c19tZm5fbGlzdF90LgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNocGh5 c19tZm5fbGlzdCAgICA1CitzdHJ1Y3QgeGVuX21hY2hwaHlzX21mbl9saXN0IHsKKyAgICAvKgor ICAgICAqIFNpemUgb2YgdGhlICdleHRlbnRfc3RhcnQnIGFycmF5LiBGZXdlciBlbnRyaWVzIHdp bGwgYmUgZmlsbGVkIGlmIHRoZQorICAgICAqIG1hY2hwaHlzIHRhYmxlIGlzIHNtYWxsZXIgdGhh biBtYXhfZXh0ZW50cyAqIDJNQi4KKyAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgbWF4X2V4dGVu dHM7CisKKyAgICAvKgorICAgICAqIFBvaW50ZXIgdG8gYnVmZmVyIHRvIGZpbGwgd2l0aCBsaXN0 IG9mIGV4dGVudCBzdGFydHMuIElmIHRoZXJlIGFyZQorICAgICAqIGFueSBsYXJnZSBkaXNjb250 aWd1aXRpZXMgaW4gdGhlIG1hY2hpbmUgYWRkcmVzcyBzcGFjZSwgMk1CIGdhcHMgaW4KKyAgICAg KiB0aGUgbWFjaHBoeXMgdGFibGUgd2lsbCBiZSByZXByZXNlbnRlZCBieSBhbiBNRk4gYmFzZSBv ZiB6ZXJvLgorICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Bmbl90KSBleHRlbnRf c3RhcnQ7CisKKyAgICAvKgorICAgICAqIE51bWJlciBvZiBleHRlbnRzIHdyaXR0ZW4gdG8gdGhl IGFib3ZlIGFycmF5LiBUaGlzIHdpbGwgYmUgc21hbGxlcgorICAgICAqIHRoYW4gJ21heF9leHRl bnRzJyBpZiB0aGUgbWFjaHBoeXMgdGFibGUgaXMgc21hbGxlciB0aGFuIG1heF9lICogMk1CLgor ICAgICAqLworICAgIHVuc2lnbmVkIGludCBucl9leHRlbnRzOworfTsKK3R5cGVkZWYgc3RydWN0 IHhlbl9tYWNocGh5c19tZm5fbGlzdCB4ZW5fbWFjaHBoeXNfbWZuX2xpc3RfdDsKK0RFRklORV9Y RU5fR1VFU1RfSEFORExFKHhlbl9tYWNocGh5c19tZm5fbGlzdF90KTsKKworLyoKKyAqIEZvciBh IGNvbXBhdCBjYWxsZXIsIHRoaXMgaXMgaWRlbnRpY2FsIHRvIFhFTk1FTV9tYWNocGh5c19tZm5f bGlzdC4KKyAqCisgKiBGb3IgYSBub24gY29tcGF0IGNhbGxlciwgdGhpcyBmdW5jdGlvbnMgc2lt aWxhcmx5IHRvCisgKiBYRU5NRU1fbWFjaHBoeXNfbWZuX2xpc3QsIGJ1dCByZXR1cm5zIHRoZSBt Zm5zIG1ha2luZyB1cCB0aGUgY29tcGF0aWJpbGl0eQorICogbTJwIHRhYmxlLgorICovCisjZGVm aW5lIFhFTk1FTV9tYWNocGh5c19jb21wYXRfbWZuX2xpc3QgICAgIDI1CisKKy8qCisgKiBSZXR1 cm5zIHRoZSBsb2NhdGlvbiBpbiB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2Ugb2YgdGhlIG1hY2hpbmVf dG9fcGh5cworICogbWFwcGluZyB0YWJsZS4gQXJjaGl0ZWN0dXJlcyB3aGljaCBkbyBub3QgaGF2 ZSBhIG0ycCB0YWJsZSwgb3Igd2hpY2ggZG8gbm90CisgKiBtYXAgaXQgYnkgZGVmYXVsdCBpbnRv IGd1ZXN0IGFkZHJlc3Mgc3BhY2UsIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBjb21tYW5kLgorICog YXJnID09IGFkZHIgb2YgeGVuX21hY2hwaHlzX21hcHBpbmdfdC4KKyAqLworI2RlZmluZSBYRU5N RU1fbWFjaHBoeXNfbWFwcGluZyAgICAgMTIKK3N0cnVjdCB4ZW5fbWFjaHBoeXNfbWFwcGluZyB7 CisgICAgeGVuX3Vsb25nX3Qgdl9zdGFydCwgdl9lbmQ7IC8qIFN0YXJ0IGFuZCBlbmQgdmlydHVh bCBhZGRyZXNzZXMuICAgKi8KKyAgICB4ZW5fdWxvbmdfdCBtYXhfbWZuOyAgICAgICAgLyogTWF4 aW11bSBNRk4gdGhhdCBjYW4gYmUgbG9va2VkIHVwLiAqLworfTsKK3R5cGVkZWYgc3RydWN0IHhl bl9tYWNocGh5c19tYXBwaW5nIHhlbl9tYWNocGh5c19tYXBwaW5nX3Q7CitERUZJTkVfWEVOX0dV RVNUX0hBTkRMRSh4ZW5fbWFjaHBoeXNfbWFwcGluZ190KTsKKworLyogU291cmNlIG1hcHBpbmcg c3BhY2UuICovCisvKiBgIGVudW0gcGh5c19tYXBfc3BhY2UgeyAqLworI2RlZmluZSBYRU5NQVBT UEFDRV9zaGFyZWRfaW5mbyAgMCAvKiBzaGFyZWQgaW5mbyBwYWdlICovCisjZGVmaW5lIFhFTk1B UFNQQUNFX2dyYW50X3RhYmxlICAxIC8qIGdyYW50IHRhYmxlIHBhZ2UgKi8KKyNkZWZpbmUgWEVO TUFQU1BBQ0VfZ21mbiAgICAgICAgIDIgLyogR01GTiAqLworI2RlZmluZSBYRU5NQVBTUEFDRV9n bWZuX3JhbmdlICAgMyAvKiBHTUZOIHJhbmdlLCBYRU5NRU1fYWRkX3RvX3BoeXNtYXAgb25seS4g Ki8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZ21mbl9mb3JlaWduIDQgLyogR01GTiBmcm9tIGFub3Ro ZXIgZG9tLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBYRU5NRU1fYWRk X3RvX3BoeXNtYXBfYmF0Y2ggb25seS4gKi8KKyNkZWZpbmUgWEVOTUFQU1BBQ0VfZGV2X21taW8g ICAgIDUgLyogZGV2aWNlIG1taW8gcmVnaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFSTSBvbmx5OyB0aGUgcmVnaW9uIGlzIG1hcHBlZCBpbgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFnZS0yIHVzaW5nIHRoZSBOb3JtYWwgTWVtb3J5 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElubmVyL091dGVyIFdyaXRl LUJhY2sgQ2FjaGVhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l bW9yeSBhdHRyaWJ1dGUuICovCisvKiBgIH0gKi8KKworLyoKKyAqIFNldHMgdGhlIEdQRk4gYXQg d2hpY2ggYSBwYXJ0aWN1bGFyIHBhZ2UgYXBwZWFycyBpbiB0aGUgc3BlY2lmaWVkIGd1ZXN0J3MK KyAqIHBzZXVkb3BoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5f YWRkX3RvX3BoeXNtYXBfdC4KKyAqLworI2RlZmluZSBYRU5NRU1fYWRkX3RvX3BoeXNtYXAgICAg ICA3CitzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwIHsKKyAgICAvKiBXaGljaCBkb21haW4gdG8g Y2hhbmdlIHRoZSBtYXBwaW5nIGZvci4gKi8KKyAgICBkb21pZF90IGRvbWlkOworCisgICAgLyog TnVtYmVyIG9mIHBhZ2VzIHRvIGdvIHRocm91Z2ggZm9yIGdtZm5fcmFuZ2UgKi8KKyAgICB1aW50 MTZfdCAgICBzaXplOworCisgICAgdW5zaWduZWQgaW50IHNwYWNlOyAvKiA9PiBlbnVtIHBoeXNf bWFwX3NwYWNlICovCisKKyNkZWZpbmUgWEVOTUFQSURYX2dyYW50X3RhYmxlX3N0YXR1cyAweDgw MDAwMDAwCisKKyAgICAvKiBJbmRleCBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KKyAgICB4 ZW5fdWxvbmdfdCBpZHg7CisKKyAgICAvKiBHUEZOIGluIGRvbWlkIHdoZXJlIHRoZSBzb3VyY2Ug bWFwcGluZyBwYWdlIHNob3VsZCBhcHBlYXIuICovCisgICAgeGVuX3Bmbl90ICAgICBncGZuOwor fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcCB4ZW5fYWRkX3RvX3BoeXNtYXBf dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9hZGRfdG9fcGh5c21hcF90KTsKKworLyog QSBiYXRjaGVkIHZlcnNpb24gb2YgYWRkX3RvX3BoeXNtYXAuICovCisjZGVmaW5lIFhFTk1FTV9h ZGRfdG9fcGh5c21hcF9iYXRjaCAyMworc3RydWN0IHhlbl9hZGRfdG9fcGh5c21hcF9iYXRjaCB7 CisgICAgLyogSU4gKi8KKyAgICAvKiBXaGljaCBkb21haW4gdG8gY2hhbmdlIHRoZSBtYXBwaW5n IGZvci4gKi8KKyAgICBkb21pZF90IGRvbWlkOworICAgIHVpbnQxNl90IHNwYWNlOyAvKiA9PiBl bnVtIHBoeXNfbWFwX3NwYWNlICovCisKKyAgICAvKiBOdW1iZXIgb2YgcGFnZXMgdG8gZ28gdGhy b3VnaCAqLworICAgIHVpbnQxNl90IHNpemU7CisKKyNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lP Tl9fIDwgMHgwMDA0MDcwMAorICAgIGRvbWlkX3QgZm9yZWlnbl9kb21pZDsgLyogSUZGIGdtZm5f Zm9yZWlnbi4gU2hvdWxkIGJlIDAgZm9yIG90aGVyIHNwYWNlcy4gKi8KKyNlbHNlCisgICAgdW5p b24geGVuX2FkZF90b19waHlzbWFwX2JhdGNoX2V4dHJhIHsKKyAgICAgICAgZG9taWRfdCBmb3Jl aWduX2RvbWlkOyAvKiBnbWZuX2ZvcmVpZ24gKi8KKyAgICAgICAgdWludDE2X3QgcmVzMDsgIC8q IEFsbCB0aGUgb3RoZXIgc3BhY2VzLiBTaG91bGQgYmUgMCAqLworICAgIH0gdTsKKyNlbmRpZgor CisgICAgLyogSW5kZXhlcyBpbnRvIHNwYWNlIGJlaW5nIG1hcHBlZC4gKi8KKyAgICBYRU5fR1VF U1RfSEFORExFKHhlbl91bG9uZ190KSBpZHhzOworCisgICAgLyogR1BGTiBpbiBkb21pZCB3aGVy ZSB0aGUgc291cmNlIG1hcHBpbmcgcGFnZSBzaG91bGQgYXBwZWFyLiAqLworICAgIFhFTl9HVUVT VF9IQU5ETEUoeGVuX3Bmbl90KSBncGZuczsKKworICAgIC8qIE9VVCAqLworCisgICAgLyogUGVy IGluZGV4IGVycm9yIGNvZGUuICovCisgICAgWEVOX0dVRVNUX0hBTkRMRShpbnQpIGVycnM7Cit9 OwordHlwZWRlZiBzdHJ1Y3QgeGVuX2FkZF90b19waHlzbWFwX2JhdGNoIHhlbl9hZGRfdG9fcGh5 c21hcF9iYXRjaF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2FkZF90b19waHlzbWFw X2JhdGNoX3QpOworCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA8IDB4MDAwNDA0MDAK KyNkZWZpbmUgWEVOTUVNX2FkZF90b19waHlzbWFwX3JhbmdlIFhFTk1FTV9hZGRfdG9fcGh5c21h cF9iYXRjaAorI2RlZmluZSB4ZW5fYWRkX3RvX3BoeXNtYXBfcmFuZ2UgeGVuX2FkZF90b19waHlz bWFwX2JhdGNoCit0eXBlZGVmIHN0cnVjdCB4ZW5fYWRkX3RvX3BoeXNtYXBfYmF0Y2ggeGVuX2Fk ZF90b19waHlzbWFwX3JhbmdlX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fYWRkX3Rv X3BoeXNtYXBfcmFuZ2VfdCk7CisjZW5kaWYKKworLyoKKyAqIFVubWFwcyB0aGUgcGFnZSBhcHBl YXJpbmcgYXQgYSBwYXJ0aWN1bGFyIEdQRk4gZnJvbSB0aGUgc3BlY2lmaWVkIGd1ZXN0J3MKKyAq IHBzZXVkb3BoeXNpY2FsIGFkZHJlc3Mgc3BhY2UuCisgKiBhcmcgPT0gYWRkciBvZiB4ZW5fcmVt b3ZlX2Zyb21fcGh5c21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9yZW1vdmVfZnJvbV9waHlz bWFwICAgICAgMTUKK3N0cnVjdCB4ZW5fcmVtb3ZlX2Zyb21fcGh5c21hcCB7CisgICAgLyogV2hp Y2ggZG9tYWluIHRvIGNoYW5nZSB0aGUgbWFwcGluZyBmb3IuICovCisgICAgZG9taWRfdCBkb21p ZDsKKworICAgIC8qIEdQRk4gb2YgdGhlIGN1cnJlbnQgbWFwcGluZyBvZiB0aGUgcGFnZS4gKi8K KyAgICB4ZW5fcGZuX3QgICAgIGdwZm47Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX3JlbW92ZV9m cm9tX3BoeXNtYXAgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXBfdDsKK0RFRklORV9YRU5fR1VFU1Rf SEFORExFKHhlbl9yZW1vdmVfZnJvbV9waHlzbWFwX3QpOworCisvKioqIFJFTU9WRUQgKioqLwor LyojZGVmaW5lIFhFTk1FTV90cmFuc2xhdGVfZ3Bmbl9saXN0ICA4Ki8KKworLyoKKyAqIFJldHVy bnMgdGhlIHBzZXVkby1waHlzaWNhbCBtZW1vcnkgbWFwIGFzIGl0IHdhcyB3aGVuIHRoZSBkb21h aW4KKyAqIHdhcyBzdGFydGVkIChzcGVjaWZpZWQgYnkgWEVOTUVNX3NldF9tZW1vcnlfbWFwKS4K KyAqIGFyZyA9PSBhZGRyIG9mIHhlbl9tZW1vcnlfbWFwX3QuCisgKi8KKyNkZWZpbmUgWEVOTUVN X21lbW9yeV9tYXAgICAgICAgICAgIDkKK3N0cnVjdCB4ZW5fbWVtb3J5X21hcCB7CisgICAgLyoK KyAgICAgKiBPbiBjYWxsIHRoZSBudW1iZXIgb2YgZW50cmllcyB3aGljaCBjYW4gYmUgc3RvcmVk IGluIGJ1ZmZlci4gT24KKyAgICAgKiByZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIHdoaWNo IGhhdmUgYmVlbiBzdG9yZWQgaW4KKyAgICAgKiBidWZmZXIuCisgICAgICovCisgICAgdW5zaWdu ZWQgaW50IG5yX2VudHJpZXM7CisKKyAgICAvKgorICAgICAqIEVudHJpZXMgaW4gdGhlIGJ1ZmZl ciBhcmUgaW4gdGhlIHNhbWUgZm9ybWF0IGFzIHJldHVybmVkIGJ5IHRoZQorICAgICAqIEJJT1Mg SU5UIDB4MTUgRUFYPTB4RTgyMCBjYWxsLgorICAgICAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUo dm9pZCkgYnVmZmVyOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1vcnlfbWFwIHhlbl9tZW1v cnlfbWFwX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtb3J5X21hcF90KTsKKwor LyoKKyAqIFJldHVybnMgdGhlIHJlYWwgcGh5c2ljYWwgbWVtb3J5IG1hcC4gUGFzc2VzIHRoZSBz YW1lIHN0cnVjdHVyZSBhcworICogWEVOTUVNX21lbW9yeV9tYXAuCisgKiBTcGVjaWZ5aW5nIGJ1 ZmZlciBhcyBOVUxMIHdpbGwgcmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyByZXF1aXJlZAor ICogdG8gc3RvcmUgdGhlIGNvbXBsZXRlIG1lbW9yeSBtYXAuCisgKiBhcmcgPT0gYWRkciBvZiB4 ZW5fbWVtb3J5X21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9tYWNoaW5lX21lbW9yeV9tYXAg ICAxMAorCisvKgorICogU2V0IHRoZSBwc2V1ZG8tcGh5c2ljYWwgbWVtb3J5IG1hcCBvZiBhIGRv bWFpbiwgYXMgcmV0dXJuZWQgYnkKKyAqIFhFTk1FTV9tZW1vcnlfbWFwLgorICogYXJnID09IGFk ZHIgb2YgeGVuX2ZvcmVpZ25fbWVtb3J5X21hcF90LgorICovCisjZGVmaW5lIFhFTk1FTV9zZXRf bWVtb3J5X21hcCAgICAgICAxMworc3RydWN0IHhlbl9mb3JlaWduX21lbW9yeV9tYXAgeworICAg IGRvbWlkX3QgZG9taWQ7CisgICAgc3RydWN0IHhlbl9tZW1vcnlfbWFwIG1hcDsKK307Cit0eXBl ZGVmIHN0cnVjdCB4ZW5fZm9yZWlnbl9tZW1vcnlfbWFwIHhlbl9mb3JlaWduX21lbW9yeV9tYXBf dDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9mb3JlaWduX21lbW9yeV9tYXBfdCk7CisK KyNkZWZpbmUgWEVOTUVNX3NldF9wb2RfdGFyZ2V0ICAgICAgIDE2CisjZGVmaW5lIFhFTk1FTV9n ZXRfcG9kX3RhcmdldCAgICAgICAxNworc3RydWN0IHhlbl9wb2RfdGFyZ2V0IHsKKyAgICAvKiBJ TiAqLworICAgIHVpbnQ2NF90IHRhcmdldF9wYWdlczsKKyAgICAvKiBPVVQgKi8KKyAgICB1aW50 NjRfdCB0b3RfcGFnZXM7CisgICAgdWludDY0X3QgcG9kX2NhY2hlX3BhZ2VzOworICAgIHVpbnQ2 NF90IHBvZF9lbnRyaWVzOworICAgIC8qIElOICovCisgICAgZG9taWRfdCBkb21pZDsKK307Cit0 eXBlZGVmIHN0cnVjdCB4ZW5fcG9kX3RhcmdldCB4ZW5fcG9kX3RhcmdldF90OworCisjaWYgZGVm aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pCisKKyNpZm5kZWYgdWludDY0 X2FsaWduZWRfdAorI2RlZmluZSB1aW50NjRfYWxpZ25lZF90IHVpbnQ2NF90CisjZW5kaWYKKwor LyoKKyAqIEdldCB0aGUgbnVtYmVyIG9mIE1GTnMgc2F2ZWQgdGhyb3VnaCBtZW1vcnkgc2hhcmlu Zy4KKyAqIFRoZSBjYWxsIG5ldmVyIGZhaWxzLiAKKyAqLworI2RlZmluZSBYRU5NRU1fZ2V0X3No YXJpbmdfZnJlZWRfcGFnZXMgICAgMTgKKyNkZWZpbmUgWEVOTUVNX2dldF9zaGFyaW5nX3NoYXJl ZF9wYWdlcyAgIDE5CisKKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcCAgICAgICAgICAgICAgICAg ICAgMjAKKyNkZWZpbmUgWEVOTUVNX3BhZ2luZ19vcF9ub21pbmF0ZSAgICAgICAgICAgMAorI2Rl ZmluZSBYRU5NRU1fcGFnaW5nX29wX2V2aWN0ICAgICAgICAgICAgICAxCisjZGVmaW5lIFhFTk1F TV9wYWdpbmdfb3BfcHJlcCAgICAgICAgICAgICAgIDIKKworc3RydWN0IHhlbl9tZW1fcGFnaW5n X29wIHsKKyAgICB1aW50OF90ICAgICBvcDsgICAgICAgICAvKiBYRU5NRU1fcGFnaW5nX29wXyog Ki8KKyAgICBkb21pZF90ICAgICBkb21haW47CisKKyAgICAvKiBQQUdJTkdfUFJFUCBJTjogYnVm ZmVyIHRvIGltbWVkaWF0ZWx5IGZpbGwgcGFnZSBpbiAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3Qg ICAgYnVmZmVyOworICAgIC8qIE90aGVyIE9QcyAqLworICAgIHVpbnQ2NF9hbGlnbmVkX3QgICAg Z2ZuOyAgICAgICAgICAgLyogSU46ICBnZm4gb2YgcGFnZSBiZWluZyBvcGVyYXRlZCBvbiAqLwor fTsKK3R5cGVkZWYgc3RydWN0IHhlbl9tZW1fcGFnaW5nX29wIHhlbl9tZW1fcGFnaW5nX29wX3Q7 CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fbWVtX3BhZ2luZ19vcF90KTsKKworI2RlZmlu ZSBYRU5NRU1fYWNjZXNzX29wICAgICAgICAgICAgICAgICAgICAyMQorI2RlZmluZSBYRU5NRU1f YWNjZXNzX29wX3NldF9hY2Nlc3MgICAgICAgICAwCisjZGVmaW5lIFhFTk1FTV9hY2Nlc3Nfb3Bf Z2V0X2FjY2VzcyAgICAgICAgIDEKKy8qCisgKiBYRU5NRU1fYWNjZXNzX29wX2VuYWJsZV9lbXVs YXRlIGFuZCBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSBhcmUKKyAqIGN1cnJlbnRs eSB1bnVzZWQsIGJ1dCBzaW5jZSB0aGV5IGhhdmUgYmVlbiBpbiB1c2UgcGxlYXNlIGRvIG5vdCBy ZXVzZSB0aGVtLgorICoKKyAqICNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9lbmFibGVfZW11bGF0 ZSAgICAgMgorICogI2RlZmluZSBYRU5NRU1fYWNjZXNzX29wX2Rpc2FibGVfZW11bGF0ZSAgICAz CisgKi8KKyNkZWZpbmUgWEVOTUVNX2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpICAgNAorCit0 eXBlZGVmIGVudW0geworICAgIFhFTk1FTV9hY2Nlc3NfbiwKKyAgICBYRU5NRU1fYWNjZXNzX3Is CisgICAgWEVOTUVNX2FjY2Vzc193LAorICAgIFhFTk1FTV9hY2Nlc3NfcncsCisgICAgWEVOTUVN X2FjY2Vzc194LAorICAgIFhFTk1FTV9hY2Nlc3NfcngsCisgICAgWEVOTUVNX2FjY2Vzc193eCwK KyAgICBYRU5NRU1fYWNjZXNzX3J3eCwKKyAgICAvKgorICAgICAqIFBhZ2Ugc3RhcnRzIG9mZiBh cyByLXgsIGJ1dCBhdXRvbWF0aWNhbGx5CisgICAgICogY2hhbmdlIHRvIHItdyBvbiBhIHdyaXRl CisgICAgICovCisgICAgWEVOTUVNX2FjY2Vzc19yeDJydywKKyAgICAvKgorICAgICAqIExvZyBh Y2Nlc3M6IHN0YXJ0cyBvZmYgYXMgbiwgYXV0b21hdGljYWxseQorICAgICAqIGdvZXMgdG8gcnd4 LCBnZW5lcmF0aW5nIGFuIGV2ZW50IHdpdGhvdXQKKyAgICAgKiBwYXVzaW5nIHRoZSB2Y3B1Cisg ICAgICovCisgICAgWEVOTUVNX2FjY2Vzc19uMnJ3eCwKKyAgICAvKiBUYWtlIHRoZSBkb21haW4g ZGVmYXVsdCAqLworICAgIFhFTk1FTV9hY2Nlc3NfZGVmYXVsdAorfSB4ZW5tZW1fYWNjZXNzX3Q7 CisKK3N0cnVjdCB4ZW5fbWVtX2FjY2Vzc19vcCB7CisgICAgLyogWEVOTUVNX2FjY2Vzc19vcF8q ICovCisgICAgdWludDhfdCBvcDsKKyAgICAvKiB4ZW5tZW1fYWNjZXNzX3QgKi8KKyAgICB1aW50 OF90IGFjY2VzczsKKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qCisgICAgICogTnVtYmVyIG9m IHBhZ2VzIGZvciBzZXQgb3AgKG9yIHNpemUgb2YgcGZuX2xpc3QgZm9yCisgICAgICogWEVOTUVN X2FjY2Vzc19vcF9zZXRfYWNjZXNzX211bHRpKQorICAgICAqIElnbm9yZWQgb24gc2V0dGluZyBk ZWZhdWx0IGFjY2VzcyBhbmQgb3RoZXIgb3BzCisgICAgICovCisgICAgdWludDMyX3QgbnI7Cisg ICAgLyoKKyAgICAgKiBGaXJzdCBwZm4gZm9yIHNldCBvcAorICAgICAqIHBmbiBmb3IgZ2V0IG9w CisgICAgICogfjB1bGwgaXMgdXNlZCB0byBzZXQgYW5kIGdldCB0aGUgZGVmYXVsdCBhY2Nlc3Mg Zm9yIHBhZ2VzCisgICAgICovCisgICAgdWludDY0X2FsaWduZWRfdCBwZm47CisgICAgLyoKKyAg ICAgKiBMaXN0IG9mIHBmbnMgdG8gc2V0IGFjY2VzcyBmb3IKKyAgICAgKiBVc2VkIG9ubHkgd2l0 aCBYRU5NRU1fYWNjZXNzX29wX3NldF9hY2Nlc3NfbXVsdGkKKyAgICAgKi8KKyAgICBYRU5fR1VF U1RfSEFORExFKGNvbnN0X3VpbnQ2NCkgcGZuX2xpc3Q7CisgICAgLyoKKyAgICAgKiBDb3JyZXNw b25kaW5nIGxpc3Qgb2YgYWNjZXNzIHNldHRpbmdzIGZvciBwZm5fbGlzdAorICAgICAqIFVzZWQg b25seSB3aXRoIFhFTk1FTV9hY2Nlc3Nfb3Bfc2V0X2FjY2Vzc19tdWx0aQorICAgICAqLworICAg IFhFTl9HVUVTVF9IQU5ETEUoY29uc3RfdWludDgpIGFjY2Vzc19saXN0OworfTsKK3R5cGVkZWYg c3RydWN0IHhlbl9tZW1fYWNjZXNzX29wIHhlbl9tZW1fYWNjZXNzX29wX3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fbWVtX2FjY2Vzc19vcF90KTsKKworI2RlZmluZSBYRU5NRU1fc2hh cmluZ19vcCAgICAgICAgICAgICAgICAgICAyMgorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9u b21pbmF0ZV9nZm4gICAgICAwCisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX25vbWluYXRlX2dy ZWYgICAgIDEKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3Bfc2hhcmUgICAgICAgICAgICAgMgor I2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9kZWJ1Z19nZm4gICAgICAgICAzCisjZGVmaW5lIFhF Tk1FTV9zaGFyaW5nX29wX2RlYnVnX21mbiAgICAgICAgIDQKKyNkZWZpbmUgWEVOTUVNX3NoYXJp bmdfb3BfZGVidWdfZ3JlZiAgICAgICAgNQorI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hZGRf cGh5c21hcCAgICAgICA2CisjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAgICAgICAg ICAgIDcKKyNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfcmFuZ2Vfc2hhcmUgICAgICAgOAorCisj ZGVmaW5lIFhFTk1FTV9TSEFSSU5HX09QX1NfSEFORExFX0lOVkFMSUQgICgtMTApCisjZGVmaW5l IFhFTk1FTV9TSEFSSU5HX09QX0NfSEFORExFX0lOVkFMSUQgICgtOSkKKworLyogVGhlIGZvbGxv d2luZyBhbGxvd3Mgc2hhcmluZyBvZiBncmFudCByZWZzLiBUaGlzIGlzIHVzZWZ1bAorICogZm9y IHNoYXJpbmcgdXRpbGl0aWVzIHNpdHRpbmcgYXMgImZpbHRlcnMiIGluIElPIGJhY2tlbmRzCisg KiAoZS5nLiBtZW1zaHIgKyBibGt0YXAoMikpLiBUaGUgSU8gYmFja2VuZCBpcyBvbmx5IGV4cG9z ZWQgCisgKiB0byBncmFudCByZWZlcmVuY2VzLCBhbmQgdGhpcyBhbGxvd3Mgc2hhcmluZyBvZiB0 aGUgZ3JlZnMgKi8KKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFH ICAgKHhlbl9ta191bGxvbmcoMSkgPDwgNjIpCisKKyNkZWZpbmUgWEVOTUVNX1NIQVJJTkdfT1Bf RklFTERfTUFLRV9HUkVGKGZpZWxkLCB2YWwpICBcCisgICAgKGZpZWxkKSA9IChYRU5NRU1fU0hB UklOR19PUF9GSUVMRF9JU19HUkVGX0ZMQUcgfCB2YWwpCisjZGVmaW5lIFhFTk1FTV9TSEFSSU5H X09QX0ZJRUxEX0lTX0dSRUYoZmllbGQpICAgICAgICAgXAorICAgICgoZmllbGQpICYgWEVOTUVN X1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHKQorI2RlZmluZSBYRU5NRU1fU0hBUklOR19P UF9GSUVMRF9HRVRfR1JFRihmaWVsZCkgICAgICAgIFwKKyAgICAoKGZpZWxkKSAmICh+WEVOTUVN X1NIQVJJTkdfT1BfRklFTERfSVNfR1JFRl9GTEFHKSkKKworc3RydWN0IHhlbl9tZW1fc2hhcmlu Z19vcCB7CisgICAgdWludDhfdCAgICAgb3A7ICAgICAvKiBYRU5NRU1fc2hhcmluZ19vcF8qICov CisgICAgZG9taWRfdCAgICAgZG9tYWluOworCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3Qg bWVtX3NoYXJpbmdfb3Bfbm9taW5hdGUgeyAgLyogT1BfTk9NSU5BVEVfeHh4ICAgICAgICAgICAq LworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg Z2ZuOyAgICAgLyogSU46IGdmbiB0byBub21pbmF0ZSAgICAgICAqLworICAgICAgICAgICAgICAg IHVpbnQzMl90ICAgICAgZ3JhbnRfcmVmOyAgLyogSU46IGdyYW50IHJlZiB0byBub21pbmF0ZSAq LworICAgICAgICAgICAgfSB1OworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCAgaGFuZGxl OyAgICAgLyogT1VUOiB0aGUgaGFuZGxlICAgICAgICAgICAqLworICAgICAgICB9IG5vbWluYXRl OworICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3Bfc2hhcmUgeyAgICAgLyogT1BfU0hBUkUv QUREX1BIWVNNQVAgKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qgc291cmNlX2dmbjsg ICAgLyogSU46IHRoZSBnZm4gb2YgdGhlIHNvdXJjZSBwYWdlICovCisgICAgICAgICAgICB1aW50 NjRfYWxpZ25lZF90IHNvdXJjZV9oYW5kbGU7IC8qIElOOiBoYW5kbGUgdG8gdGhlIHNvdXJjZSBw YWdlICovCisgICAgICAgICAgICB1aW50NjRfYWxpZ25lZF90IGNsaWVudF9nZm47ICAgIC8qIElO OiB0aGUgY2xpZW50IGdmbiAqLworICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBjbGllbnRf aGFuZGxlOyAvKiBJTjogaGFuZGxlIHRvIHRoZSBjbGllbnQgcGFnZSAqLworICAgICAgICAgICAg ZG9taWRfdCAgY2xpZW50X2RvbWFpbjsgLyogSU46IHRoZSBjbGllbnQgZG9tYWluIGlkICovCisg ICAgICAgIH0gc2hhcmU7CisgICAgICAgIHN0cnVjdCBtZW1fc2hhcmluZ19vcF9yYW5nZSB7ICAg ICAgICAgLyogT1BfUkFOR0VfU0hBUkUgKi8KKyAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3Qg Zmlyc3RfZ2ZuOyAgICAgIC8qIElOOiB0aGUgZmlyc3QgZ2ZuICovCisgICAgICAgICAgICB1aW50 NjRfYWxpZ25lZF90IGxhc3RfZ2ZuOyAgICAgICAvKiBJTjogdGhlIGxhc3QgZ2ZuICovCisgICAg ICAgICAgICB1aW50NjRfYWxpZ25lZF90IG9wYXF1ZTsgICAgICAgICAvKiBNdXN0IGJlIHNldCB0 byAwICovCisgICAgICAgICAgICBkb21pZF90IGNsaWVudF9kb21haW47ICAgICAgICAgICAvKiBJ TjogdGhlIGNsaWVudCBkb21haW4gaWQgKi8KKyAgICAgICAgICAgIHVpbnQxNl90IF9wYWRbM107 ICAgICAgICAgICAgICAgIC8qIE11c3QgYmUgc2V0IHRvIDAgKi8KKyAgICAgICAgfSByYW5nZTsK KyAgICAgICAgc3RydWN0IG1lbV9zaGFyaW5nX29wX2RlYnVnIHsgICAgIC8qIE9QX0RFQlVHX3h4 eCAqLworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVk X3QgZ2ZuOyAgICAgIC8qIElOOiBnZm4gdG8gZGVidWcgICAgICAgICAgKi8KKyAgICAgICAgICAg ICAgICB1aW50NjRfYWxpZ25lZF90IG1mbjsgICAgICAvKiBJTjogbWZuIHRvIGRlYnVnICAgICAg ICAgICovCisgICAgICAgICAgICAgICAgdWludDMyX3QgZ3JlZjsgICAgIC8qIElOOiBncmVmIHRv IGRlYnVnICAgICAgICAgKi8KKyAgICAgICAgICAgIH0gdTsKKyAgICAgICAgfSBkZWJ1ZzsKKyAg ICB9IHU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9zaGFyaW5nX29wIHhlbl9tZW1fc2hh cmluZ19vcF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9zaGFyaW5nX29wX3Qp OworCisvKgorICogQXR0ZW1wdCB0byBzdGFrZSBhIGNsYWltIGZvciBhIGRvbWFpbiBvbiBhIHF1 YW50aXR5IG9mIHBhZ2VzCisgKiBvZiBzeXN0ZW0gUkFNLCBidXQgX25vdF8gYXNzaWduIHNwZWNp ZmljIHBhZ2VmcmFtZXMuICBPbmx5CisgKiBhcml0aG1ldGljIGlzIHBlcmZvcm1lZCBzbyB0aGUg aHlwZXJjYWxsIGlzIHZlcnkgZmFzdCBhbmQgbmVlZAorICogbm90IGJlIHByZWVtcHRpYmxlLCB0 aHVzIHNpZGVzdGVwcGluZyB0aW1lLW9mLWNoZWNrLXRpbWUtb2YtdXNlCisgKiByYWNlcyBmb3Ig bWVtb3J5IGFsbG9jYXRpb24uICBSZXR1cm5zIDAgaWYgdGhlIGh5cGVydmlzb3IgcGFnZQorICog YWxsb2NhdG9yIGhhcyBhdG9taWNhbGx5IGFuZCBzdWNjZXNzZnVsbHkgY2xhaW1lZCB0aGUgcmVx dWVzdGVkCisgKiBudW1iZXIgb2YgcGFnZXMsIGVsc2Ugbm9uLXplcm8uCisgKgorICogQW55IGRv bWFpbiBtYXkgaGF2ZSBvbmx5IG9uZSBhY3RpdmUgY2xhaW0uICBXaGVuIHN1ZmZpY2llbnQgbWVt b3J5CisgKiBoYXMgYmVlbiBhbGxvY2F0ZWQgdG8gcmVzb2x2ZSB0aGUgY2xhaW0sIHRoZSBjbGFp bSBzaWxlbnRseSBleHBpcmVzLgorICogQ2xhaW1pbmcgemVybyBwYWdlcyBlZmZlY3RpdmVseSBy ZXNldHMgYW55IG91dHN0YW5kaW5nIGNsYWltIGFuZAorICogaXMgYWx3YXlzIHN1Y2Nlc3NmdWwu CisgKgorICogTm90ZSB0aGF0IGEgdmFsaWQgY2xhaW0gbWF5IGJlIHN0YWtlZCBldmVuIGFmdGVy IG1lbW9yeSBoYXMgYmVlbgorICogYWxsb2NhdGVkIGZvciBhIGRvbWFpbi4gIEluIHRoaXMgY2Fz ZSwgdGhlIGNsYWltIGlzIG5vdCBpbmNyZW1lbnRhbCwKKyAqIGkuZS4gaWYgdGhlIGRvbWFpbidz IHRvdF9wYWdlcyBpcyAzLCBhbmQgYSBjbGFpbSBpcyBzdGFrZWQgZm9yIDEwLAorICogb25seSA3 IGFkZGl0aW9uYWwgcGFnZXMgYXJlIGNsYWltZWQuCisgKgorICogQ2FsbGVyIG11c3QgYmUgcHJp dmlsZWdlZCBvciB0aGUgaHlwZXJjYWxsIGZhaWxzLgorICovCisjZGVmaW5lIFhFTk1FTV9jbGFp bV9wYWdlcyAgICAgICAgICAgICAgICAgIDI0CisKKy8qCisgKiBYRU5NRU1fY2xhaW1fcGFnZXMg ZmxhZ3MgLSB0aGUgYXJlIG5vIGZsYWdzIGF0IHRoaXMgdGltZS4KKyAqIFRoZSB6ZXJvIHZhbHVl IGlzIGFwcHJvcHJpYXRlLgorICovCisKKy8qCisgKiBXaXRoIHNvbWUgbGVnYWN5IGRldmljZXMs IGNlcnRhaW4gZ3Vlc3QtcGh5c2ljYWwgYWRkcmVzc2VzIGNhbm5vdCBzYWZlbHkKKyAqIGJlIHVz ZWQgZm9yIG90aGVyIHB1cnBvc2VzLCBlLmcuIHRvIG1hcCBndWVzdCBSQU0uICBUaGlzIGh5cGVy Y2FsbAorICogZW51bWVyYXRlcyB0aG9zZSByZWdpb25zIHNvIHRoZSB0b29sc3RhY2sgY2FuIGF2 b2lkIHVzaW5nIHRoZW0uCisgKi8KKyNkZWZpbmUgWEVOTUVNX3Jlc2VydmVkX2RldmljZV9tZW1v cnlfbWFwICAgMjcKK3N0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeSB7CisgICAgeGVu X3Bmbl90IHN0YXJ0X3BmbjsKKyAgICB4ZW5fdWxvbmdfdCBucl9wYWdlczsKK307Cit0eXBlZGVm IHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeSB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21l bW9yeV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1v cnlfdCk7CisKK3N0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeworI2RlZmlu ZSBYRU5NRU1fUkRNX0FMTCAxIC8qIFJlcXVlc3QgYWxsIHJlZ2lvbnMgKGlnbm9yZSBkZXYgdW5p b24pLiAqLworICAgIC8qIElOICovCisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgLyoKKyAgICAg KiBJTi9PVVQKKyAgICAgKgorICAgICAqIEdldHMgc2V0IHRvIHRoZSByZXF1aXJlZCBudW1iZXIg b2YgZW50cmllcyB3aGVuIHRvbyBsb3csCisgICAgICogc2lnbmFsZWQgYnkgZXJyb3IgY29kZSAt RVJBTkdFLgorICAgICAqLworICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVzOworICAgIC8qIE9V VCAqLworICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfdCkg YnVmZmVyOworICAgIC8qIElOICovCisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgcGh5c2Rl dl9wY2lfZGV2aWNlIHBjaTsKKyAgICB9IGRldjsKK307Cit0eXBlZGVmIHN0cnVjdCB4ZW5fcmVz ZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwX3Q7 CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXBf dCk7CisKKyNlbmRpZiAvKiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNf XykgKi8KKworLyoKKyAqIFhFTk1FTV9nZXRfdm51bWFpbmZvIHVzZWQgYnkgZ3Vlc3QgdG8gZ2V0 CisgKiB2TlVNQSB0b3BvbG9neSBmcm9tIGh5cGVydmlzb3IuCisgKi8KKyNkZWZpbmUgWEVOTUVN X2dldF92bnVtYWluZm8gICAgICAgICAgICAgICAgMjYKKworLyogdk5VTUEgbm9kZSBtZW1vcnkg cmFuZ2VzICovCitzdHJ1Y3QgeGVuX3ZtZW1yYW5nZSB7CisgICAgdWludDY0X3Qgc3RhcnQsIGVu ZDsKKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CisgICAgdW5zaWduZWQgaW50IG5pZDsKK307Cit0 eXBlZGVmIHN0cnVjdCB4ZW5fdm1lbXJhbmdlIHhlbl92bWVtcmFuZ2VfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl92bWVtcmFuZ2VfdCk7CisKKy8qCisgKiB2TlVNQSB0b3BvbG9neSBz cGVjaWZpZXMgdk5VTUEgbm9kZSBudW1iZXIsIGRpc3RhbmNlIHRhYmxlLAorICogbWVtb3J5IHJh bmdlcyBhbmQgdmNwdSBtYXBwaW5nIHByb3ZpZGVkIGZvciBndWVzdHMuCisgKiBYRU5NRU1fZ2V0 X3ZudW1haW5mbyBoeXBlcmNhbGwgZXhwZWN0cyB0byBzZWUgZnJvbSBndWVzdAorICogbnJfdm5v ZGVzLCBucl92bWVtcmFuZ2VzIGFuZCBucl92Y3B1cyB0byBpbmRpY2F0ZSBhdmFpbGFibGUgbWVt b3J5LgorICogQWZ0ZXIgZmlsbGluZyBndWVzdHMgc3RydWN0dXJlcywgbnJfdm5vZGVzLCBucl92 bWVtcmFuZ2VzIGFuZCBucl92Y3B1cworICogY29waWVkIGJhY2sgdG8gZ3Vlc3QuIERvbWFpbiBy ZXR1cm5zIGV4cGVjdGVkIHZhbHVlcyBvZiBucl92bm9kZXMsCisgKiBucl92bWVtcmFuZ2VzIGFu ZCBucl92Y3B1cyB0byBndWVzdCBpZiB0aGUgdmFsdWVzIHdoZXJlIGluY29ycmVjdC4KKyAqLwor c3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHsKKyAgICAvKiBJTiAqLworICAgIGRvbWlk X3QgZG9taWQ7CisgICAgdWludDE2X3QgcGFkOworICAgIC8qIElOL09VVCAqLworICAgIHVuc2ln bmVkIGludCBucl92bm9kZXM7CisgICAgdW5zaWduZWQgaW50IG5yX3ZjcHVzOworICAgIHVuc2ln bmVkIGludCBucl92bWVtcmFuZ2VzOworICAgIC8qIE9VVCAqLworICAgIHVuaW9uIHsKKyAgICAg ICAgWEVOX0dVRVNUX0hBTkRMRSh1aW50KSBoOworICAgICAgICB1aW50NjRfdCBwYWQ7CisgICAg fSB2ZGlzdGFuY2U7CisgICAgdW5pb24geworICAgICAgICBYRU5fR1VFU1RfSEFORExFKHVpbnQp IGg7CisgICAgICAgIHVpbnQ2NF90IHBhZDsKKyAgICB9IHZjcHVfdG9fdm5vZGU7CisgICAgdW5p b24geworICAgICAgICBYRU5fR1VFU1RfSEFORExFKHhlbl92bWVtcmFuZ2VfdCkgaDsKKyAgICAg ICAgdWludDY0X3QgcGFkOworICAgIH0gdm1lbXJhbmdlOworfTsKK3R5cGVkZWYgc3RydWN0IHhl bl92bnVtYV90b3BvbG9neV9pbmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3Q7CitERUZJTkVf WEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsKKworLyogTmV4dCBh dmFpbGFibGUgc3Vib3AgbnVtYmVyIGlzIDI4ICovCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNf TUVNT1JZX0hfXyAqLworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICog Yy1maWxlLXN0eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDog NAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUveGVuL3BoeXNkZXYuaCBiL2luY2x1ZGUveGVuL3BoeXNkZXYuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjBlNTQ2MzU2MgotLS0gL2Rldi9udWxsCisrKyBiL2lu Y2x1ZGUveGVuL3BoeXNkZXYuaApAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlv biBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAqIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhl IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu IElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBX SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ TkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBD b3B5cmlnaHQgKGMpIDIwMDYsIEtlaXIgRnJhc2VyCisgKi8KKworI2lmbmRlZiBfX1hFTl9QVUJM SUNfUEhZU0RFVl9IX18KKyNkZWZpbmUgX19YRU5fUFVCTElDX1BIWVNERVZfSF9fCisKKyNpbmNs dWRlICJ4ZW4uaCIKKworLyoKKyAqIFByb3RvdHlwZSBmb3IgdGhpcyBoeXBlcmNhbGwgaXM6Cisg KiAgaW50IHBoeXNkZXZfb3AoaW50IGNtZCwgdm9pZCAqYXJncykKKyAqIEBjbWQgID09IFBIWVNE RVZPUF8/Pz8gKHBoeXNkZXYgb3BlcmF0aW9uKS4KKyAqIEBhcmdzID09IE9wZXJhdGlvbi1zcGVj aWZpYyBleHRyYSBhcmd1bWVudHMgKE5VTEwgaWYgbm9uZSkuCisgKi8KKworLyoKKyAqIE5vdGlm eSBlbmQtb2YtaW50ZXJydXB0IChFT0kpIGZvciB0aGUgc3BlY2lmaWVkIElSUS4KKyAqIEBhcmcg PT0gcG9pbnRlciB0byBwaHlzZGV2X2VvaSBzdHJ1Y3R1cmUuCisgKi8KKyNkZWZpbmUgUEhZU0RF Vk9QX2VvaSAgICAgICAgICAgICAgICAgICAxMgorc3RydWN0IHBoeXNkZXZfZW9pIHsKKyAgICAv KiBJTiAqLworICAgIHVpbnQzMl90IGlycTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2Vv aSBwaHlzZGV2X2VvaV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9lb2lfdCk7 CisKKy8qCisgKiBSZWdpc3RlciBhIHNoYXJlZCBwYWdlIGZvciB0aGUgaHlwZXJ2aXNvciB0byBp bmRpY2F0ZSB3aGV0aGVyIHRoZSBndWVzdAorICogbXVzdCBpc3N1ZSBQSFlTREVWT1BfZW9pLiBU aGUgc2VtYW50aWNzIG9mIFBIWVNERVZPUF9lb2kgY2hhbmdlIHNsaWdodGx5CisgKiBvbmNlIHRo ZSBndWVzdCB1c2VkIHRoaXMgZnVuY3Rpb24gaW4gdGhhdCB0aGUgYXNzb2NpYXRlZCBldmVudCBj aGFubmVsCisgKiB3aWxsIGF1dG9tYXRpY2FsbHkgZ2V0IHVubWFza2VkLiBUaGUgcGFnZSByZWdp c3RlcmVkIGlzIHVzZWQgYXMgYSBiaXQKKyAqIGFycmF5IGluZGV4ZWQgYnkgWGVuJ3MgUElSUSB2 YWx1ZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfcGlycV9lb2lfZ21mbl92MSAgICAgICAxNwor LyoKKyAqIFJlZ2lzdGVyIGEgc2hhcmVkIHBhZ2UgZm9yIHRoZSBoeXBlcnZpc29yIHRvIGluZGlj YXRlIHdoZXRoZXIgdGhlCisgKiBndWVzdCBtdXN0IGlzc3VlIFBIWVNERVZPUF9lb2kuIFRoaXMg aHlwZXJjYWxsIGlzIHZlcnkgc2ltaWxhciB0bworICogUEhZU0RFVk9QX3BpcnFfZW9pX2dtZm5f djEgYnV0IGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YKKyAqIFBIWVNERVZPUF9l b2kuIFRoZSBwYWdlIHJlZ2lzdGVyZWQgaXMgdXNlZCBhcyBhIGJpdCBhcnJheSBpbmRleGVkIGJ5 CisgKiBYZW4ncyBQSVJRIHZhbHVlLgorICovCisjZGVmaW5lIFBIWVNERVZPUF9waXJxX2VvaV9n bWZuX3YyICAgICAgIDI4CitzdHJ1Y3QgcGh5c2Rldl9waXJxX2VvaV9nbWZuIHsKKyAgICAvKiBJ TiAqLworICAgIHhlbl9wZm5fdCBnbWZuOworfTsKK3R5cGVkZWYgc3RydWN0IHBoeXNkZXZfcGly cV9lb2lfZ21mbiBwaHlzZGV2X3BpcnFfZW9pX2dtZm5fdDsKK0RFRklORV9YRU5fR1VFU1RfSEFO RExFKHBoeXNkZXZfcGlycV9lb2lfZ21mbl90KTsKKworLyoKKyAqIFF1ZXJ5IHRoZSBzdGF0dXMg b2YgYW4gSVJRIGxpbmUuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gcGh5c2Rldl9pcnFfc3RhdHVz X3F1ZXJ5IHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfaXJxX3N0YXR1c19xdWVy eSAgICAgICA1CitzdHJ1Y3QgcGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5IHsKKyAgICAvKiBJTiAq LworICAgIHVpbnQzMl90IGlycTsKKyAgICAvKiBPVVQgKi8KKyAgICB1aW50MzJfdCBmbGFnczsg LyogWEVOSVJRU1RBVF8qICovCit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9pcnFfc3RhdHVz X3F1ZXJ5IHBoeXNkZXZfaXJxX3N0YXR1c19xdWVyeV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUocGh5c2Rldl9pcnFfc3RhdHVzX3F1ZXJ5X3QpOworCisvKiBOZWVkIHRvIGNhbGwgUEhZU0RF Vk9QX2VvaSB3aGVuIHRoZSBJUlEgaGFzIGJlZW4gc2VydmljZWQ/ICovCisjZGVmaW5lIF9YRU5J UlFTVEFUX25lZWRzX2VvaSAgICgwKQorI2RlZmluZSAgWEVOSVJRU1RBVF9uZWVkc19lb2kgICAo MVU8PF9YRU5JUlFTVEFUX25lZWRzX2VvaSkKKworLyogSVJRIHNoYXJlZCBieSBtdWx0aXBsZSBn dWVzdHM/ICovCisjZGVmaW5lIF9YRU5JUlFTVEFUX3NoYXJlZCAgICAgICgxKQorI2RlZmluZSAg WEVOSVJRU1RBVF9zaGFyZWQgICAgICAoMVU8PF9YRU5JUlFTVEFUX3NoYXJlZCkKKworLyoKKyAq IFNldCB0aGUgY3VycmVudCBWQ1BVJ3MgSS9PIHByaXZpbGVnZSBsZXZlbC4KKyAqIEBhcmcgPT0g cG9pbnRlciB0byBwaHlzZGV2X3NldF9pb3BsIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlT REVWT1Bfc2V0X2lvcGwgICAgICAgICAgICAgICA2CitzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9wbCB7 CisgICAgLyogSU4gKi8KKyAgICB1aW50MzJfdCBpb3BsOworfTsKK3R5cGVkZWYgc3RydWN0IHBo eXNkZXZfc2V0X2lvcGwgcGh5c2Rldl9zZXRfaW9wbF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUocGh5c2Rldl9zZXRfaW9wbF90KTsKKworLyoKKyAqIFNldCB0aGUgY3VycmVudCBWQ1BVJ3Mg SS9PLXBvcnQgcGVybWlzc2lvbnMgYml0bWFwLgorICogQGFyZyA9PSBwb2ludGVyIHRvIHBoeXNk ZXZfc2V0X2lvYml0bWFwIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1Bfc2V0X2lv Yml0bWFwICAgICAgICAgICA3CitzdHJ1Y3QgcGh5c2Rldl9zZXRfaW9iaXRtYXAgeworICAgIC8q IElOICovCisjaWYgX19YRU5fSU5URVJGQUNFX1ZFUlNJT05fXyA+PSAweDAwMDMwMjA1CisgICAg WEVOX0dVRVNUX0hBTkRMRSh1aW50OCkgYml0bWFwOworI2Vsc2UKKyAgICB1aW50OF90ICpiaXRt YXA7CisjZW5kaWYKKyAgICB1aW50MzJfdCBucl9wb3J0czsKK307Cit0eXBlZGVmIHN0cnVjdCBw aHlzZGV2X3NldF9pb2JpdG1hcCBwaHlzZGV2X3NldF9pb2JpdG1hcF90OworREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUocGh5c2Rldl9zZXRfaW9iaXRtYXBfdCk7CisKKy8qCisgKiBSZWFkIG9yIHdy aXRlIGFuIElPLUFQSUMgcmVnaXN0ZXIuCisgKiBAYXJnID09IHBvaW50ZXIgdG8gcGh5c2Rldl9h cGljIHN0cnVjdHVyZS4KKyAqLworI2RlZmluZSBQSFlTREVWT1BfYXBpY19yZWFkICAgICAgICAg ICAgICA4CisjZGVmaW5lIFBIWVNERVZPUF9hcGljX3dyaXRlICAgICAgICAgICAgIDkKK3N0cnVj dCBwaHlzZGV2X2FwaWMgeworICAgIC8qIElOICovCisgICAgdW5zaWduZWQgbG9uZyBhcGljX3Bo eXNiYXNlOworICAgIHVpbnQzMl90IHJlZzsKKyAgICAvKiBJTiBvciBPVVQgKi8KKyAgICB1aW50 MzJfdCB2YWx1ZTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2FwaWMgcGh5c2Rldl9hcGlj X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2FwaWNfdCk7CisKKy8qCisgKiBB bGxvY2F0ZSBvciBmcmVlIGEgcGh5c2ljYWwgdXBjYWxsIHZlY3RvciBmb3IgdGhlIHNwZWNpZmll ZCBJUlEgbGluZS4KKyAqIEBhcmcgPT0gcG9pbnRlciB0byBwaHlzZGV2X2lycSBzdHJ1Y3R1cmUu CisgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX2FsbG9jX2lycV92ZWN0b3IgICAgICAxMAorI2RlZmlu ZSBQSFlTREVWT1BfZnJlZV9pcnFfdmVjdG9yICAgICAgIDExCitzdHJ1Y3QgcGh5c2Rldl9pcnEg eworICAgIC8qIElOICovCisgICAgdWludDMyX3QgaXJxOworICAgIC8qIElOIG9yIE9VVCAqLwor ICAgIHVpbnQzMl90IHZlY3RvcjsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2lycSBwaHlz ZGV2X2lycV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9pcnFfdCk7CisgCisj ZGVmaW5lIE1BUF9QSVJRX1RZUEVfTVNJICAgICAgICAgICAgICAgMHgwCisjZGVmaW5lIE1BUF9Q SVJRX1RZUEVfR1NJICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfVU5L Tk9XTiAgICAgICAgICAgMHgyCisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfTVNJX1NFRyAgICAgICAg ICAgMHgzCisjZGVmaW5lIE1BUF9QSVJRX1RZUEVfTVVMVElfTVNJICAgICAgICAgMHg0CisKKyNk ZWZpbmUgUEhZU0RFVk9QX21hcF9waXJxICAgICAgICAgICAgICAgMTMKK3N0cnVjdCBwaHlzZGV2 X21hcF9waXJxIHsKKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qIElOICovCisgICAgaW50IHR5 cGU7CisgICAgLyogSU4gKGlnbm9yZWQgZm9yIC4uLl9NVUxUSV9NU0kpICovCisgICAgaW50IGlu ZGV4OworICAgIC8qIElOIG9yIE9VVCAqLworICAgIGludCBwaXJxOworICAgIC8qIElOIC0gaGln aCAxNiBiaXRzIGhvbGQgc2VnbWVudCBmb3IgLi4uX01TSV9TRUcgYW5kIC4uLl9NVUxUSV9NU0kg Ki8KKyAgICBpbnQgYnVzOworICAgIC8qIElOICovCisgICAgaW50IGRldmZuOworICAgIC8qIElO IChhbHNvIE9VVCBmb3IgLi4uX01VTFRJX01TSSkgKi8KKyAgICBpbnQgZW50cnlfbnI7CisgICAg LyogSU4gKi8KKyAgICB1aW50NjRfdCB0YWJsZV9iYXNlOworfTsKK3R5cGVkZWYgc3RydWN0IHBo eXNkZXZfbWFwX3BpcnEgcGh5c2Rldl9tYXBfcGlycV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUocGh5c2Rldl9tYXBfcGlycV90KTsKKworI2RlZmluZSBQSFlTREVWT1BfdW5tYXBfcGlycSAg ICAgICAgICAgICAxNAorc3RydWN0IHBoeXNkZXZfdW5tYXBfcGlycSB7CisgICAgZG9taWRfdCBk b21pZDsKKyAgICAvKiBJTiAqLworICAgIGludCBwaXJxOworfTsKKwordHlwZWRlZiBzdHJ1Y3Qg cGh5c2Rldl91bm1hcF9waXJxIHBoeXNkZXZfdW5tYXBfcGlycV90OworREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUocGh5c2Rldl91bm1hcF9waXJxX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9tYW5h Z2VfcGNpX2FkZCAgICAgICAgIDE1CisjZGVmaW5lIFBIWVNERVZPUF9tYW5hZ2VfcGNpX3JlbW92 ZSAgICAgIDE2CitzdHJ1Y3QgcGh5c2Rldl9tYW5hZ2VfcGNpIHsKKyAgICAvKiBJTiAqLworICAg IHVpbnQ4X3QgYnVzOworICAgIHVpbnQ4X3QgZGV2Zm47Cit9OyAKKwordHlwZWRlZiBzdHJ1Y3Qg cGh5c2Rldl9tYW5hZ2VfcGNpIHBoeXNkZXZfbWFuYWdlX3BjaV90OworREVGSU5FX1hFTl9HVUVT VF9IQU5ETEUocGh5c2Rldl9tYW5hZ2VfcGNpX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9yZXN0 b3JlX21zaSAgICAgICAgICAgIDE5CitzdHJ1Y3QgcGh5c2Rldl9yZXN0b3JlX21zaSB7CisgICAg LyogSU4gKi8KKyAgICB1aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworfTsKK3R5cGVk ZWYgc3RydWN0IHBoeXNkZXZfcmVzdG9yZV9tc2kgcGh5c2Rldl9yZXN0b3JlX21zaV90OworREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9yZXN0b3JlX21zaV90KTsKKworI2RlZmluZSBQ SFlTREVWT1BfbWFuYWdlX3BjaV9hZGRfZXh0ICAgICAyMAorc3RydWN0IHBoeXNkZXZfbWFuYWdl X3BjaV9leHQgeworICAgIC8qIElOICovCisgICAgdWludDhfdCBidXM7CisgICAgdWludDhfdCBk ZXZmbjsKKyAgICB1bnNpZ25lZCBpc19leHRmbjsKKyAgICB1bnNpZ25lZCBpc192aXJ0Zm47Cisg ICAgc3RydWN0IHsKKyAgICAgICAgdWludDhfdCBidXM7CisgICAgICAgIHVpbnQ4X3QgZGV2Zm47 CisgICAgfSBwaHlzZm47Cit9OworCit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X21hbmFnZV9wY2lf ZXh0IHBoeXNkZXZfbWFuYWdlX3BjaV9leHRfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBo eXNkZXZfbWFuYWdlX3BjaV9leHRfdCk7CisKKy8qCisgKiBBcmd1bWVudCB0byBwaHlzZGV2X29w X2NvbXBhdCgpIGh5cGVyY2FsbC4gU3VwZXJjZWRlZCBieSBuZXcgcGh5c2Rldl9vcCgpCisgKiBo eXBlcmNhbGwgc2luY2UgMHgwMDAzMDIwMi4KKyAqLworc3RydWN0IHBoeXNkZXZfb3AgeworICAg IHVpbnQzMl90IGNtZDsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X2lycV9z dGF0dXNfcXVlcnkgICAgICBpcnFfc3RhdHVzX3F1ZXJ5OworICAgICAgICBzdHJ1Y3QgcGh5c2Rl dl9zZXRfaW9wbCAgICAgICAgICAgICAgc2V0X2lvcGw7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2 X3NldF9pb2JpdG1hcCAgICAgICAgICBzZXRfaW9iaXRtYXA7CisgICAgICAgIHN0cnVjdCBwaHlz ZGV2X2FwaWMgICAgICAgICAgICAgICAgICBhcGljX29wOworICAgICAgICBzdHJ1Y3QgcGh5c2Rl dl9pcnEgICAgICAgICAgICAgICAgICAgaXJxX29wOworICAgIH0gdTsKK307Cit0eXBlZGVmIHN0 cnVjdCBwaHlzZGV2X29wIHBoeXNkZXZfb3BfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBo eXNkZXZfb3BfdCk7CisKKyNkZWZpbmUgUEhZU0RFVk9QX3NldHVwX2dzaSAgICAyMQorc3RydWN0 IHBoeXNkZXZfc2V0dXBfZ3NpIHsKKyAgICBpbnQgZ3NpOworICAgIC8qIElOICovCisgICAgdWlu dDhfdCB0cmlnZ2VyaW5nOworICAgIC8qIElOICovCisgICAgdWludDhfdCBwb2xhcml0eTsKKyAg ICAvKiBJTiAqLworfTsKKwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9zZXR1cF9nc2kgcGh5c2Rl dl9zZXR1cF9nc2lfdDsKK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfc2V0dXBfZ3Np X3QpOworCisvKiBsZWF2ZSBQSFlTREVWT1AgMjIgZnJlZSAqLworCisvKiB0eXBlIGlzIE1BUF9Q SVJRX1RZUEVfR1NJIG9yIE1BUF9QSVJRX1RZUEVfTVNJCisgKiB0aGUgaHlwZXJjYWxsIHJldHVy bnMgYSBmcmVlIHBpcnEgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX2dldF9mcmVlX3BpcnEgICAgMjMK K3N0cnVjdCBwaHlzZGV2X2dldF9mcmVlX3BpcnEgeworICAgIC8qIElOICovIAorICAgIGludCB0 eXBlOworICAgIC8qIE9VVCAqLworICAgIHVpbnQzMl90IHBpcnE7Cit9OworCit0eXBlZGVmIHN0 cnVjdCBwaHlzZGV2X2dldF9mcmVlX3BpcnEgcGh5c2Rldl9nZXRfZnJlZV9waXJxX3Q7CitERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2dldF9mcmVlX3BpcnFfdCk7CisKKyNkZWZpbmUg WEVOX1BDSV9NTUNGR19SRVNFUlZFRCAgICAgICAgIDB4MQorCisjZGVmaW5lIFBIWVNERVZPUF9w Y2lfbW1jZmdfcmVzZXJ2ZWQgICAgMjQKK3N0cnVjdCBwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZl ZCB7CisgICAgdWludDY0X3QgYWRkcmVzczsKKyAgICB1aW50MTZfdCBzZWdtZW50OworICAgIHVp bnQ4X3Qgc3RhcnRfYnVzOworICAgIHVpbnQ4X3QgZW5kX2J1czsKKyAgICB1aW50MzJfdCBmbGFn czsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X3BjaV9tbWNmZ19yZXNlcnZlZCBwaHlzZGV2 X3BjaV9tbWNmZ19yZXNlcnZlZF90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUocGh5c2Rldl9w Y2lfbW1jZmdfcmVzZXJ2ZWRfdCk7CisKKyNkZWZpbmUgWEVOX1BDSV9ERVZfRVhURk4gICAgICAg ICAgICAgIDB4MQorI2RlZmluZSBYRU5fUENJX0RFVl9WSVJURk4gICAgICAgICAgICAgMHgyCisj ZGVmaW5lIFhFTl9QQ0lfREVWX1BYTSAgICAgICAgICAgICAgICAweDQKKworI2RlZmluZSBQSFlT REVWT1BfcGNpX2RldmljZV9hZGQgICAgICAgIDI1CitzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNl X2FkZCB7CisgICAgLyogSU4gKi8KKyAgICB1aW50MTZfdCBzZWc7CisgICAgdWludDhfdCBidXM7 CisgICAgdWludDhfdCBkZXZmbjsKKyAgICB1aW50MzJfdCBmbGFnczsKKyAgICBzdHJ1Y3Qgewor ICAgICAgICB1aW50OF90IGJ1czsKKyAgICAgICAgdWludDhfdCBkZXZmbjsKKyAgICB9IHBoeXNm bjsKKyAgICAvKgorICAgICAqIE9wdGlvbmFsIHBhcmFtZXRlcnMgYXJyYXkuCisgICAgICogRmly c3QgZWxlbWVudCAoWzBdKSBpcyBQWE0gZG9tYWluIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNl IChpZgorICAgICAqIFhFTl9QQ0lfREVWX1BYTSBpcyBzZXQpCisgICAgICovCisjaWYgZGVmaW5l ZChfX1NURENfVkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKKyAgICB1 aW50MzJfdCBvcHRhcnJbXTsKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pCisgICAgdWludDMyX3Qg b3B0YXJyWzBdOworI2VuZGlmCit9OwordHlwZWRlZiBzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNl X2FkZCBwaHlzZGV2X3BjaV9kZXZpY2VfYWRkX3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShw aHlzZGV2X3BjaV9kZXZpY2VfYWRkX3QpOworCisjZGVmaW5lIFBIWVNERVZPUF9wY2lfZGV2aWNl X3JlbW92ZSAgICAgMjYKKyNkZWZpbmUgUEhZU0RFVk9QX3Jlc3RvcmVfbXNpX2V4dCAgICAgICAy NworLyoKKyAqIERvbTAgc2hvdWxkIHVzZSB0aGVzZSB0d28gdG8gYW5ub3VuY2UgTU1JTyByZXNv dXJjZXMgYXNzaWduZWQgdG8KKyAqIE1TSS1YIGNhcGFibGUgZGV2aWNlcyB3b24ndCAocHJlcGFy ZSkgb3IgbWF5IChyZWxlYXNlKSBjaGFuZ2UuCisgKi8KKyNkZWZpbmUgUEhZU0RFVk9QX3ByZXBh cmVfbXNpeCAgICAgICAgICAzMAorI2RlZmluZSBQSFlTREVWT1BfcmVsZWFzZV9tc2l4ICAgICAg ICAgIDMxCitzdHJ1Y3QgcGh5c2Rldl9wY2lfZGV2aWNlIHsKKyAgICAvKiBJTiAqLworICAgIHVp bnQxNl90IHNlZzsKKyAgICB1aW50OF90IGJ1czsKKyAgICB1aW50OF90IGRldmZuOworfTsKK3R5 cGVkZWYgc3RydWN0IHBoeXNkZXZfcGNpX2RldmljZSBwaHlzZGV2X3BjaV9kZXZpY2VfdDsKK0RF RklORV9YRU5fR1VFU1RfSEFORExFKHBoeXNkZXZfcGNpX2RldmljZV90KTsKKworI2RlZmluZSBQ SFlTREVWT1BfREJHUF9SRVNFVF9QUkVQQVJFICAgIDEKKyNkZWZpbmUgUEhZU0RFVk9QX0RCR1Bf UkVTRVRfRE9ORSAgICAgICAyCisKKyNkZWZpbmUgUEhZU0RFVk9QX0RCR1BfQlVTX1VOS05PV04g ICAgICAwCisjZGVmaW5lIFBIWVNERVZPUF9EQkdQX0JVU19QQ0kgICAgICAgICAgMQorCisjZGVm aW5lIFBIWVNERVZPUF9kYmdwX29wICAgICAgICAgICAgICAgMjkKK3N0cnVjdCBwaHlzZGV2X2Ri Z3Bfb3AgeworICAgIC8qIElOICovCisgICAgdWludDhfdCBvcDsKKyAgICB1aW50OF90IGJ1czsK KyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBwaHlzZGV2X3BjaV9kZXZpY2UgcGNpOworICAg IH0gdTsKK307Cit0eXBlZGVmIHN0cnVjdCBwaHlzZGV2X2RiZ3Bfb3AgcGh5c2Rldl9kYmdwX29w X3Q7CitERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShwaHlzZGV2X2RiZ3Bfb3BfdCk7CisKKy8qCisg KiBOb3RpZnkgdGhhdCBzb21lIFBJUlEtYm91bmQgZXZlbnQgY2hhbm5lbHMgaGF2ZSBiZWVuIHVu bWFza2VkLgorICogKiogVGhpcyBjb21tYW5kIGlzIG9ic29sZXRlIHNpbmNlIGludGVyZmFjZSB2 ZXJzaW9uIDB4MDAwMzAyMDIgYW5kIGlzICoqCisgKiAqKiB1bnN1cHBvcnRlZCBieSBuZXdlciB2 ZXJzaW9ucyBvZiBYZW4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKKyAqLworI2Rl ZmluZSBQSFlTREVWT1BfSVJRX1VOTUFTS19OT1RJRlkgICAgICA0CisKKyNpZiBfX1hFTl9JTlRF UkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDA0MDYwMAorLyoKKyAqIFRoZXNlIGFsbC1jYXBpdGFscyBw aHlzZGV2IG9wZXJhdGlvbiBuYW1lcyBhcmUgc3VwZXJjZWRlZCBieSB0aGUgbmV3IG5hbWVzCisg KiAoZGVmaW5lZCBhYm92ZSkgc2luY2UgaW50ZXJmYWNlIHZlcnNpb24gMHgwMDAzMDIwMi4gVGhl IGd1YXJkIGFib3ZlIHdhcworICogYWRkZWQgcG9zdC00LjUgb25seSB0aG91Z2ggYW5kIGhlbmNl IHNob3VsZG4ndCBjaGVjayBmb3IgMHgwMDAzMDIwMi4KKyAqLworI2RlZmluZSBQSFlTREVWT1Bf SVJRX1NUQVRVU19RVUVSWSAgICAgICBQSFlTREVWT1BfaXJxX3N0YXR1c19xdWVyeQorI2RlZmlu ZSBQSFlTREVWT1BfU0VUX0lPUEwgICAgICAgICAgICAgICBQSFlTREVWT1Bfc2V0X2lvcGwKKyNk ZWZpbmUgUEhZU0RFVk9QX1NFVF9JT0JJVE1BUCAgICAgICAgICAgUEhZU0RFVk9QX3NldF9pb2Jp dG1hcAorI2RlZmluZSBQSFlTREVWT1BfQVBJQ19SRUFEICAgICAgICAgICAgICBQSFlTREVWT1Bf YXBpY19yZWFkCisjZGVmaW5lIFBIWVNERVZPUF9BUElDX1dSSVRFICAgICAgICAgICAgIFBIWVNE RVZPUF9hcGljX3dyaXRlCisjZGVmaW5lIFBIWVNERVZPUF9BU1NJR05fVkVDVE9SICAgICAgICAg IFBIWVNERVZPUF9hbGxvY19pcnFfdmVjdG9yCisjZGVmaW5lIFBIWVNERVZPUF9GUkVFX1ZFQ1RP UiAgICAgICAgICAgIFBIWVNERVZPUF9mcmVlX2lycV92ZWN0b3IKKyNkZWZpbmUgUEhZU0RFVk9Q X0lSUV9ORUVEU19VTk1BU0tfTk9USUZZIFhFTklSUVNUQVRfbmVlZHNfZW9pCisjZGVmaW5lIFBI WVNERVZPUF9JUlFfU0hBUkVEICAgICAgICAgICAgIFhFTklSUVNUQVRfc2hhcmVkCisjZW5kaWYK KworI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPCAweDAwMDQwMjAwCisjZGVmaW5lIFBI WVNERVZPUF9waXJxX2VvaV9nbWZuIFBIWVNERVZPUF9waXJxX2VvaV9nbWZuX3YxCisjZWxzZQor I2RlZmluZSBQSFlTREVWT1BfcGlycV9lb2lfZ21mbiBQSFlTREVWT1BfcGlycV9lb2lfZ21mbl92 MgorI2VuZGlmCisKKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfUEhZU0RFVl9IX18gKi8KKworLyoK KyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIK KyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1v ZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi90cmFjZS5oIGIv aW5jbHVkZS94ZW4vdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjM3NDZiZmYyNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUveGVuL3RyYWNlLmgKQEAgLTAs MCArMSwzMzkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIGluY2x1ZGUvcHVibGljL3Ry YWNlLmgKKyAqIAorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQorICogb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCisg KiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uIHRoZQorICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCisgKiBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0 d2FyZSBpcworICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1Mg SU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIE1hcmsgV2lsbGlhbXNvbiwgKEMpIDIwMDQgSW50ZWwg UmVzZWFyY2ggQ2FtYnJpZGdlCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUgQmluIFJlbgorICovCisK KyNpZm5kZWYgX19YRU5fUFVCTElDX1RSQUNFX0hfXworI2RlZmluZSBfX1hFTl9QVUJMSUNfVFJB Q0VfSF9fCisKKyNkZWZpbmUgVFJBQ0VfRVhUUkFfTUFYICAgIDcKKyNkZWZpbmUgVFJBQ0VfRVhU UkFfU0hJRlQgMjgKKworLyogVHJhY2UgY2xhc3NlcyAqLworI2RlZmluZSBUUkNfQ0xTX1NISUZU IDE2CisjZGVmaW5lIFRSQ19HRU4gICAgICAweDAwMDFmMDAwICAgIC8qIEdlbmVyYWwgdHJhY2Ug ICAgICAgICAgICAqLworI2RlZmluZSBUUkNfU0NIRUQgICAgMHgwMDAyZjAwMCAgICAvKiBYZW4g U2NoZWR1bGVyIHRyYWNlICAgICAgKi8KKyNkZWZpbmUgVFJDX0RPTTBPUCAgIDB4MDAwNGYwMDAg ICAgLyogWGVuIERPTTAgb3BlcmF0aW9uIHRyYWNlICovCisjZGVmaW5lIFRSQ19IVk0gICAgICAw eDAwMDhmMDAwICAgIC8qIFhlbiBIVk0gdHJhY2UgICAgICAgICAgICAqLworI2RlZmluZSBUUkNf TUVNICAgICAgMHgwMDEwZjAwMCAgICAvKiBYZW4gbWVtb3J5IHRyYWNlICAgICAgICAgKi8KKyNk ZWZpbmUgVFJDX1BWICAgICAgIDB4MDAyMGYwMDAgICAgLyogWGVuIFBWIHRyYWNlcyAgICAgICAg ICAgICovCisjZGVmaW5lIFRSQ19TSEFET1cgICAweDAwNDBmMDAwICAgIC8qIFhlbiBzaGFkb3cg dHJhY2luZyAgICAgICAqLworI2RlZmluZSBUUkNfSFcgICAgICAgMHgwMDgwZjAwMCAgICAvKiBY ZW4gaGFyZHdhcmUtcmVsYXRlZCB0cmFjZXMgKi8KKyNkZWZpbmUgVFJDX0dVRVNUICAgIDB4MDgw MGYwMDAgICAgLyogR3Vlc3QtZ2VuZXJhdGVkIHRyYWNlcyAgICovCisjZGVmaW5lIFRSQ19BTEwg ICAgICAweDBmZmZmMDAwCisjZGVmaW5lIFRSQ19IRF9UT19FVkVOVCh4KSAoKHgpJjB4MGZmZmZm ZmYpCisjZGVmaW5lIFRSQ19IRF9DWUNMRV9GTEFHICgxVUw8PDMxKQorI2RlZmluZSBUUkNfSERf SU5DTFVERVNfQ1lDTEVfQ09VTlQoeCkgKCAhISggKHgpICYgVFJDX0hEX0NZQ0xFX0ZMQUcgKSAp CisjZGVmaW5lIFRSQ19IRF9FWFRSQSh4KSAgICAoKCh4KT4+VFJBQ0VfRVhUUkFfU0hJRlQpJlRS QUNFX0VYVFJBX01BWCkKKworLyogVHJhY2Ugc3ViY2xhc3NlcyAqLworI2RlZmluZSBUUkNfU1VC Q0xTX1NISUZUIDEyCisKKy8qIHRyYWNlIHN1YmNsYXNzZXMgZm9yIFNWTSAqLworI2RlZmluZSBU UkNfSFZNX0VOVFJZRVhJVCAgIDB4MDAwODEwMDAgICAvKiBWTUVOVFJZIGFuZCAjVk1FWElUICAg ICAgICovCisjZGVmaW5lIFRSQ19IVk1fSEFORExFUiAgICAgMHgwMDA4MjAwMCAgIC8qIHZhcmlv dXMgSFZNIGhhbmRsZXJzICAgICAgKi8KKyNkZWZpbmUgVFJDX0hWTV9FTVVMICAgICAgICAweDAw MDg0MDAwICAgLyogZW11bGF0ZWQgZGV2aWNlcyAqLworCisjZGVmaW5lIFRSQ19TQ0hFRF9NSU4g ICAgICAgMHgwMDAyMTAwMCAgIC8qIEp1c3QgcnVuc3RhdGUgY2hhbmdlcyAqLworI2RlZmluZSBU UkNfU0NIRURfQ0xBU1MgICAgIDB4MDAwMjIwMDAgICAvKiBTY2hlZHVsZXItc3BlY2lmaWMgICAg Ki8KKyNkZWZpbmUgVFJDX1NDSEVEX1ZFUkJPU0UgICAweDAwMDI4MDAwICAgLyogTW9yZSBpbmNs dXNpdmUgc2NoZWR1bGluZyAqLworCisvKgorICogVGhlIGhpZ2hlc3QgMyBiaXRzIG9mIHRoZSBs YXN0IDEyIGJpdHMgb2YgVFJDX1NDSEVEX0NMQVNTIGFib3ZlIGFyZQorICogcmVzZXJ2ZWQgZm9y IGVuY29kaW5nIHdoYXQgc2NoZWR1bGVyIHByb2R1Y2VkIHRoZSBpbmZvcm1hdGlvbi4gVGhlCisg KiBhY3R1YWwgZXZlbnQgaXMgZW5jb2RlZCBpbiB0aGUgbGFzdCA5IGJpdHMuCisgKgorICogVGhp cyBtZWFucyB3ZSBoYXZlIDggc2NoZWR1bGluZyBJRHMgYXZhaWxhYmxlICh3aGljaCBtZWFucyBh dCBtb3N0IDgKKyAqIHNjaGVkdWxlcnMgZ2VuZXJhdGluZyBldmVudHMpIGFuZCwgaW4gZWFjaCBz Y2hlZHVsZXIsIHVwIHRvIDUxMgorICogZGlmZmVyZW50IGV2ZW50cy4KKyAqLworI2RlZmluZSBU UkNfU0NIRURfSURfQklUUyAzCisjZGVmaW5lIFRSQ19TQ0hFRF9JRF9TSElGVCAoVFJDX1NVQkNM U19TSElGVCAtIFRSQ19TQ0hFRF9JRF9CSVRTKQorI2RlZmluZSBUUkNfU0NIRURfSURfTUFTSyAo KCgxVUw8PFRSQ19TQ0hFRF9JRF9CSVRTKSAtIDEpIDw8IFRSQ19TQ0hFRF9JRF9TSElGVCkKKyNk ZWZpbmUgVFJDX1NDSEVEX0VWVF9NQVNLICh+KFRSQ19TQ0hFRF9JRF9NQVNLKSkKKworLyogUGVy LXNjaGVkdWxlciBJRHMsIHRvIGlkZW50aWZ5IHNjaGVkdWxlciBzcGVjaWZpYyBldmVudHMgKi8K KyNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRCAgIDAKKyNkZWZpbmUgVFJDX1NDSEVEX0NTQ0hFRDIg IDEKKy8qICNkZWZpbmUgWEVOX1NDSEVEVUxFUl9TRURGIDIgKFJlbW92ZWQpICovCisjZGVmaW5l IFRSQ19TQ0hFRF9BUklOQzY1MyAzCisjZGVmaW5lIFRSQ19TQ0hFRF9SVERTICAgICA0CisjZGVm aW5lIFRSQ19TQ0hFRF9TTlVMTCAgICA1CisKKy8qIFBlci1zY2hlZHVsZXIgdHJhY2luZyAqLwor I2RlZmluZSBUUkNfU0NIRURfQ0xBU1NfRVZUKF9jLCBfZSkgXAorICAoICggVFJDX1NDSEVEX0NM QVNTIHwgXAorICAgICAgKChUUkNfU0NIRURfIyNfYyA8PCBUUkNfU0NIRURfSURfU0hJRlQpICYg VFJDX1NDSEVEX0lEX01BU0spICkgKyBcCisgICAgKF9lICYgVFJDX1NDSEVEX0VWVF9NQVNLKSAp CisKKy8qIFRyYWNlIGNsYXNzZXMgZm9yIERPTTAgb3BlcmF0aW9ucyAqLworI2RlZmluZSBUUkNf RE9NMF9ET01PUFMgICAgIDB4MDAwNDEwMDAgICAvKiBEb21haW5zIG1hbmlwdWxhdGlvbnMgKi8K KworLyogVHJhY2UgY2xhc3NlcyBmb3IgSGFyZHdhcmUgKi8KKyNkZWZpbmUgVFJDX0hXX1BNICAg ICAgICAgICAweDAwODAxMDAwICAgLyogUG93ZXIgbWFuYWdlbWVudCB0cmFjZXMgKi8KKyNkZWZp bmUgVFJDX0hXX0lSUSAgICAgICAgICAweDAwODAyMDAwICAgLyogVHJhY2VzIHJlbGF0aW5nIHRv IHRoZSBoYW5kbGluZyBvZiBJUlFzICovCisKKy8qIFRyYWNlIGV2ZW50cyBwZXIgY2xhc3MgKi8K KyNkZWZpbmUgVFJDX0xPU1RfUkVDT1JEUyAgICAgICAgKFRSQ19HRU4gKyAxKQorI2RlZmluZSBU UkNfVFJBQ0VfV1JBUF9CVUZGRVIgIChUUkNfR0VOICsgMikKKyNkZWZpbmUgVFJDX1RSQUNFX0NQ VV9DSEFOR0UgICAgKFRSQ19HRU4gKyAzKQorCisjZGVmaW5lIFRSQ19TQ0hFRF9SVU5TVEFURV9D SEFOR0UgICAoVFJDX1NDSEVEX01JTiArIDEpCisjZGVmaW5lIFRSQ19TQ0hFRF9DT05USU5VRV9S VU5OSU5HICAoVFJDX1NDSEVEX01JTiArIDIpCisjZGVmaW5lIFRSQ19TQ0hFRF9ET01fQUREICAg ICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAgMSkKKyNkZWZpbmUgVFJDX1NDSEVEX0RPTV9SRU0g ICAgICAgIChUUkNfU0NIRURfVkVSQk9TRSArICAyKQorI2RlZmluZSBUUkNfU0NIRURfU0xFRVAg ICAgICAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDMpCisjZGVmaW5lIFRSQ19TQ0hFRF9XQUtF ICAgICAgICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAgNCkKKyNkZWZpbmUgVFJDX1NDSEVEX1lJ RUxEICAgICAgICAgIChUUkNfU0NIRURfVkVSQk9TRSArICA1KQorI2RlZmluZSBUUkNfU0NIRURf QkxPQ0sgICAgICAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDYpCisjZGVmaW5lIFRSQ19TQ0hF RF9TSFVURE9XTiAgICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAgNykKKyNkZWZpbmUgVFJDX1ND SEVEX0NUTCAgICAgICAgICAgIChUUkNfU0NIRURfVkVSQk9TRSArICA4KQorI2RlZmluZSBUUkNf U0NIRURfQURKRE9NICAgICAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgIDkpCisjZGVmaW5lIFRS Q19TQ0hFRF9TV0lUQ0ggICAgICAgICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMCkKKyNkZWZpbmUg VFJDX1NDSEVEX1NfVElNRVJfRk4gICAgIChUUkNfU0NIRURfVkVSQk9TRSArIDExKQorI2RlZmlu ZSBUUkNfU0NIRURfVF9USU1FUl9GTiAgICAgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTIpCisjZGVm aW5lIFRSQ19TQ0hFRF9ET01fVElNRVJfRk4gICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAxMykKKyNk ZWZpbmUgVFJDX1NDSEVEX1NXSVRDSF9JTkZQUkVWIChUUkNfU0NIRURfVkVSQk9TRSArIDE0KQor I2RlZmluZSBUUkNfU0NIRURfU1dJVENIX0lORk5FWFQgKFRSQ19TQ0hFRF9WRVJCT1NFICsgMTUp CisjZGVmaW5lIFRSQ19TQ0hFRF9TSFVURE9XTl9DT0RFICAoVFJDX1NDSEVEX1ZFUkJPU0UgKyAx NikKKyNkZWZpbmUgVFJDX1NDSEVEX1NXSVRDSF9JTkZDT05UIChUUkNfU0NIRURfVkVSQk9TRSAr IDE3KQorCisjZGVmaW5lIFRSQ19ET00wX0RPTV9BREQgICAgICAgICAoVFJDX0RPTTBfRE9NT1BT ICsgMSkKKyNkZWZpbmUgVFJDX0RPTTBfRE9NX1JFTSAgICAgICAgIChUUkNfRE9NMF9ET01PUFMg KyAyKQorCisjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9NQVAgICAgICAoVFJDX01FTSArIDEp CisjZGVmaW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9VTk1BUCAgICAoVFJDX01FTSArIDIpCisjZGVm aW5lIFRSQ19NRU1fUEFHRV9HUkFOVF9UUkFOU0ZFUiAoVFJDX01FTSArIDMpCisjZGVmaW5lIFRS Q19NRU1fU0VUX1AyTV9FTlRSWSAgICAgICAoVFJDX01FTSArIDQpCisjZGVmaW5lIFRSQ19NRU1f REVDUkVBU0VfUkVTRVJWQVRJT04gKFRSQ19NRU0gKyA1KQorI2RlZmluZSBUUkNfTUVNX1BPRF9Q T1BVTEFURSAgICAgICAgKFRSQ19NRU0gKyAxNikKKyNkZWZpbmUgVFJDX01FTV9QT0RfWkVST19S RUNMQUlNICAgIChUUkNfTUVNICsgMTcpCisjZGVmaW5lIFRSQ19NRU1fUE9EX1NVUEVSUEFHRV9T UExJTlRFUiAoVFJDX01FTSArIDE4KQorCisjZGVmaW5lIFRSQ19QVl9FTlRSWSAgIDB4MDAyMDEw MDAgLyogSHlwZXJ2aXNvciBlbnRyeSBwb2ludHMgZm9yIFBWIGd1ZXN0cy4gKi8KKyNkZWZpbmUg VFJDX1BWX1NVQkNBTEwgMHgwMDIwMjAwMCAvKiBTdWItY2FsbCBpbiBhIG11bHRpY2FsbCBoeXBl cmNhbGwgKi8KKworI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMICAgICAgICAgICAgIChUUkNfUFZf RU5UUlkgKyAgMSkKKyNkZWZpbmUgVFJDX1BWX1RSQVAgICAgICAgICAgICAgICAgICAoVFJDX1BW X0VOVFJZICsgIDMpCisjZGVmaW5lIFRSQ19QVl9QQUdFX0ZBVUxUICAgICAgICAgICAgKFRSQ19Q Vl9FTlRSWSArICA0KQorI2RlZmluZSBUUkNfUFZfRk9SQ0VEX0lOVkFMSURfT1AgICAgIChUUkNf UFZfRU5UUlkgKyAgNSkKKyNkZWZpbmUgVFJDX1BWX0VNVUxBVEVfUFJJVk9QICAgICAgICAoVFJD X1BWX0VOVFJZICsgIDYpCisjZGVmaW5lIFRSQ19QVl9FTVVMQVRFXzRHQiAgICAgICAgICAgKFRS Q19QVl9FTlRSWSArICA3KQorI2RlZmluZSBUUkNfUFZfTUFUSF9TVEFURV9SRVNUT1JFICAgIChU UkNfUFZfRU5UUlkgKyAgOCkKKyNkZWZpbmUgVFJDX1BWX1BBR0lOR19GSVhVUCAgICAgICAgICAo VFJDX1BWX0VOVFJZICsgIDkpCisjZGVmaW5lIFRSQ19QVl9HRFRfTERUX01BUFBJTkdfRkFVTFQg KFRSQ19QVl9FTlRSWSArIDEwKQorI2RlZmluZSBUUkNfUFZfUFRXUl9FTVVMQVRJT04gICAgICAg IChUUkNfUFZfRU5UUlkgKyAxMSkKKyNkZWZpbmUgVFJDX1BWX1BUV1JfRU1VTEFUSU9OX1BBRSAg ICAoVFJDX1BWX0VOVFJZICsgMTIpCisjZGVmaW5lIFRSQ19QVl9IWVBFUkNBTExfVjIgICAgICAg ICAgKFRSQ19QVl9FTlRSWSArIDEzKQorI2RlZmluZSBUUkNfUFZfSFlQRVJDQUxMX1NVQkNBTEwg ICAgIChUUkNfUFZfU1VCQ0FMTCArIDE0KQorCisvKgorICogVFJDX1BWX0hZUEVSQ0FMTF9WMiBm b3JtYXQKKyAqCisgKiBPbmx5IHNvbWUgb2YgdGhlIGh5cGVyY2FsbCBhcmd1bWVudCBhcmUgcmVj b3JkZWQuIEJpdCBmaWVsZHMgQTAgdG8KKyAqIEE1IGluIHRoZSBmaXJzdCBleHRyYSB3b3JkIGFy ZSBzZXQgaWYgdGhlIGFyZ3VtZW50IGlzIHByZXNlbnQgYW5kCisgKiB0aGUgYXJndW1lbnRzIHRo ZW1zZWx2ZXMgYXJlIHBhY2tlZCBzZXF1ZW50aWFsbHkgaW4gdGhlIGZvbGxvd2luZworICogd29y ZHMuCisgKgorICogVGhlIFRSQ182NF9GTEFHIGJpdCBpcyBub3Qgc2V0IGZvciB0aGVzZSBldmVu dHMgKGV2ZW4gaWYgdGhlcmUgYXJlCisgKiA2NC1iaXQgYXJndW1lbnRzIGluIHRoZSByZWNvcmQp LgorICoKKyAqIFdvcmQKKyAqIDAgICAgYml0IDMxIDMwfDI5IDI4fDI3IDI2fDI1IDI0fDIzIDIy fDIxIDIwfDE5IC4uLiAwCisgKiAgICAgICAgICBBNSAgIHxBNCAgIHxBMyAgIHxBMiAgIHxBMSAg IHxBMCAgIHxIeXBlcmNhbGwgb3AKKyAqIDEgICAgRmlyc3QgMzIgYml0IChvciBsb3cgd29yZCBv ZiBmaXJzdCA2NCBiaXQpIGFyZyBpbiByZWNvcmQKKyAqIDIgICAgU2Vjb25kIDMyIGJpdCAob3Ig aGlnaCB3b3JkIG9mIGZpcnN0IDY0IGJpdCkgYXJnIGluIHJlY29yZAorICogLi4uCisgKgorICog QTAtQTUgYml0ZmllbGQgdmFsdWVzOgorICoKKyAqICAgMDBiICBBcmd1bWVudCBub3QgcHJlc2Vu dAorICogICAwMWIgIDMyLWJpdCBhcmd1bWVudCBwcmVzZW50CisgKiAgIDEwYiAgNjQtYml0IGFy Z3VtZW50IHByZXNlbnQKKyAqICAgMTFiICBSZXNlcnZlZAorICovCisjZGVmaW5lIFRSQ19QVl9I WVBFUkNBTExfVjJfQVJHXzMyKGkpICgweDEgPDwgKDIwICsgMiooaSkpKQorI2RlZmluZSBUUkNf UFZfSFlQRVJDQUxMX1YyX0FSR182NChpKSAoMHgyIDw8ICgyMCArIDIqKGkpKSkKKyNkZWZpbmUg VFJDX1BWX0hZUEVSQ0FMTF9WMl9BUkdfTUFTSyAgKDB4ZmZmMDAwMDApCisKKyNkZWZpbmUgVFJD X1NIQURPV19OT1RfU0hBRE9XICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICAxKQorI2Rl ZmluZSBUUkNfU0hBRE9XX0ZBU1RfUFJPUEFHQVRFICAgICAgICAgICAgIChUUkNfU0hBRE9XICsg IDIpCisjZGVmaW5lIFRSQ19TSEFET1dfRkFTVF9NTUlPICAgICAgICAgICAgICAgICAgKFRSQ19T SEFET1cgKyAgMykKKyNkZWZpbmUgVFJDX1NIQURPV19GQUxTRV9GQVNUX1BBVEggICAgICAgICAg ICAoVFJDX1NIQURPVyArICA0KQorI2RlZmluZSBUUkNfU0hBRE9XX01NSU8gICAgICAgICAgICAg ICAgICAgICAgIChUUkNfU0hBRE9XICsgIDUpCisjZGVmaW5lIFRSQ19TSEFET1dfRklYVVAgICAg ICAgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAgNikKKyNkZWZpbmUgVFJDX1NIQURPV19E T01GX0RZSU5HICAgICAgICAgICAgICAgICAoVFJDX1NIQURPVyArICA3KQorI2RlZmluZSBUUkNf U0hBRE9XX0VNVUxBVEUgICAgICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgIDgpCisjZGVm aW5lIFRSQ19TSEFET1dfRU1VTEFURV9VTlNIQURPV19VU0VSICAgICAgKFRSQ19TSEFET1cgKyAg OSkKKyNkZWZpbmUgVFJDX1NIQURPV19FTVVMQVRFX1VOU0hBRE9XX0VWVElOSiAgICAoVFJDX1NI QURPVyArIDEwKQorI2RlZmluZSBUUkNfU0hBRE9XX0VNVUxBVEVfVU5TSEFET1dfVU5IQU5ETEVE IChUUkNfU0hBRE9XICsgMTEpCisjZGVmaW5lIFRSQ19TSEFET1dfV1JNQVBfQkYgICAgICAgICAg ICAgICAgICAgKFRSQ19TSEFET1cgKyAxMikKKyNkZWZpbmUgVFJDX1NIQURPV19QUkVBTExPQ19V TlBJTiAgICAgICAgICAgICAoVFJDX1NIQURPVyArIDEzKQorI2RlZmluZSBUUkNfU0hBRE9XX1JF U1lOQ19GVUxMICAgICAgICAgICAgICAgIChUUkNfU0hBRE9XICsgMTQpCisjZGVmaW5lIFRSQ19T SEFET1dfUkVTWU5DX09OTFkgICAgICAgICAgICAgICAgKFRSQ19TSEFET1cgKyAxNSkKKworLyog dHJhY2UgZXZlbnRzIHBlciBzdWJjbGFzcyAqLworI2RlZmluZSBUUkNfSFZNX05FU1RFREZMQUcg ICAgICAoMHg0MDApCisjZGVmaW5lIFRSQ19IVk1fVk1FTlRSWSAgICAgICAgIChUUkNfSFZNX0VO VFJZRVhJVCArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fVk1FWElUICAgICAgICAgIChUUkNfSFZN X0VOVFJZRVhJVCArIDB4MDIpCisjZGVmaW5lIFRSQ19IVk1fVk1FWElUNjQgICAgICAgIChUUkNf SFZNX0VOVFJZRVhJVCArIFRSQ182NF9GTEFHICsgMHgwMikKKyNkZWZpbmUgVFJDX0hWTV9QRl9Y RU4gICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MDEpCisjZGVmaW5lIFRSQ19IVk1fUEZf WEVONjQgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MDEpCisjZGVm aW5lIFRSQ19IVk1fUEZfSU5KRUNUICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDAyKQorI2Rl ZmluZSBUUkNfSFZNX1BGX0lOSkVDVDY0ICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJDXzY0X0ZM QUcgKyAweDAyKQorI2RlZmluZSBUUkNfSFZNX0lOSl9FWEMgICAgICAgICAoVFJDX0hWTV9IQU5E TEVSICsgMHgwMykKKyNkZWZpbmUgVFJDX0hWTV9JTkpfVklSUSAgICAgICAgKFRSQ19IVk1fSEFO RExFUiArIDB4MDQpCisjZGVmaW5lIFRSQ19IVk1fUkVJTkpfVklSUSAgICAgIChUUkNfSFZNX0hB TkRMRVIgKyAweDA1KQorI2RlZmluZSBUUkNfSFZNX0lPX1JFQUQgICAgICAgICAoVFJDX0hWTV9I QU5ETEVSICsgMHgwNikKKyNkZWZpbmUgVFJDX0hWTV9JT19XUklURSAgICAgICAgKFRSQ19IVk1f SEFORExFUiArIDB4MDcpCisjZGVmaW5lIFRSQ19IVk1fQ1JfUkVBRCAgICAgICAgIChUUkNfSFZN X0hBTkRMRVIgKyAweDA4KQorI2RlZmluZSBUUkNfSFZNX0NSX1JFQUQ2NCAgICAgICAoVFJDX0hW TV9IQU5ETEVSICsgVFJDXzY0X0ZMQUcgKyAweDA4KQorI2RlZmluZSBUUkNfSFZNX0NSX1dSSVRF ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwOSkKKyNkZWZpbmUgVFJDX0hWTV9DUl9XUklU RTY0ICAgICAgKFRSQ19IVk1fSEFORExFUiArIFRSQ182NF9GTEFHICsgMHgwOSkKKyNkZWZpbmUg VFJDX0hWTV9EUl9SRUFEICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEEpCisjZGVmaW5l IFRSQ19IVk1fRFJfV1JJVEUgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBCKQorI2RlZmlu ZSBUUkNfSFZNX01TUl9SRUFEICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwQykKKyNkZWZp bmUgVFJDX0hWTV9NU1JfV1JJVEUgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MEQpCisjZGVm aW5lIFRSQ19IVk1fQ1BVSUQgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDBFKQorI2Rl ZmluZSBUUkNfSFZNX0lOVFIgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgwRikKKyNk ZWZpbmUgVFJDX0hWTV9OTUkgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTApCisj ZGVmaW5lIFRSQ19IVk1fU01JICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDExKQor I2RlZmluZSBUUkNfSFZNX1ZNTUNBTEwgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgxMikK KyNkZWZpbmUgVFJDX0hWTV9ITFQgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MTMp CisjZGVmaW5lIFRSQ19IVk1fSU5WTFBHICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDE0 KQorI2RlZmluZSBUUkNfSFZNX0lOVkxQRzY0ICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgVFJD XzY0X0ZMQUcgKyAweDE0KQorI2RlZmluZSBUUkNfSFZNX01DRSAgICAgICAgICAgICAoVFJDX0hW TV9IQU5ETEVSICsgMHgxNSkKKyNkZWZpbmUgVFJDX0hWTV9JT1BPUlRfUkVBRCAgICAgKFRSQ19I Vk1fSEFORExFUiArIDB4MTYpCisjZGVmaW5lIFRSQ19IVk1fSU9NRU1fUkVBRCAgICAgIChUUkNf SFZNX0hBTkRMRVIgKyAweDE3KQorI2RlZmluZSBUUkNfSFZNX0NMVFMgICAgICAgICAgICAoVFJD X0hWTV9IQU5ETEVSICsgMHgxOCkKKyNkZWZpbmUgVFJDX0hWTV9MTVNXICAgICAgICAgICAgKFRS Q19IVk1fSEFORExFUiArIDB4MTkpCisjZGVmaW5lIFRSQ19IVk1fTE1TVzY0ICAgICAgICAgIChU UkNfSFZNX0hBTkRMRVIgKyBUUkNfNjRfRkxBRyArIDB4MTkpCisjZGVmaW5lIFRSQ19IVk1fUkRU U0MgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDFhKQorI2RlZmluZSBUUkNfSFZNX0lO VFJfV0lORE9XICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMCkKKyNkZWZpbmUgVFJDX0hWTV9O UEYgICAgICAgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjEpCisjZGVmaW5lIFRSQ19IVk1f UkVBTE1PREVfRU1VTEFURSAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMikKKyNkZWZpbmUgVFJDX0hW TV9UUkFQICAgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIzKQorI2RlZmluZSBUUkNf SFZNX1RSQVBfREVCVUcgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjQpCisjZGVmaW5lIFRS Q19IVk1fVkxBUElDICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyNSkKKworI2RlZmlu ZSBUUkNfSFZNX0lPUE9SVF9XUklURSAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMTYpCisjZGVm aW5lIFRSQ19IVk1fSU9NRU1fV1JJVEUgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIxNykKKwor LyogVHJhY2UgZXZlbnRzIGZvciBlbXVsYXRlZCBkZXZpY2VzICovCisjZGVmaW5lIFRSQ19IVk1f RU1VTF9IUEVUX1NUQVJUX1RJTUVSICAoVFJDX0hWTV9FTVVMICsgMHgxKQorI2RlZmluZSBUUkNf SFZNX0VNVUxfUElUX1NUQVJUX1RJTUVSICAgKFRSQ19IVk1fRU1VTCArIDB4MikKKyNkZWZpbmUg VFJDX0hWTV9FTVVMX1JUQ19TVEFSVF9USU1FUiAgIChUUkNfSFZNX0VNVUwgKyAweDMpCisjZGVm aW5lIFRSQ19IVk1fRU1VTF9MQVBJQ19TVEFSVF9USU1FUiAoVFJDX0hWTV9FTVVMICsgMHg0KQor I2RlZmluZSBUUkNfSFZNX0VNVUxfSFBFVF9TVE9QX1RJTUVSICAgKFRSQ19IVk1fRU1VTCArIDB4 NSkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJVF9TVE9QX1RJTUVSICAgIChUUkNfSFZNX0VNVUwg KyAweDYpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9SVENfU1RPUF9USU1FUiAgICAoVFJDX0hWTV9F TVVMICsgMHg3KQorI2RlZmluZSBUUkNfSFZNX0VNVUxfTEFQSUNfU1RPUF9USU1FUiAgKFRSQ19I Vk1fRU1VTCArIDB4OCkKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJVF9USU1FUl9DQiAgICAgIChU UkNfSFZNX0VNVUwgKyAweDkpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9MQVBJQ19USU1FUl9DQiAg ICAoVFJDX0hWTV9FTVVMICsgMHhBKQorI2RlZmluZSBUUkNfSFZNX0VNVUxfUElDX0lOVF9PVVRQ VVQgICAgKFRSQ19IVk1fRU1VTCArIDB4QikKKyNkZWZpbmUgVFJDX0hWTV9FTVVMX1BJQ19LSUNL ICAgICAgICAgIChUUkNfSFZNX0VNVUwgKyAweEMpCisjZGVmaW5lIFRSQ19IVk1fRU1VTF9QSUNf SU5UQUNLICAgICAgICAoVFJDX0hWTV9FTVVMICsgMHhEKQorI2RlZmluZSBUUkNfSFZNX0VNVUxf UElDX1BPU0VER0UgICAgICAgKFRSQ19IVk1fRU1VTCArIDB4RSkKKyNkZWZpbmUgVFJDX0hWTV9F TVVMX1BJQ19ORUdFREdFICAgICAgIChUUkNfSFZNX0VNVUwgKyAweEYpCisjZGVmaW5lIFRSQ19I Vk1fRU1VTF9QSUNfUEVORF9JUlFfQ0FMTCAoVFJDX0hWTV9FTVVMICsgMHgxMCkKKyNkZWZpbmUg VFJDX0hWTV9FTVVMX0xBUElDX1BJQ19JTlRSICAgIChUUkNfSFZNX0VNVUwgKyAweDExKQorCisv KiB0cmFjZSBldmVudHMgZm9yIHBlciBjbGFzcyAqLworI2RlZmluZSBUUkNfUE1fRlJFUV9DSEFO R0UgICAgICAoVFJDX0hXX1BNICsgMHgwMSkKKyNkZWZpbmUgVFJDX1BNX0lETEVfRU5UUlkgICAg ICAgKFRSQ19IV19QTSArIDB4MDIpCisjZGVmaW5lIFRSQ19QTV9JRExFX0VYSVQgICAgICAgIChU UkNfSFdfUE0gKyAweDAzKQorCisvKiBUcmFjZSBldmVudHMgZm9yIElSUXMgKi8KKyNkZWZpbmUg VFJDX0hXX0lSUV9NT1ZFX0NMRUFOVVBfREVMQVkgKFRSQ19IV19JUlEgKyAweDEpCisjZGVmaW5l IFRSQ19IV19JUlFfTU9WRV9DTEVBTlVQICAgICAgIChUUkNfSFdfSVJRICsgMHgyKQorI2RlZmlu ZSBUUkNfSFdfSVJRX0JJTkRfVkVDVE9SICAgICAgICAoVFJDX0hXX0lSUSArIDB4MykKKyNkZWZp bmUgVFJDX0hXX0lSUV9DTEVBUl9WRUNUT1IgICAgICAgKFRSQ19IV19JUlEgKyAweDQpCisjZGVm aW5lIFRSQ19IV19JUlFfTU9WRV9GSU5JU0ggICAgICAgIChUUkNfSFdfSVJRICsgMHg1KQorI2Rl ZmluZSBUUkNfSFdfSVJRX0FTU0lHTl9WRUNUT1IgICAgICAoVFJDX0hXX0lSUSArIDB4NikKKyNk ZWZpbmUgVFJDX0hXX0lSUV9VTk1BUFBFRF9WRUNUT1IgICAgKFRSQ19IV19JUlEgKyAweDcpCisj ZGVmaW5lIFRSQ19IV19JUlFfSEFORExFRCAgICAgICAgICAgIChUUkNfSFdfSVJRICsgMHg4KQor CisvKgorICogRXZlbnQgRmxhZ3MKKyAqCisgKiBTb21lIGV2ZW50cyAoZS5nLCBUUkNfUFZfVFJB UCBhbmQgVFJDX0hWTV9JT01FTV9SRUFEKSBoYXZlIG11bHRpcGxlCisgKiByZWNvcmQgZm9ybWF0 cy4gIFRoZXNlIGV2ZW50IGZsYWdzIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlCisgKiBkaWZmZXJl bnQgZm9ybWF0cy4KKyAqLworI2RlZmluZSBUUkNfNjRfRkxBRyAweDEwMCAvKiBBZGRyZXNzZXMg YXJlIDY0IGJpdHMgKGluc3RlYWQgb2YgMzIgYml0cykgKi8KKworLyogVGhpcyBzdHJ1Y3R1cmUg cmVwcmVzZW50cyBhIHNpbmdsZSB0cmFjZSBidWZmZXIgcmVjb3JkLiAqLworc3RydWN0IHRfcmVj IHsKKyAgICB1aW50MzJfdCBldmVudDoyODsKKyAgICB1aW50MzJfdCBleHRyYV91MzI6MzsgICAg ICAgICAvKiAjIGVudHJpZXMgaW4gdHJhaWxpbmcgZXh0cmFfdTMyW10gYXJyYXkgKi8KKyAgICB1 aW50MzJfdCBjeWNsZXNfaW5jbHVkZWQ6MTsgICAvKiB1LmN5Y2xlcyBvciB1Lm5vX2N5Y2xlcz8g Ki8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCBj eWNsZXNfbG8sIGN5Y2xlc19oaTsgLyogY3ljbGUgY291bnRlciB0aW1lc3RhbXAgKi8KKyAgICAg ICAgICAgIHVpbnQzMl90IGV4dHJhX3UzMls3XTsgICAgICAgICAvKiBldmVudCBkYXRhIGl0ZW1z ICovCisgICAgICAgIH0gY3ljbGVzOworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWlu dDMyX3QgZXh0cmFfdTMyWzddOyAgICAgICAgIC8qIGV2ZW50IGRhdGEgaXRlbXMgKi8KKyAgICAg ICAgfSBub2N5Y2xlczsKKyAgICB9IHU7Cit9OworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgY29u dGFpbnMgdGhlIG1ldGFkYXRhIGZvciBhIHNpbmdsZSB0cmFjZSBidWZmZXIuICBUaGUgaGVhZAor ICogZmllbGQsIGluZGV4ZXMgaW50byBhbiBhcnJheSBvZiBzdHJ1Y3QgdF9yZWMncy4KKyAqLwor c3RydWN0IHRfYnVmIHsKKyAgICAvKiBBc3N1bWUgdGhlIGRhdGEgYnVmZmVyIHNpemUgaXMgWC4g IFggaXMgZ2VuZXJhbGx5IG5vdCBhIHBvd2VyIG9mIDIuCisgICAgICogQ09OUyBhbmQgUFJPRCBh cmUgaW5jcmVtZW50ZWQgbW9kdWxvICgyKlgpOgorICAgICAqICAgICAwIDw9IGNvbnMgPCAyKlgK KyAgICAgKiAgICAgMCA8PSBwcm9kIDwgMipYCisgICAgICogVGhpcyBpcyBkb25lIGJlY2F1c2Ug YWRkaXRpb24gbW9kdWxvIFggYnJlYWtzIGF0IDJeMzIgd2hlbiBYIGlzIG5vdCBhCisgICAgICog cG93ZXIgb2YgMjoKKyAgICAgKiAgICAgKCgoMl4zMiAtIDEpICUgWCkgKyAxKSAlIFggIT0gKDJe MzIpICUgWAorICAgICAqLworICAgIHVpbnQzMl90IGNvbnM7ICAgLyogT2Zmc2V0IG9mIG5leHQg aXRlbSB0byBiZSBjb25zdW1lZCBieSBjb250cm9sIHRvb2xzLiAqLworICAgIHVpbnQzMl90IHBy b2Q7ICAgLyogT2Zmc2V0IG9mIG5leHQgaXRlbSB0byBiZSBwcm9kdWNlZCBieSBYZW4uICAgICAg ICAgICAqLworICAgIC8qICBSZWNvcmRzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciB0aGUgbWV0 YS1kYXRhIGhlYWRlci4gICAgKi8KK307CisKKy8qIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3MgTUZO cyB0byB0aGUgdHJhY2UgYnVmZmVycyBiYWNrIHRvIHRyYWNlIGNvbnN1bWVycy4KKyAqIE9mZnNl dCBpcyBhbiBvZmZzZXQgaW50byB0aGUgbWFwcGVkIHN0cnVjdHVyZSB3aGVyZSB0aGUgbWZuIGxp c3Qgd2lsbCBiZSBoZWxkLgorICogTUZOcyB3aWxsIGJlIGF0ICgodW5zaWduZWQgbG9uZyAqKSh0 X2luZm8pKSsodF9pbmZvLT5jcHVfb2Zmc2V0W2NwdV0pLgorICovCitzdHJ1Y3QgdF9pbmZvIHsK KyAgICB1aW50MTZfdCB0YnVmX3NpemU7IC8qIFNpemUgaW4gcGFnZXMgb2YgZWFjaCB0cmFjZSBi dWZmZXIgKi8KKyAgICB1aW50MTZfdCBtZm5fb2Zmc2V0W107ICAvKiBPZmZzZXQgd2l0aGluIHRf aW5mbyBzdHJ1Y3R1cmUgb2YgdGhlIHBhZ2UgbGlzdCBwZXIgY3B1ICovCisgICAgLyogTUZOIGxp c3RzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBoZWFkZXIgKi8KK307CisKKyNlbmRpZiAvKiBfX1hF Tl9QVUJMSUNfVFJBQ0VfSF9fICovCisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2Rl OiBDCisgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFi LXdpZHRoOiA0CisgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS94ZW4veGVuLmggYi9pbmNsdWRlL3hlbi94ZW4uaAppbmRleCA2YzllNDJi MmIuLjMwODEwOWYxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4veGVuLmgKKysrIGIvaW5jbHVk ZS94ZW4veGVuLmgKQEAgLTUzLDE3ICs1MywyMiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh1 aW50NjRfdCk7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcGZuX3QpOwogREVGSU5FX1hF Tl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogCi0vKiBUdXJuIGEgcGxhaW4gbnVtYmVyIGlu dG8gYSBDIHVuc2lnbmVkIChsb25nKSBjb25zdGFudC4gKi8KKy8qIFR1cm4gYSBwbGFpbiBudW1i ZXIgaW50byBhIEMgdW5zaWduZWQgKGxvbmcgKGxvbmcpKSBjb25zdGFudC4gKi8KICNkZWZpbmUg X194ZW5fbWtfdWludCh4KSAgeCAjIyBVCiAjZGVmaW5lIF9feGVuX21rX3Vsb25nKHgpIHggIyMg VUwKKyNpZm5kZWYgX194ZW5fbWtfdWxsb25nCisjIGRlZmluZSBfX3hlbl9ta191bGxvbmcoeCkg eCAjIyBVTEwKKyNlbmRpZgogI2RlZmluZSB4ZW5fbWtfdWludCh4KSAgICBfX3hlbl9ta191aW50 KHgpCiAjZGVmaW5lIHhlbl9ta191bG9uZyh4KSAgIF9feGVuX21rX3Vsb25nKHgpCisjZGVmaW5l IHhlbl9ta191bGxvbmcoeCkgIF9feGVuX21rX3VsbG9uZyh4KQogCiAjZWxzZQogCiAvKiBJbiBh c3NlbWJseSBjb2RlIHdlIGNhbm5vdCB1c2UgQyBudW1lcmljIGNvbnN0YW50IHN1ZmZpeGVzLiAq LwotI2RlZmluZSB4ZW5fbWtfdWludCh4KSAgeAotI2RlZmluZSB4ZW5fbWtfdWxvbmcoeCkgeAor I2RlZmluZSB4ZW5fbWtfdWludCh4KSAgIHgKKyNkZWZpbmUgeGVuX21rX3Vsb25nKHgpICB4Cisj ZGVmaW5lIHhlbl9ta191bGxvbmcoeCkgeAogCiAjZW5kaWYKIApAQCAtMTE1LDYgKzEyMCw3IEBA IERFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKICNkZWZpbmUgX19IWVBFUlZJ U09SX3RtZW1fb3AgICAgICAgICAgICAgIDM4CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl94Y19yZXNl cnZlZF9vcCAgICAgICAzOSAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCiAjZGVmaW5lIF9f SFlQRVJWSVNPUl94ZW5wbXVfb3AgICAgICAgICAgICA0MAorI2RlZmluZSBfX0hZUEVSVklTT1Jf ZG1fb3AgICAgICAgICAgICAgICAgNDEKIAogLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVy Y2FsbCBkZWZpbml0aW9ucy4gKi8KICNkZWZpbmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAg ICAgICAgIDQ4CkBAIC01MDEsNiArNTA3LDIxIEBAIERFRklORV9YRU5fR1VFU1RfSEFORExFKG1t dWV4dF9vcF90KTsKIC8qIHg4Ni9QQUUgZ3Vlc3RzOiBzdXBwb3J0IFBEUFRzIGFib3ZlIDRHQi4g Ki8KICNkZWZpbmUgVk1BU1NUX1RZUEVfcGFlX2V4dGVuZGVkX2NyMyAgICAgMwogCisvKgorICog eDg2IGd1ZXN0czogU2FuZSBiZWhhdmlvdXIgZm9yIHZpcnR1YWwgaW9wbAorICogIC0gdmlydHVh bCBpb3BsIHVwZGF0ZWQgZnJvbSBkb19pcmV0KCkgaHlwZXJjYWxscy4KKyAqICAtIHZpcnR1YWwg aW9wbCByZXBvcnRlZCBpbiBib3VuY2UgZnJhbWVzLgorICogIC0gZ3Vlc3Qga2VybmVscyBhc3N1 bWVkIHRvIGJlIGxldmVsIDAgZm9yIHRoZSBwdXJwb3NlIG9mIGlvcGwgY2hlY2tzLgorICovCisj ZGVmaW5lIFZNQVNTVF9UWVBFX2FyY2hpdGVjdHVyYWxfaW9wbCAgIDQKKworLyoKKyAqIEFsbCBn dWVzdHM6IGFjdGl2YXRlIHVwZGF0ZSBpbmRpY2F0b3IgaW4gdmNwdV9ydW5zdGF0ZV9pbmZvCisg KiBFbmFibGUgc2V0dGluZyB0aGUgWEVOX1JVTlNUQVRFX1VQREFURSBmbGFnIGluIGd1ZXN0IG1l bW9yeSBtYXBwZWQKKyAqIHZjcHVfcnVuc3RhdGVfaW5mbyBkdXJpbmcgdXBkYXRlcyBvZiB0aGUg cnVuc3RhdGUgaW5mb3JtYXRpb24uCisgKi8KKyNkZWZpbmUgVk1BU1NUX1RZUEVfcnVuc3RhdGVf dXBkYXRlX2ZsYWcgNQorCiAvKgogICogeDg2LzY0IGd1ZXN0czogc3RyaWN0bHkgaGlkZSBNMlAg ZnJvbSB1c2VyIG1vZGUuCiAgKiBUaGlzIGFsbG93cyB0aGUgZ3Vlc3QgdG8gY29udHJvbCByZXNw ZWN0aXZlIGh5cGVydmlzb3IgYmVoYXZpb3I6CkBAIC01MjksMTYgKzU1MCwyMSBAQCBERUZJTkVf WEVOX0dVRVNUX0hBTkRMRShtbXVleHRfb3BfdCk7CiAgKiBpcyB1c2VmdWwgdG8gZW5zdXJlIHRo YXQgbm8gbWFwcGluZ3MgdG8gdGhlIE9TJ3Mgb3duIGhlYXAgYXJlIGFjY2lkZW50YWxseQogICog aW5zdGFsbGVkLiAoZS5nLiwgaW4gTGludXggdGhpcyBjb3VsZCBjYXVzZSBoYXZvYyBhcyByZWZl cmVuY2UgY291bnRzCiAgKiBhcmVuJ3QgYWRqdXN0ZWQgb24gdGhlIEkvTy1tYXBwaW5nIGNvZGUg cGF0aCkuCi0gKiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaW4gTU1VRVhUX1NFVF9GT1JFSUdORE9N LCBidXQgaW4gdGhhdCBjb250ZXh0IGNhbgotICogYmUgc3BlY2lmaWVkIGJ5IGFueSBjYWxsaW5n IGRvbWFpbi4KKyAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBhcyBIWVBFUlZJU09SX21tdV91cGRh dGUoKSdzIGFuZAorICogSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbigp J3MgImZvcmVpZ25kb20iIGFyZ3VtZW50LiBGb3IKKyAqIEhZUEVSVklTT1JfbW11X3VwZGF0ZSgp IGNvbnRleHQgaXQgY2FuIGJlIHNwZWNpZmllZCBieSBhbnkgY2FsbGluZyBkb21haW4sCisgKiBv dGhlcndpc2UgaXQncyBvbmx5IHBlcm1pdHRlZCBpZiB0aGUgY2FsbGVyIGlzIHByaXZpbGVnZWQu CiAgKi8KICNkZWZpbmUgRE9NSURfSU8gICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYxKQog CiAvKgogICogRE9NSURfWEVOIGlzIHVzZWQgdG8gYWxsb3cgcHJpdmlsZWdlZCBkb21haW5zIHRv IG1hcCByZXN0cmljdGVkIHBhcnRzIG9mCiAgKiBYZW4ncyBoZWFwIHNwYWNlIChlLmcuLCB0aGUg bWFjaGluZV90b19waHlzIHRhYmxlKS4KLSAqIFRoaXMgb25seSBtYWtlcyBzZW5zZSBpbiBNTVVF WFRfU0VUX0ZPUkVJR05ET00sIGFuZCBpcyBvbmx5IHBlcm1pdHRlZCBpZgotICogdGhlIGNhbGxl ciBpcyBwcml2aWxlZ2VkLgorICogVGhpcyBvbmx5IG1ha2VzIHNlbnNlIGFzCisgKiAtIEhZUEVS VklTT1JfbW11X3VwZGF0ZSgpJ3MsIEhZUEVSVklTT1JfbW11ZXh0X29wKCkncywgb3IKKyAqICAg SFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZ19vdGhlcmRvbWFpbigpJ3MgImZvcmVpZ25kb20i IGFyZ3VtZW50LAorICogLSB3aXRoIFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiwKKyAqIGFuZCBp cyBvbmx5IHBlcm1pdHRlZCBpZiB0aGUgY2FsbGVyIGlzIHByaXZpbGVnZWQuCiAgKi8KICNkZWZp bmUgRE9NSURfWEVOICAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3RkYyKQogCkBAIC02MTQsMTAg KzY0MCwxOCBAQCBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gewogICAgICAqLwogICAgIHVpbnQzMl90 IHRzY190b19zeXN0ZW1fbXVsOwogICAgIGludDhfdCAgIHRzY19zaGlmdDsKKyNpZiBfX1hFTl9J TlRFUkZBQ0VfVkVSU0lPTl9fID4gMHgwNDA2MDAKKyAgICB1aW50OF90ICBmbGFnczsKKyAgICB1 aW50OF90ICBwYWQxWzJdOworI2Vsc2UKICAgICBpbnQ4X3QgICBwYWQxWzNdOworI2VuZGlmCiB9 OyAvKiAzMiBieXRlcyAqLwogdHlwZWRlZiBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gdmNwdV90aW1l X2luZm9fdDsKIAorI2RlZmluZSBYRU5fUFZDTE9DS19UU0NfU1RBQkxFX0JJVCAgICAgKDEgPDwg MCkKKyNkZWZpbmUgWEVOX1BWQ0xPQ0tfR1VFU1RfU1RPUFBFRCAgICAgICgxIDw8IDEpCisKIHN0 cnVjdCB2Y3B1X2luZm8gewogICAgIC8qCiAgICAgICogJ2V2dGNobl91cGNhbGxfcGVuZGluZycg aXMgd3JpdHRlbiBub24temVybyBieSBYZW4gdG8gaW5kaWNhdGUKQEAgLTczNiw3ICs3NzAsNyBA QCB0eXBlZGVmIHN0cnVjdCBzaGFyZWRfaW5mbyBzaGFyZWRfaW5mb190OwogICogICAgICAgICAo bWF5IGJlIG9taXR0ZWQpCiAgKiAgICAgIGMuIGxpc3Qgb2YgYWxsb2NhdGVkIHBhZ2UgZnJhbWVz IFttZm5fbGlzdCwgbnJfcGFnZXNdCiAgKiAgICAgICAgICh1bmxlc3MgcmVsb2NhdGVkIGR1ZSB0 byBYRU5fRUxGTk9URV9JTklUX1AyTSkKLSAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0cnVjdHVy ZSAgICAgICAgW3JlZ2lzdGVyIEVTSSAoeDg2KV0KKyAqICAgICAgZC4gc3RhcnRfaW5mb190IHN0 cnVjdHVyZSAgICAgICAgW3JlZ2lzdGVyIHJTSSAoeDg2KV0KICAqICAgICAgICAgaW4gY2FzZSBv ZiBkb20wIHRoaXMgcGFnZSBjb250YWlucyB0aGUgY29uc29sZSBpbmZvLCB0b28KICAqICAgICAg ZS4gdW5sZXNzIGRvbTA6IHhlbnN0b3JlIHJpbmcgcGFnZQogICogICAgICBmLiB1bmxlc3MgZG9t MDogY29uc29sZSByaW5nIHBhZ2UKQEAgLTc5NywyOSArODMxLDYgQEAgc3RydWN0IHN0YXJ0X2lu Zm8gewogfTsKIHR5cGVkZWYgc3RydWN0IHN0YXJ0X2luZm8gc3RhcnRfaW5mb190OwogCi0vKgot ICogU3RhcnQgb2YgZGF5IHN0cnVjdHVyZSBwYXNzZWQgdG8gUFZIIGd1ZXN0cyBpbiAlZWJ4Lgot ICoKLSAqIE5PVEU6IG5vdGhpbmcgd2lsbCBiZSBsb2FkZWQgYXQgcGh5c2ljYWwgYWRkcmVzcyAw LCBzbwotICogYSAwIHZhbHVlIGluIGFueSBvZiB0aGUgYWRkcmVzcyBmaWVsZHMgc2hvdWxkIGJl IHRyZWF0ZWQKLSAqIGFzIG5vdCBwcmVzZW50LgotICovCi1zdHJ1Y3QgaHZtX3N0YXJ0X2luZm8g ewotI2RlZmluZSBIVk1fU1RBUlRfTUFHSUNfVkFMVUUgMHgzMzZlYzU3OAotICAgIHVpbnQzMl90 IG1hZ2ljOyAgICAgICAgICAgICAvKiBDb250YWlucyB0aGUgbWFnaWMgdmFsdWUgMHgzMzZlYzU3 OCAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAoInhFbjMiIHdp dGggdGhlIDB4ODAgYml0IG9mIHRoZSAiRSIgc2V0KS4qLwotICAgIHVpbnQzMl90IGZsYWdzOyAg ICAgICAgICAgICAvKiBTSUZfeHh4IGZsYWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LwotICAgIHVpbnQzMl90IGNtZGxpbmVfcGFkZHI7ICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9m IHRoZSBjb21tYW5kIGxpbmUuICAgICAqLwotICAgIHVpbnQzMl90IG5yX21vZHVsZXM7ICAgICAg ICAvKiBOdW1iZXIgb2YgbW9kdWxlcyBwYXNzZWQgdG8gdGhlIGtlcm5lbC4gICAqLwotICAgIHVp bnQzMl90IG1vZGxpc3RfcGFkZHI7ICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIGFuIGFycmF5 IG9mICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBodm1f bW9kbGlzdF9lbnRyeS4gICAgICAgICAgICAgICAgICAgICAgICAqLwotfTsKLQotc3RydWN0IGh2 bV9tb2RsaXN0X2VudHJ5IHsKLSAgICB1aW50MzJfdCBwYWRkcjsgICAgICAgICAgICAgLyogUGh5 c2ljYWwgYWRkcmVzcyBvZiB0aGUgbW9kdWxlLiAgICAgICAgICAgKi8KLSAgICB1aW50MzJfdCBz aXplOyAgICAgICAgICAgICAgLyogU2l6ZSBvZiB0aGUgbW9kdWxlIGluIGJ5dGVzLiAgICAgICAg ICAgICAgKi8KLX07Ci0KIC8qIE5ldyBjb25zb2xlIHVuaW9uIGZvciBkb20wIGludHJvZHVjZWQg aW4gMHgwMDAzMDIwMy4gKi8KICNpZiBfX1hFTl9JTlRFUkZBQ0VfVkVSU0lPTl9fIDwgMHgwMDAz MDIwMwogI2RlZmluZSBjb25zb2xlX21mbiAgICBjb25zb2xlLmRvbVUubWZuCkBAIC05MTksNiAr OTMwLDM3IEBAIF9fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUodWludDE2LCB1aW50MTZfdCk7CiBf X0RFRklORV9YRU5fR1VFU1RfSEFORExFKHVpbnQzMiwgdWludDMyX3QpOwogX19ERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh1aW50NjQsIHVpbnQ2NF90KTsKIAordHlwZWRlZiBzdHJ1Y3QgeworICAg IHVpbnQ4X3QgYVsxNl07Cit9IHhlbl91dWlkX3Q7CisKKy8qCisgKiBYRU5fREVGSU5FX1VVSUQo MHgwMDExMjIzMywgMHg0NDU1LCAweDY2NzcsIDB4ODg5OSwKKyAqICAgICAgICAgICAgICAgICAw eGFhLCAweGJiLCAweGNjLCAweGRkLCAweGVlLCAweGZmKQorICogd2lsbCBjb25zdHJ1Y3QgVVVJ RCAwMDExMjIzMy00NDU1LTY2NzctODg5OS1hYWJiY2NkZGVlZmYgcHJlc2VudGVkIGFzCisgKiB7 MHgwMCwgMHgxMSwgMHgyMiwgMHgzMywgMHg0NCwgMHg1NSwgMHg2NiwgMHg3NywgMHg4OCwKKyAq IDB4OTksIDB4YWEsIDB4YmIsIDB4Y2MsIDB4ZGQsIDB4ZWUsIDB4ZmZ9OworICoKKyAqIE5COiBU aGlzIGlzIGNvbXBhdGlibGUgd2l0aCBMaW51eCBrZXJuZWwgYW5kIHdpdGggbGlidXVpZCwgYnV0 IGl0IGlzIG5vdAorICogY29tcGF0aWJsZSB3aXRoIE1pY3Jvc29mdCwgYXMgdGhleSB1c2UgbWl4 ZWQtZW5kaWFuIGVuY29kaW5nIChzb21lCisgKiBjb21wb25lbnRzIGFyZSBsaXR0bGUtZW5kaWFu LCBzb21lIGFyZSBiaWctZW5kaWFuKS4KKyAqLworI2RlZmluZSBYRU5fREVGSU5FX1VVSURfKGEs IGIsIGMsIGQsIGUxLCBlMiwgZTMsIGU0LCBlNSwgZTYpICAgICAgICAgICAgXAorICAgIHt7KChh KSA+PiAyNCkgJiAweEZGLCAoKGEpID4+IDE2KSAmIDB4RkYsICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgKChhKSA+PiAgOCkgJiAweEZGLCAoKGEpID4+ICAwKSAmIDB4RkYsICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKChiKSA+PiAgOCkgJiAweEZGLCAoKGIp ID4+ICAwKSAmIDB4RkYsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKChjKSA+ PiAgOCkgJiAweEZGLCAoKGMpID4+ICAwKSAmIDB4RkYsICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgKChkKSA+PiAgOCkgJiAweEZGLCAoKGQpID4+ICAwKSAmIDB4RkYsICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGUxLCBlMiwgZTMsIGU0LCBl NSwgZTZ9fQorCisjaWYgZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSA/IF9fU1REQ19WRVJTSU9O X18gPj0gMTk5OTAxTCA6IGRlZmluZWQoX19HTlVDX18pCisjZGVmaW5lIFhFTl9ERUZJTkVfVVVJ RChhLCBiLCBjLCBkLCBlMSwgZTIsIGUzLCBlNCwgZTUsIGU2KSAgICAgICAgICAgICBcCisgICAg KCh4ZW5fdXVpZF90KVhFTl9ERUZJTkVfVVVJRF8oYSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQs IGU1LCBlNikpCisjZWxzZQorI2RlZmluZSBYRU5fREVGSU5FX1VVSUQoYSwgYiwgYywgZCwgZTEs IGUyLCBlMywgZTQsIGU1LCBlNikgICAgICAgICAgICAgXAorICAgIFhFTl9ERUZJTkVfVVVJRF8o YSwgYiwgYywgZCwgZTEsIGUyLCBlMywgZTQsIGU1LCBlNikKKyNlbmRpZiAvKiBfX1NURENfVkVS U0lPTl9fIC8gX19HTlVDX18gKi8KKwogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KIAogLyog RGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgbWFjcm9zIHVzZWQgYnkgZG9tY3RsL3N5c2N0bC4gKi8K LS0gCjIuMTYuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=