LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICogICAgICAgICBTQU0gU29mdHdhcmUgUGFja2FnZSBMaWNlbnNlDQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogKiBDb3B5cmlnaHQgKGMpIDIwMTQsIEF0bWVsIENvcnBvcmF0aW9uDQogKg0KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4NCiAqDQogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQNCiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0Og0KICoNCiAqIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLA0KICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBkaXNjbGFpbWVyIGJlbG93Lg0KICoNCiAqIEF0bWVsJ3MgbmFtZSBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQ0KICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCiAqDQogKiBESVNDTEFJTUVSOiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFUTUVMICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SDQogKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GDQogKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5UIEFSRQ0KICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVRNRUwgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwNCiAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QNCiAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLA0KICogT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRg0KICogTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcNCiAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwNCiAqIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogKi8NCg0KLyoqDQogKiBccGFnZSBzYW1hNWQzeF9la19ib2FyZF9kZXNjIHNhbWE1ZDMteHBsYWluZWQgLSBCb2FyZCBEZXNjcmlwdGlvbg0KICoNCiAqIFxzZWN0aW9uIFB1cnBvc2UNCiAqDQogKiBUaGlzIGZpbGUgaXMgZGVkaWNhdGVkIHRvIGRlc2NyaWJlIHRoZSBzYW1hNWQzLXhwbGFpbmVkIGJvYXJkLg0KICoNCiAqIFxzZWN0aW9uIENvbnRlbnRzDQogKg0KICogIC0gc2FtYTVkMy14cGxhaW5lZCANCiAqICAtIEZvciBzYW1hNWQzLXhwbGFpbmVkIGluZm9ybWF0aW9uLCBzZWUgXHN1YnBhZ2Ugc2FtYTVkM3hfZWtfYm9hcmRfaW5mby4NCiAqICAtIEZvciBvcGVyYXRpbmcgZnJlcXVlbmN5IGluZm9ybWF0aW9uLCBzZWUgXHN1YnBhZ2Ugc2FtYTVkM3hfZWtfb3BmcmVxLg0KICogIC0gRm9yIHVzaW5nIHBvcnRhYmxlIFBJTyBkZWZpbml0aW9ucywgc2VlIFxzdWJwYWdlIHNhbWE1ZDN4X2VrX3Bpb2RlZi4NCiAqICAtIEZvciBvbi1ib2FyZCBtZW1vcmllcywgc2VlIFxzdWJwYWdlIHNhbWE1ZDN4X2VrX21lbS4NCiAqICAtIFNldmVyYWwgVVNCIGRlZmluaXRpb25zIGFyZSBpbmNsdWRlZCBoZXJlLCBzZWUgXHN1YnBhZ2Ugc2FtYTVkM3hfZWtfdXNiLg0KICogIC0gRm9yIEV4dGVybmFsIGNvbXBvbmVudHMsIHNlZSBcc3VicGFnZSBzYW1hNWQzeF9la19leHRjb21wLg0KICogIC0gRm9yIEluZGl2aWR1YWwgY2hpcCBkZWZpbml0aW9uLCBzZWUgXHN1YnBhZ2Ugc2FtYTVkM3hfZWtfY2hpcGRlZi4NCiAqDQogKiBUbyBnZXQgbW9yZSBzb2Z0d2FyZSBkZXRhaWxzIGFuZCB0aGUgZnVsbCBsaXN0IG9mIHBhcmFtZXRlcnMgcmVsYXRlZCB0byB0aGUNCiAqIHNhbWE1ZDMteHBsYWluZWQgYm9hcmQgY29uZmlndXJhdGlvbiwgcGxlYXNlIGhhdmUgYSBsb29rIGF0IHRoZSBzb3VyY2UgZmlsZToNCiAqIFxyZWYgYm9hcmQuaFxuDQogKg0KICogXHNlY3Rpb24gVXNhZ2UNCiAqDQogKiAgLSBUaGUgY29kZSBmb3IgYm9vdGluZyB0aGUgYm9hcmQgaXMgcHJvdmlkZWQgYnkgYm9hcmRfY3N0YXJ0dXBfeHh4LmMgYW5kDQogKiAgICBib2FyZF9sb3dsZXZlbC5jLg0KICogIC0gRm9yIHVzaW5nIGJvYXJkIFBJT3MsIGJvYXJkIGNoYXJhY3RlcmlzdGljcyAoY2xvY2ssIGV0Yy4pIGFuZCBleHRlcm5hbA0KICogICAgY29tcG9uZW50cywgc2VlIGJvYXJkLmguDQogKiAgLSBGb3IgbWFuaXB1bGF0aW5nIG1lbW9yaWVzLCBzZWUgYm9hcmRfbWVtb3JpZXMuaC4NCiAqDQogKiBUaGlzIGZpbGUgY2FuIGJlIHVzZWQgYXMgYSB0ZW1wbGF0ZSBhbmQgbW9kaWZpZWQgdG8gZml0IGEgY3VzdG9tIGJvYXJkLCB3aXRoDQogKiBzcGVjaWZpYyBQSU9zIHVzYWdlIG9yIG1lbW9yeSBjb25uZWN0aW9ucy4NCiAqLw0KDQovKioNCiAqICBcZmlsZSBib2FyZC5oDQogKg0KICogIERlZmluaXRpb24gb2Ygc2FtYTVkMy14cGxhaW5lZCANCiAqICBjaGFyYWN0ZXJpc3RpY3MsIHNhbWE1ZDN4LWRlcGVuZGFudCBQSU9zIGFuZCBleHRlcm5hbCBjb21wb25lbnRzIGludGVyZmFjaW5nLg0KICovDQoNCiNpZm5kZWYgX0JPQVJEXw0KI2RlZmluZSBfQk9BUkRfDQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICogICAgICAgIEhlYWRlcnMNCiAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQojaW5jbHVkZSAiY2hpcC5oIg0KDQovKioNCiAqIExpYmMgcG9ydGluZyBsYXllcnMNCiAqLw0KI2lmIGRlZmluZWQgICAoIF9fQ0NfQVJNICAgKSAvKiBLZWlsIHV2aXNpb24gNCAqLw0KIyAgICBpbmNsdWRlICJpbmNsdWRlL3JhbmQuaCINCiNlbGlmIGRlZmluZWQgKCBfX0lDQ0FSTV9fICkgLyogSUFSIEV3YXJtIDUuNDErICovDQojICAgIGluY2x1ZGUgImluY2x1ZGUvcmFuZC5oIg0KI2VsaWYgZGVmaW5lZCAoICBfX0dOVUNfXyAgKSAvKiBHQ0MgQ1MzIDIwMDlxMy02OC8yMDEwcTEtMTg4ICovDQojICAgIGluY2x1ZGUgImluY2x1ZGUvcmFuZC5oIg0KIyAgICBpbmNsdWRlICJpbmNsdWRlL3N5c2NhbGxzLmgiIC8qKiBSZWRIYXQgTmV3bGliIG1pbmltYWwgc3R1YiAqLw0KI2VuZGlmDQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICogICAgICAgIERlZmluaXRpb25zDQogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyoqDQogKiBccGFnZSBzYW1hNWQzeF9la19ib2FyZF9pbmZvICJzYW1hNWQzLXhwbGFpbmVkIC0gQm9hcmQgaW5mb3JtYXRpb25zIg0KICogVGhpcyBwYWdlIGxpc3RzIHNldmVyYWwgZGVmaW5pdGlvbiByZWxhdGVkIHRvIHRoZSBib2FyZCBkZXNjcmlwdGlvbi4NCiAqDQogKiBcc2VjdGlvbiBEZWZpbml0aW9ucw0KICogLSBccmVmIEJPQVJEX05BTUUNCiAqLw0KDQovKiogTmFtZSBvZiB0aGUgYm9hcmQgKi8NCiNkZWZpbmUgQk9BUkRfTkFNRSAic2FtYTVkMy14cGxhaW5lZCINCi8qKiBCb2FyZCBkZWZpbml0aW9uICovDQojZGVmaW5lIHNhbWE1ZDN4ZWsNCi8qKiBGYW1pbHkgZGVmaW5pdGlvbiAoYWxyZWFkeSBkZWZpbmVkKSAqLw0KI2lmICFkZWZpbmVkIHNhbWE1ZDN4DQojZGVmaW5lIHNhbWE1ZDN4DQojZW5kaWYNCi8qKiBDb3JlIGRlZmluaXRpb24gKi8NCiNkZWZpbmUgY29ydGV4YTUNCg0KI2RlZmluZSBCT0FSRF9YUExBSU5FRA0KLy8jZGVmaW5lIEJPQVJEX0VLDQovLyNkZWZpbmUgQk9BUkRfVkINCg0KLy8gI2RlZmluZSBCT0FSRF9SRVZfQV9FSw0KLy8gI2RlZmluZSBCT0FSRF9SRVZfQl9FSw0KLy8gI2RlZmluZSBCT0FSRF9SRVZfQ19FSw0KLy8gI2RlZmluZSBCT0FSRF9SRVZfRF9FSw0KDQovLyBMb3cgY29zdCBib2FyZA0KLy8gI2RlZmluZSBCT0FSRF9MQ0INCg0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi8qKg0KICogIFxwYWdlIHNhbWE1ZDN4X2VrX29wZnJlcSAic2FtYTVkMy14cGxhaW5lZCAtIE9wZXJhdGluZyBmcmVxdWVuY2llcyINCiAqICBUaGlzIHBhZ2UgbGlzdHMgc2V2ZXJhbCBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIGJvYXJkIG9wZXJhdGluZyBmcmVxdWVuY3kNCiAqICAod2hlbiB1c2luZyB0aGUgaW5pdGlhbGl6YXRpb24gZG9uZSBieSBib2FyZF9sb3dsZXZlbC5jKS4NCiAqDQogKiAgXHNlY3Rpb24gRGVmaW5pdGlvbnMNCiAqICAtIFxyZWYgQk9BUkRfTUFJTk9TQw0KICogIC0gXHJlZiBCT0FSRF9NQ0sNCiAqLw0KDQovKiogRnJlcXVlbmN5IG9mIHRoZSBib2FyZCBtYWluIG9zY2lsbGF0b3IgKi8NCiNkZWZpbmUgQk9BUkRfTUFJTk9TQyAgICAgICAgICAgMTIwMDAwMDANCg0KLyoqIE1hc3RlciBjbG9jayBmcmVxdWVuY3kgKHdoZW4gdXNpbmcgYm9hcmRfbG93bGV2ZWwuYykgKi8NCiNkZWZpbmUgQk9BUkRfTUNLICAgICAgICAgICAgICAgICgodW5zaWduZWQgbG9uZykoKEJPQVJEX01BSU5PU0MgLyAzIC8gMikgKiA2NiApKQ0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyoqDQogKiBccGFnZSBzYW1hNWQzeF9la19waW9kZWYgInNhbWE1ZDMteHBsYWluZWQgLSBQSU8gZGVmaW5pdGlvbnMiDQogKiBUaGlzIHBhZ2VzIGxpc3RzIGFsbCB0aGUgcGlvIGRlZmluaXRpb25zIGNvbnRhaW5lZCBpbiBib2FyZC5oLiBUaGUgY29uc3RhbnRzDQogKiBhcmUgbmFtZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uOiBQSU5fKiBmb3IgYSBjb25zdGFudCB3aGljaCBkZWZpbmVzDQogKiBhIHNpbmdsZSBQaW4gaW5zdGFuY2UgKGJ1dCBtYXkgaW5jbHVkZSBzZXZlcmFsIFBJT3Mgc2hhcmluZyB0aGUgc2FtZQ0KICogY29udHJvbGxlciksIGFuZCBQSU5TXyogZm9yIGEgbGlzdCBvZiBQaW4gaW5zdGFuY2VzLg0KICoNCiAqIERCR1UNCiAqIC0gXHJlZiBQSU5TX0RCR1UNCiAqDQogKiBVU0FSVDANCiAqIC0gXHJlZiBQSU5fVVNBUlQwX1RYRA0KICogLSBccmVmIFBJTl9VU0FSVDBfUlhEDQogKiAtIFxyZWYgUElOX1VTQVJUMF9SVFMNCiAqIC0gXHJlZiBQSU5fVVNBUlQwX0NUUw0KICogLSBccmVmIFBJTl9VU0FSVDBfU0NLDQogKiANCiAqIFRXSTANCiAqIC0gXHJlZiBQSU5fVFdJX1RXRDANCiAqIC0gXHJlZiBQSU5fVFdJX1RXQ0swDQogKiAtIFxyZWYgUElOU19UV0kwDQogKg0KICogU1BJMA0KICogLSBccmVmIFBJTl9TUEkwX01JU08NCiAqIC0gXHJlZiBQSU5fU1BJMF9NT1NJDQogKiAtIFxyZWYgUElOX1NQSTBfU1BDSw0KICogLSBccmVmIFBJTl9TUEkwX05QQ1MwDQogKiAtIFxyZWYgUElOU19TUEkwDQogKg0KICogU1NDDQogKiAtIFxyZWYgUElOX1NTQ19URA0KICogLSBccmVmIFBJTl9TU0NfVEsNCiAqIC0gXHJlZiBQSU5fU1NDX1RGDQogKiAtIFxyZWYgUElOX1NTQ19SRA0KICogLSBccmVmIFBJTl9TU0NfUksNCiAqIC0gXHJlZiBQSU5fU1NDX1JGDQogKiAtIFxyZWYgUElOU19TU0NfQ09ERUMNCiAqDQogKiBFTUFDMA0KICogLSBccmVmIFBJTl9FTUFDMF9UWENLDQogKiAtIFxyZWYgUElOX0VNQUMwX1RYMA0KICogLSBccmVmIFBJTl9FTUFDMF9UWDENCiAqIC0gXHJlZiBQSU5fRU1BQzBfVFgyDQogKiAtIFxyZWYgUElOX0VNQUMwX1RYMw0KICogLSBccmVmIFBJTl9FTUFDMF9UWEVODQogKiAtIFxyZWYgUElOX0VNQUMwX1JYRVINCiAqIC0gXHJlZiBQSU5fRU1BQzBfUlhEVg0KICogLSBccmVmIFBJTl9FTUFDMF9SWDANCiAqIC0gXHJlZiBQSU5fRU1BQzBfUlgxDQogKiAtIFxyZWYgUElOX0VNQUMwX1JYMg0KICogLSBccmVmIFBJTl9FTUFDMF9SWDMNCiAqIC0gXHJlZiBQSU5fRU1BQzBfTURDDQogKiAtIFxyZWYgUElOX0VNQUMwX01ESU8NCiAqIC0gXHJlZiBQSU5fRU1BQzBfSU5UUg0KICogLSBccmVmIFBJTlNfRU1BQzBfTUlJDQogKiAtIFxyZWYgUElOU19FTUFDMF9STUlJDQogKiBMQ0QNCiAqIC0gXHJlZiBQSU5TX0xDRA0KICoNCiAqIEFEQw0KICogLSBccmVmIFBJTl9BRFRSRw0KICoNCiAqIElTSQ0KICogLSBccmVmIFBJTl9JU0lfTUNLDQogKiAtIFxyZWYgUElOX0lTSV9WU1lOQw0KICogLSBccmVmIFBJTl9JU0lfSFNZTkMNCiAqIC0gXHJlZiBQSU5fSVNJX1BDSw0KICogLSBccmVmIFBJTl9JU0lfUElOU19EQVRBDQogKiAtIFxyZWYgUElOU19JU0kgDQogKi8NCg0KLyoqIExpc3Qgb2YgYWxsIERCR1UgcGluIGRlZmluaXRpb25zLiAqLw0KDQovKiogREJHVSBNb25pdG9yIElPIHBpbiAoZGV0ZWN0IGFueSBEQkdVIG9wZXJhdGlvbikuICovDQojZGVmaW5lIFBJTl9EQkdVX01PTiB7UElPX1BCMzBBX0RSWEQsIFBJT0IsIElEX1BJT0IsIFBJT19JTlBVVCwgUElPX0lUX1JJU0VfRURHRX0NCi8qKiBEQkdVIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5TX0RCR1UgICB7UElPX1BCMzBBX0RSWEQgfCBQSU9fUEIzMUFfRFRYRCwgUElPQiwgSURfUElPQiwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCg0KLyoqIExpc3Qgb2YgYWxsIFVTQVJUIHBpbiBkZWZpbml0aW9ucy4gKi8NCg0KLyoqIFVTQVJUMCBUWEQgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDBfVFhEICB7UElPX1BEMThBX1RYRDAsIFBJT0QsIElEX1BJT0QsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQwIFJYRCBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMF9SWEQgIHtQSU9fUEQxN0FfUlhEMCwgUElPRCwgSURfUElPRCwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCi8qKiBVU0FSVDAgUlRTIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5fVVNBUlQwX1JUUyAge1BJT19QRDE2QV9SVFMwLCBQSU9ELCBJRF9QSU9ELCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFVTQVJUMCBDVFMgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDBfQ1RTICB7UElPX1BEMTVBX0NUUzAsIFBJT0QsIElEX1BJT0QsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQwIFNDSyBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMF9TQ0sgIHtQSU9fUEQxNEFfU0NLMCwgUElPRCwgSURfUElPRCwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCg0KLyoqIFVTQVJUMSBUWEQgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDFfVFhEICB7UElPX1BCMjlBX1RYRDEsIFBJT0IsIElEX1BJT0IsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQxIFJYRCBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMV9SWEQgIHtQSU9fUEIyOEFfUlhEMSwgUElPQiwgSURfUElPQiwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCi8qKiBVU0FSVDEgUlRTIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5fVVNBUlQxX1JUUyAge1BJT19QQjI3QV9SVFMxLCBQSU9CLCBJRF9QSU9CLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFVTQVJUMSBDVFMgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDFfQ1RTICB7UElPX1BCMjZBX0NUUzEsIFBJT0IsIElEX1BJT0IsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQxIFNDSyBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMV9TQ0sgIHtQSU9fUEIyNUFfU0NLMSwgUElPQiwgSURfUElPQiwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCg0KLyoqIFVTQVJUMiBUWEQgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDJfVFhEICB7UElPX1BFMjZCX1RYRDIsIFBJT0UsIElEX1BJT0UsIFBJT19QRVJJUEhfQiwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQyIFJYRCBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMl9SWEQgIHtQSU9fUEUyNUJfUlhEMiwgUElPRSwgSURfUElPRSwgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCi8qKiBVU0FSVDIgUlRTIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5fVVNBUlQyX1JUUyAge1BJT19QRTI0Ql9SVFMyLCBQSU9FLCBJRF9QSU9FLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KLyoqIFVTQVJUMiBDVFMgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9VU0FSVDJfQ1RTICB7UElPX1BFMjNCX0NUUzIsIFBJT0UsIElEX1BJT0UsIFBJT19QRVJJUEhfQiwgUElPX0RFRkFVTFR9DQovKiogVVNBUlQyIFNDSyBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1VTQVJUMl9TQ0sgIHtQSU9fUEUyMEJfU0NLMiwgUElPRSwgSURfUElPRSwgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCg0KLyoqIFBJTiB1c2VkIGZvciByZXNldCB0aGUgc21hcnRjYXJkICovDQojZGVmaW5lIFBJTl9JU083ODE2X1JTVE1DICAgICAgIHsxIDw8IDIsIFBJT0EsIElEX1BJT0EsIFBJT19PVVRQVVRfMCwgUElPX0RFRkFVTFR9DQovKiogUGlucyB1c2VkIGZvciBjb25uZWN0IHRoZSBzbWFydGNhcmQgKi8NCiNkZWZpbmUgUElOU19JU083ODE2ICAgICAgICAgICAgUElOX1VTQVJUMV9UWEQsIFBJTl9VU0FSVDFfU0NLLCBQSU5fSVNPNzgxNl9SU1RNQw0KDQovKiogTGlzdCBvZiBhbGwgVFdJIHBpbiBkZWZpbml0aW9ucy4gKi8NCg0KLyoqIFRXSTAgZGF0YSBwaW4gKi8NCiNkZWZpbmUgUElOX1RXSV9UV0QwICAge1BJT19QQTMwQV9UV0QwLCBQSU9BLCBJRF9QSU9BLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFRXSTAgY2xvY2sgcGluICovDQojZGVmaW5lIFBJTl9UV0lfVFdDSzAgIHtQSU9fUEEzMUFfVFdDSzAsIFBJT0EsIElEX1BJT0EsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogVFdJMCBwaW5zICovDQojZGVmaW5lIFBJTlNfVFdJMCAgICAgIFBJTl9UV0lfVFdEMCwgUElOX1RXSV9UV0NLMA0KDQovKiogVFdJMSBkYXRhIHBpbiAqLw0KI2RlZmluZSBQSU5fVFdJX1RXRDEgICB7UElPX1BDMjZCX1RXRDEsIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQiwgUElPX0RFRkFVTFR9DQovKiogVFdJMSBjbG9jayBwaW4gKi8NCiNkZWZpbmUgUElOX1RXSV9UV0NLMSAge1BJT19QQzI3Ql9UV0NLMSwgUElPQywgSURfUElPQywgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCi8qKiBUV0kxIHBpbnMgKi8NCiNkZWZpbmUgUElOU19UV0kxICAgICAgUElOX1RXSV9UV0QxLCBQSU5fVFdJX1RXQ0sxDQoNCg0KLyoqIExpc3Qgb2YgYWxsIENBTiBwaW4gZGVpbml0aW9ucy4gKi8NCi8qKiBDQU4wIHBpbiBUWCAqLw0KI2RlZmluZSBQSU5fQ0FOMF9UWCAgICAge1BJT19QRDE1Q19DQU5UWDAsIFBJT0QsIElEX1BJT0QsIFBJT19QRVJJUEhfQywgUElPX0RFRkFVTFR9DQovKiogQ0FOMCBwaW4gUlggKi8NCiNkZWZpbmUgUElOX0NBTjBfUlggICAgIHtQSU9fUEQxNENfQ0FOUlgwLCBQSU9ELCBJRF9QSU9ELCBQSU9fUEVSSVBIX0MsIFBJT19ERUZBVUxUfQ0KLyoqIENBTjAgcGlucyAqLw0KI2RlZmluZSBQSU5TX0NBTjAgICAgICAgUElOX0NBTjBfVFgsIFBJTl9DQU4wX1JYDQovKiogQ0FOMSBwaW4gVFggKi8NCiNkZWZpbmUgUElOX0NBTjFfVFggICAgIHtQSU9fUEIxNUJfQ0FOVFgxLCBQSU9CLCBJRF9QSU9CLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KLyoqIENBTjEgcGluIFJYICovDQojZGVmaW5lIFBJTl9DQU4xX1JYICAgICB7UElPX1BCMTRCX0NBTlJYMSwgUElPQiwgSURfUElPQiwgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCi8qKiBDQU4wIHBpbnMgKi8NCiNkZWZpbmUgUElOU19DQU4xICAgICAgIFBJTl9DQU4xX1RYLCBQSU5fQ0FOMV9SWA0KDQoNCi8qKiBMaXN0IG9mIGFsbCBTUEkgcGluIGRlZmluaXRpb25zLiAqLw0KDQovKiogU1BJMCBNSVNPIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5fU1BJMF9NSVNPICAgICB7UElPX1BEMTBBX1NQSTBfTUlTTywgUElPRCwgSURfUElPRCwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCi8qKiBTUEkwIE1PU0kgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9TUEkwX01PU0kgICAgIHtQSU9fUEQxMUFfU1BJMF9NT1NJLCBQSU9ELCBJRF9QSU9ELCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFNQSTAgU1BDSyBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1NQSTBfU1BDSyAgICAge1BJT19QRDEyQV9TUEkwX1NQQ0ssIFBJT0QsIElEX1BJT0QsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogU1BJMCBjaGlwIHNlbGVjdCBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1NQSTBfTlBDUzAgICAge1BJT19QRDEzQV9TUEkwX05QQ1MwLCBQSU9ELCBJRF9QSU9ELCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIExpc3Qgb2YgU1BJMCBwaW4gZGVmaW5pdGlvbnMgKE1JU08sIE1PU0kgJiBTUENLKS4gKi8NCiNkZWZpbmUgUElOU19TUEkwICAgICAgICAgUElOX1NQSTBfTUlTTywgUElOX1NQSTBfTU9TSSwgUElOX1NQSTBfU1BDSw0KDQovKiogU1BJMSBNSVNPIHBpbiBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5fU1BJMV9NSVNPICAgICB7UElPX1BDMjJBX1NQSTFfTUlTTywgUElPQywgSURfUElPQywgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCi8qKiBTUEkxIE1PU0kgcGluIGRlZmluaXRpb24uICovDQojZGVmaW5lIFBJTl9TUEkxX01PU0kgICAgIHtQSU9fUEMyM0FfU1BJMV9NT1NJLCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFNQSTEgU1BDSyBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1NQSTFfU1BDSyAgICAge1BJT19QQzI0QV9TUEkxX1NQQ0ssIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogU1BJMSBjaGlwIHNlbGVjdCBwaW4gZGVmaW5pdGlvbi4gKi8NCiNkZWZpbmUgUElOX1NQSTFfTlBDUzAgICAge1BJT19QQzI1QV9TUEkxX05QQ1MwLCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIExpc3Qgb2YgU1BJMSBwaW4gZGVmaW5pdGlvbnMgKE1JU08sIE1PU0kgJiBTUENLKS4gKi8NCiNkZWZpbmUgUElOU19TUEkxICAgICAgICAgUElOX1NQSTFfTUlTTywgUElOX1NQSTFfTU9TSSwgUElOX1NQSTFfU1BDSw0KDQoNCi8qKiBMaXN0IG9mIGFsbCBTU0MgcGluIGRlZmluaXRpb25zLiAqLw0KDQovKiogU1NDIHBpbiBUcmFuc21pdHRlciBEYXRhIChURCkgKi8NCiNkZWZpbmUgUElOX1NTQ19URCAgICAgIHsweDEgPDwgMTgsIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogU1NDIHBpbiBUcmFuc21pdHRlciBDbG9jayAoVEspICovDQojZGVmaW5lIFBJTl9TU0NfVEsgICAgICB7MHgxIDw8IDE2LCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFNTQyBwaW4gVHJhbnNtaXR0ZXIgRnJhbWVTeW5jIChURikgKi8NCiNkZWZpbmUgUElOX1NTQ19URiAgICAgIHsweDEgPDwgMTcsIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogU1NDIHBpbiBSRCAqLw0KI2RlZmluZSBQSU5fU1NDX1JEICAgICAgezB4MSA8PCAyMSwgUElPQywgSURfUElPQywgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCi8qKiBTU0MgcGluIFJLICovDQojZGVmaW5lIFBJTl9TU0NfUksgICAgICB7MHgxIDw8IDE5LCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIFNTQyBwaW4gUkYgKi8NCiNkZWZpbmUgUElOX1NTQ19SRiAgICAgIHsweDEgPDwgMjAsIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQovKiogU1NDIHBpbnMgZGVmaW5pdGlvbiBmb3IgY29kZWMuICovDQoNCiNkZWZpbmUgUElOU19TU0NfQ09ERUMgIFBJTl9TU0NfVEQsIFBJTl9TU0NfVEssIFBJTl9TU0NfVEYsIFBJTl9TU0NfUkQsIFBJTl9TU0NfUkssIFBJTl9TU0NfUkYNCiNkZWZpbmUgUElOU19TU0NfSERNSSAgIFBJTl9TU0NfVEQsICBQSU5fU1NDX1RLLCBQSU5fU1NDX1RGDQoNCi8qKiBMQ0QgcGluIGxpc3QuICovDQojZGVmaW5lIFBJTlNfTENEX1BJT0EgICB7MHgzRjAwRkZGRiwgUElPQSwgSURfUElPQSwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0NCiNkZWZpbmUgUElOU19MQ0RfUElPQyAgIHsweDAwMDBGQzAwLCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0MsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5TX0xDRF9QSU9FICAgezB4MTgwMDAwMDAsIFBJT0UsIElEX1BJT0UsIFBJT19QRVJJUEhfQywgUElPX0RFRkFVTFR9DQoNCiNkZWZpbmUgUElOU19MQ0QgICAgICAgIFBJTlNfTENEX1BJT0EsIFBJTlNfTENEX1BJT0MgLFBJTlNfTENEX1BJT0UNCi8vI2RlZmluZSBQSU5TX0xDRCAgICAgICAgUElOU19MQ0RfUElPQQ0KLyoqIEFEQyBBRFRSRyBwaW4gKFBEMTkpLiAqLw0KI2RlZmluZSBQSU5fQURUUkcgICAgICAge1BJT19QRDE5QV9BRFRSRywgUElPRCwgSURfUElPRCwgUElPX1BFUklQSF9BLCBQSU9fUFVMTFVQfQ0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyoqDQogKiBccGFnZSBzYW1hNWQzeF9la191c2IgInNhbWE1ZDMteHBsYWluZWQgLSBVU0IgZGV2aWNlIg0KICoNCiAqIFxzZWN0aW9uIERlZmluaXRpb25zDQogKiAtIFxyZWYgQk9BUkRfVVNCX0JNQVRUUklCVVRFUw0KICogLSBccmVmIENISVBfVVNCX1VEUA0KICogLSBccmVmIENISVBfVVNCX1BVTExVUF9JTlRFUk5BTA0KICogLSBccmVmIENISVBfVVNCX05VTUVORFBPSU5UUw0KICogLSBccmVmIENISVBfVVNCX0VORFBPSU5UU19NQVhQQUNLRVRTSVpFDQogKiAtIFxyZWYgQ0hJUF9VU0JfRU5EUE9JTlRTX0JBTktTDQogKi8NCg0KLyoqIFVTQiBWQnVzIHBpbiAqLw0KI2RlZmluZSBQSU5fVVNCX1ZCVVMgICAgICB7UElPX1BFOSwgUElPRSwgSURfUElPRSwgUElPX0lOUFVULCBQSU9fUFVMTFVQfQ0KLyoqIFVTQiBPdmVyQ3VycmVudCBkZXRlY3Rpb24qLw0KI2RlZmluZSBQSU5fVVNCX09WQ1VSICAgICB7UElPX1BFNSwgUElPRSwgSURfUElPRSwgUElPX0lOUFVULCBQSU9fUFVMTFVQfQ0KDQovKiogVVNCIGF0dHJpYnV0ZXMgY29uZmlndXJhdGlvbiBkZXNjcmlwdG9yIChidXMgb3Igc2VsZiBwb3dlcmVkLCByZW1vdGUgd2FrZXVwKSAqLw0KI2RlZmluZSBCT0FSRF9VU0JfQk1BVFRSSUJVVEVTICAgVVNCQ29uZmlndXJhdGlvbkRlc2NyaXB0b3JfU0VMRlBPV0VSRURfTk9SV0FLRVVQDQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKioNCiAqIFxwYWdlIHNhbWE1ZDN4X2VrX21lbSAic2FtYTVkMy14cGxhaW5lZCAtIE1lbW9yaWVzIg0KICogVGhpcyBwYWdlIGxpc3RzIGRlZmluaXRpb25zIHJlbGF0ZWQgdG8gaW50ZXJuYWwgJiBleHRlcm5hbCBvbi1ib2FyZCBtZW1vcmllcy4NCiAqDQogKiBcc2VjdGlvbiBTZHJhbQ0KICoNCiAqIC0gXHJlZiBFQklfU0RSQU1fUElOUw0KICoNCiAqIFxzZWN0aW9uIE5hbmRmbGFzaA0KICogLSBccmVmIFBJTlNfTkFOREZMQVNIDQogKiAtIFxyZWYgQk9BUkRfTkZfSU9fUElOUw0KICogLSBccmVmIEJPQVJEX05GX0NFX1BJTg0KICogLSBccmVmIEJPQVJEX05GX1JCX1BJTg0KICovDQoNCi8qKiBOYW5kZmxhc2ggSU8gcGluIGRlZmluaXRpb24uKi8NCiNkZWZpbmUgQk9BUkRfTkZfSU9fUElOUyAgICAgICAgezAsIDAsIDAsIDAsIDB9DQojZGVmaW5lIEJPQVJEX05GX0NFX1BJTiAgICAgICAgIHswLCAwLCAwLCAwLCAwfQ0KLyoqIE5hbmRmbGFzaCBjb250cm9sbGVyIHBlcmlwaGVyYWwgcGlucyBkZWZpbml0aW9uLiAqLw0KI2RlZmluZSBQSU5TX05BTkRGTEFTSCAgICAgICAgICBCT0FSRF9ORl9JT19QSU5TDQoNCi8qKiBBZGRyZXNzIGZvciB0cmFuc2ZlcnJpbmcgY29tbWFuZCBieXRlcyB0byB0aGUgbmFuZGZsYXNoLCBDTEUgQTIyKi8NCiNkZWZpbmUgQk9BUkRfTkZfQ09NTUFORF9BRERSICAgMHg2MDQwMDAwMA0KLyoqIEFkZHJlc3MgZm9yIHRyYW5zZmVycmluZyBhZGRyZXNzIGJ5dGVzIHRvIHRoZSBuYW5kZmxhc2gsIEFMRSBBMjEqLw0KI2RlZmluZSBCT0FSRF9ORl9BRERSRVNTX0FERFIgICAweDYwMjAwMDAwIA0KLyoqIEFkZHJlc3MgZm9yIHRyYW5zZmVycmluZyBkYXRhIGJ5dGVzIHRvIHRoZSBuYW5kZmxhc2guKi8gDQojZGVmaW5lIEJPQVJEX05GX0RBVEFfQUREUiAgICAgIDB4NjAwMDAwMDANCg0KLyoqIEFkZHJlc3MgZm9yIHRyYW5zZmVycmluZyBjb21tYW5kIGJ5dGVzIHRvIHRoZSBub3JmbGFzaC4gKi8NCiNkZWZpbmUgQk9BUkRfTk9SRkxBU0hfQUREUiAgICAgMHgxMDAwMDAwMA0KLyoqIERlZmF1bHQgTk9SIGJ1cyBzaXplIGFmdGVyIHBvd2VyIHVwIHJlc2V0ICovDQojZGVmaW5lIEJPQVJEX05PUkZMQVNIX0RGVF9CVVNfU0laRSAxNg0KDQovKiogRGRyYW0gdHlwZSAqLw0KI2RlZmluZSBERFJBTV9NVDQ3SDY0TTE2SFIgICAgMA0KI2RlZmluZSBERFJBTV9NVDQ3SDEyOE0xNlJUICAgMQ0KI2RlZmluZSBCT0FSRF9ERFJBTV9UWVBFICAgICAgRERSQU1fTVQ0N0gxMjhNMTZSVA0KDQovKiogUEhZIGFkZHJlc3MgKi8NCiNkZWZpbmUgQk9BUkRfRU1BQ19QSFlfQUREUiAgICAgICAgIDENCi8qKiBQSFkgQ29tcG9uZW50ICovDQojZGVmaW5lIEJPQVJEX0VNQUNfUEhZX0NPTVBfS1NaODA1MVJOTCAxDQovKiogQm9hcmQgRU1BQyBwb3dlciBjb250cm9sIC0gQUxXQVlTIE9OICovDQojZGVmaW5lIEJPQVJEX0VNQUNfUE9XRVJfQUxXQVlTX09ODQovKiogQm9hcmQgRU1BQyB3b3JrIG1vZGUgLSBSTUlJL01JSSAoIDEgLyAwICkgKi8NCiNkZWZpbmUgQk9BUkRfRU1BQ19NT0RFX1JNSUkgICAgICAgIDENCg0KLyoqIFRoZSBQSU4gbGlzdCBvZiBQSU8gZm9yIEVNQUMgKi8NCiNkZWZpbmUgQk9BUkRfRU1BQ19QSU5TICAgICAgICAgIHsweDNGRiwgUElPQywgSURfUElPQywgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0sXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygxPDwxMiksUElPQiwgSURfUElPQiwgUElPX0lOUFVULCBQSU9fUFVMTFVQfQ0KDQovKiogVGhlIHJ1bnRpbWUgcGluIGNvbmZpZ3VyZSBsaXN0IGZvciBFTUFDICovDQojZGVmaW5lIEJPQVJEX0VNQUNfUlVOX1BJTlMgQk9BUkRfRU1BQ19QSU5TDQoNCi8qKiBQSFkgYWRkcmVzcyAqLw0KI2RlZmluZSBCT0FSRF9HTUFDX1BIWV9BRERSICAgICAgICAgNw0KI2RlZmluZSBCT0FSRF9HTUFDX1BIWV9DT01QX0tTWjkwMjFSTkwgMQ0KI2RlZmluZSBCT0FSRF9HTUFDX1BPV0VSX0FMV0FZU19PTg0KI2RlZmluZSBCT0FSRF9HTUFDX01PREVfUkdNSUkgICAgICAgIDENCg0KLyoqIFRoZSBQSU4gbGlzdCBvZiBQSU8gZm9yIEdNQUMgMHg3RkZGRiAweDczQkZGICovDQojZGVmaW5lIEJPQVJEX0dNQUNfUElOUyAgICAgICAgICB7MHg3M0JGRiwgUElPQiwgSURfUElPQiwgUElPX1BFUklQSF9BLCBQSU9fREVGQVVMVH0sXA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeygxPDwyNSksUElPQiwgSURfUElPQiwgUElPX0lOUFVULCAgICBQSU9fUFVMTFVQfQ0KDQojZGVmaW5lIEJPQVJEX0dNQUNfTU9ERV9QSU5TICAgICB7MHhGMCwgUElPQiwgSURfUElPQiwgUElPX09VVFBVVF8xLCBQSU9fREVGQVVMVH0NCg0KLyoqIFRoZSBydW50aW1lIHBpbiBjb25maWd1cmUgbGlzdCBmb3IgRU1BQyAqLw0KI2RlZmluZSBCT0FSRF9HTUFDX1JVTl9QSU5TIEJPQVJEX0dNQUNfUElOUw0KDQovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLyoqDQogKiBccGFnZSBzYW1hNWQzeF9la19leHRjb21wICJzYW1hNWQzLXhwbGFpbmVkIC0gRXh0ZXJuYWwgY29tcG9uZW50cyINCiAqIFRoaXMgcGFnZSBsaXN0cyB0aGUgZGVmaW5pdGlvbnMgcmVsYXRlZCB0byBleHRlcm5hbCBvbi1ib2FyZCBjb21wb25lbnRzDQogKiBsb2NhdGVkIGluIHRoZSBib2FyZC5oIGZpbGUgZm9yIHRoZSBzYW1hNWQzLXhwbGFpbmVkLg0KICoNCiAqIFxzZWN0aW9uIGJvYXJkX3NkbW1jIFNEL01NQw0KICogLSBccmVmIEJPQVJEX01DSTBfUElOUw0KICogLSBccmVmIEJPQVJEX01DSTBfUElOX0NEDQogKiAtIFxyZWYgQk9BUkRfTUNJMV9QSU5TDQogKiAtIFxyZWYgQk9BUkRfTUNJMV9QSU5fQ0QNCiAqIC0gXHJlZiBCT0FSRF9OVU1fTUNJDQogKg0KICogXHNlY3Rpb24gYm9hcmRfZW1hYyBFTUFDDQogKiAtIFxyZWYgQk9BUkRfRU1BQ19SU1RfUElOUw0KICogLSBccmVmIEJPQVJEX0VNQUNfUEhZX0FERFINCiAqIC0gXHJlZiBCT0FSRF9FTUFDX1JVTl9QSU5TDQogKiANCiAqIFxzZWN0aW9uIGJvYXJkX2xjZCBMQ0QgUHJvcGVydGllcw0KICogLSBccmVmIEJPQVJEX0xDRF9XSURUSA0KICogLSBccmVmIEJPQVJEX0xDRF9IRUlHSFQNCiAqIC0gXHJlZiBCT0FSRF9MQ0RfSUZXSURUSA0KICogLSBccmVmIEJPQVJEX0xDRF9GUkFNRVNJWkUNCiAqIC0gXHJlZiBCT0FSRF9MQ0RfVElNSU5HX1ZGUA0KICogLSBccmVmIEJPQVJEX0xDRF9USU1JTkdfVkJQDQogKiAtIFxyZWYgQk9BUkRfTENEX1RJTUlOR19WUFcNCiAqIC0gXHJlZiBCT0FSRF9MQ0RfVElNSU5HX0hGUA0KICogLSBccmVmIEJPQVJEX0xDRF9USU1JTkdfSEJQDQogKiAtIFxyZWYgQk9BUkRfTENEX1RJTUlOR19IUFcNCiAqIC0gXHJlZiBCT0FSRF9MQ0RfRlJBTUVSQVRFDQogKiAtIFxyZWYgQk9BUkRfTENEX1BJWEVMQ0xPQ0sNCiAqDQogKiBcc2VjdGlvbiBib2FyZF90cyBUb3VjaHNjcmVlbiBBREMgUHJvcGVydGllcw0KICogLSBccmVmIEJPQVJEX1RPVUNIU0NSRUVOX0FEQ0NMSw0KICogLSBccmVmIEJPQVJEX1RPVUNIU0NSRUVOX1NUQVJUVVANCiAqIC0gXHJlZiBCT0FSRF9UT1VDSFNDUkVFTl9TSFRJTQ0KICogLSBccmVmIEJPQVJEX1RPVUNIU0NSRUVOX0RFQk9VTkNFDQogKi8NCg0KDQovKiogTUNJMCBDYXJkIGRldGVjdCBwaW4gZGVmaW5pdGlvbi4gKFBFMCkgKi8NCiNkZWZpbmUgQk9BUkRfTUNJMF9QSU5fQ0QgICAgICAge1BJT19QRTAsIFBJT0UsIElEX1BJT0UsIFBJT19JTlBVVCwgUElPX1BVTExVUH0NCi8qKiBNQ0kwIGhhcyBubyBXcml0ZVByb3RlY3QgcGluICovDQovKiogTUNJMSBDYXJkIGRldGVjdCBwaW4gZGVmaW5pdGlvbi4gKFBFMSkgKi8NCiNkZWZpbmUgQk9BUkRfTUNJMV9QSU5fQ0QgICAgICAge1BJT19QRTEsIFBJT0UsIElEX1BJT0UsIFBJT19JTlBVVCwgUElPX1BVTExVUH0NCi8qKiBNQ0kxIFdyaXRlIFByb3RlY3QgcGluIEFsd2F5cyB0byBHTkQgKi8NCg0KLyoqIE1DSTAgcG93ZXIgY29udHJvbC4gKi8NCiNkZWZpbmUgQk9BUkRfTUNJMF9QSU5fUE9XRVIgICAge1BJT19QRTIsIFBJT0UsIElEX1BJT0UsIFBJT19PVVRQVVRfMCwgUElPX1BVTExVUH0NCg0KLyoqIFRvdGFsIG51bWJlciBvZiBNQ0kgaW50ZXJmYWNlICovDQojZGVmaW5lIEJPQVJEX05VTV9NQ0kgICAgICAgICAgIDINCi8qKiBNQ0kwIElPIHBpbnMgZGVmaW5pdGlvbi4gKFBEMC1QRDkpICovDQojZGVmaW5lIEJPQVJEX01DSTBfUElOUyAgICAgICAgezB4M0ZGLCBQSU9ELCBJRF9QSU9ELCBQSU9fUEVSSVBIX0EsIFBJT19ERUZBVUxUfQ0KLyoqIE1DSTEgSU8gcGlucyBkZWZpbml0aW9uLiAoUEEyLVBBNCwgUEExMS1QQTEzKSAqLw0KI2RlZmluZSBCT0FSRF9NQ0kxX1BJTlMgICAgICAgIHsweDFGODAwMDAsIFBJT0IsIElEX1BJT0IsIFBJT19QRVJJUEhfQSwgUElPX0RFRkFVTFR9DQoNCg0KLyoqIERpc3BsYXkgd2lkdGggaW4gcGl4ZWxzLiAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfV0lEVEggICAgICAgICAgICAgODAwDQovKiogRGlzcGxheSBoZWlnaHQgaW4gcGl4ZWxzLiAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfSEVJR0hUICAgICAgICAgICAgNDgwDQoNCi8qKiBEaXNwbGF5IGludGVyZmFjZSB3aWR0aCBpbiBiaXRzLiAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfSUZXSURUSCAgICAgICAgICAgMjQNCi8qKiBGcmFtZSBzaXplIGluIHdvcmRzIChoZWlnaHQgKiB3aWR0aCAqIGJwcCAvIDMyKSAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfRlJBTUVTSVpFICAgICAgICAgKEJPQVJEX0xDRF9XSURUSCAqIEJPQVJEX0xDRF9IRUlHSFQgKiBCT0FSRF9MQ0RfSUZXSURUSCAvIDMyKQ0KDQovKiogVmVydGljYWwgZnJvbnQgcG9yY2ggaW4gbnVtYmVyIG9mIGxpbmVzLiAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfVElNSU5HX1ZGUCAgICAgICAgMjINCi8qKiBWZXJ0aWNhbCBiYWNrIHBvcmNoIGluIG51bWJlciBvZiBsaW5lcy4gKi8NCiNkZWZpbmUgQk9BUkRfTENEX1RJTUlOR19WQlAgICAgICAgIDIxDQovKiogVmVydGljYWwgcHVsc2Ugd2lkdGggaW4gbnVtYmVyIG9mIGxpbmVzLiAqLw0KI2RlZmluZSBCT0FSRF9MQ0RfVElNSU5HX1ZQVyAgICAgICAgMg0KLyoqIEhvcml6b250YWwgZnJvbnQgcG9yY2ggaW4gTENERE9UQ0xLIGN5Y2xlcy4gKi8NCiNkZWZpbmUgQk9BUkRfTENEX1RJTUlOR19IRlAgICAgICAgIDY0DQovKiogSG9yaXpvbnRhbCBiYWNrIHBvcmNoIGluIExDRERPVENMSyBjeWNsZXMuICovDQojZGVmaW5lIEJPQVJEX0xDRF9USU1JTkdfSEJQICAgICAgICA2NA0KLyoqIEhvcml6b250YWwgcHVsc2Ugd2lkdGggaW4gTENERE9UQ0xLIGN5Y2xlcy4gKi8NCiNkZWZpbmUgQk9BUkRfTENEX1RJTUlOR19IUFcgICAgICAgIDEyOA0KDQovKiogRnJhbWUgcmF0ZSBpbiBIei4gKi8NCiNkZWZpbmUgQk9BUkRfTENEX0ZSQU1FUkFURSAgICAgICAgIDQwDQoNCi8qKiBQaXhlbCBjbG9jayByYXRlIGluIEh6IChIUyBwZXJpb2QgKiBWUyBwZXJpb2QgKiBCT0FSRF9MQ0RfRlJBTUVSQVRFKS4gKi8NCiNkZWZpbmUgQk9BUkRfTENEX1BJWEVMQ0xPQ0sgICAgICAgICgoQk9BUkRfTENEX1RJTUlOR19IUFcrQk9BUkRfTENEX1RJTUlOR19IQlArQk9BUkRfTENEX1dJRFRIK0JPQVJEX0xDRF9USU1JTkdfSEZQKVwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooQk9BUkRfTENEX1RJTUlOR19WUFcrQk9BUkRfTENEX1RJTUlOR19WQlArQk9BUkRfTENEX0hFSUdIVCtCT0FSRF9MQ0RfVElNSU5HX1ZGUClcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqQk9BUkRfTENEX0ZSQU1FUkFURSkNCg0KDQojZGVmaW5lIEJPQVJEX0lTSV9WU1lOQyAgICAge1BJT19QQTMwQ19JU0lfVlNZTkMsIFBJT0EsIElEX1BJT0EsIFBJT19QRVJJUEhfQywgUElPX0RFRkFVTFR9DQojZGVmaW5lIEJPQVJEX0lTSV9IU1lOQyAgICAge1BJT19QQTMxQ19JU0lfSFNZTkMsIFBJT0EsIElEX1BJT0EsIFBJT19QRVJJUEhfQywgUElPX0RFRkFVTFR9DQojZGVmaW5lIEJPQVJEX0lTSV9QQ0sgICAgICAge1BJT19QQzMwQ19JU0lfUENLLCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0MsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBCT0FSRF9JU0lfUElOU19EQVRBIHsweDAwRkYwMDAwLCBQSU9BLCBJRF9QSU9BLCBQSU9fUEVSSVBIX0MsIFBJT19ERUZBVUxUfQ0KDQojZGVmaW5lIFBJTl9JU0lfUlNUICAgICAgIHsxIDw8IDI0LCBQSU9FLCBJRF9QSU9FLCBQSU9fT1VUUFVUXzEsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5fSVNJX1JTVE4gICAgICB7MSA8PCAyOSwgUElPRSwgSURfUElPRSwgUElPX09VVFBVVF8xLCBQSU9fREVGQVVMVH0NCg0KI2RlZmluZSBQSU5TX0lTSSAgICAgICAgICBCT0FSRF9JU0lfVlNZTkMsIEJPQVJEX0lTSV9IU1lOQywgQk9BUkRfSVNJX1BDSyAsIEJPQVJEX0lTSV9QSU5TX0RBVEENCg0KLyoqIFRvdWNoc2NyZWVuIEFEQyBjbG9jayBmcmVxdWVuY3kgdG8gdXNlLiAqLw0KI2RlZmluZSBCT0FSRF9UT1VDSFNDUkVFTl9BRENDTEsgICAgMzAwMDAwIC8qIDhNSHogbWF4ICovDQovKiogVG91Y2hzY3JlZW4gQURDIHN0YXJ0dXAgdGltZSBpbiC1c2Vjb25kcy4gKi8NCiNkZWZpbmUgQk9BUkRfVE9VQ0hTQ1JFRU5fU1RBUlRVUCAgIDQwDQovKiogVG91Y2hzY3JlZW4gQURDIHRyYWNrIGFuZCBob2xkIHRpbWUgaW4gbmFub3NlY29uZHMuICovDQojZGVmaW5lIEJPQVJEX1RPVUNIU0NSRUVOX1NIVElNICAgICAyMDAwICAgIC8qIG1pbiAxtXMgYXQgOE1IeiAqLw0KLyoqIFRvdWNoc2NyZWVuIHBlbiBkZWJvdW5jZSB0aW1lIGluIG5hbm9zZWNvbmRzLiAqLw0KI2RlZmluZSBCT0FSRF9UT1VDSFNDUkVFTl9ERUJPVU5DRSAgMTAwMDAwMDANCg0KLyoqIEhETUkgcmVzZXQgcGlucy4gKi8NCiNkZWZpbmUgUElOX0hETUlfUkVTRVRfTCAge1BJT19QQzMxLCBQSU9DLCBJRF9QSU9DLCBQSU9fT1VUUFVUXzAsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5fSERNSV9SRVNFVF9IICB7UElPX1BDMzEsIFBJT0MsIElEX1BJT0MsIFBJT19PVVRQVVRfMSwgUElPX0RFRkFVTFR9DQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQovKioNCiAqIFxwYWdlIHNhbWE1ZDN4X2VrX2NoaXBkZWYgInNhbWE1ZDMteHBsYWluZWQgLSBJbmRpdmlkdWFsIGNoaXAgZGVmaW5pdGlvbiINCiAqIFRoaXMgcGFnZSBsaXN0cyB0aGUgZGVmaW5pdGlvbnMgcmVsYXRlZCB0byBkaWZmZXJlbnQgY2hpcCdzIGRlZmluaXRpb24NCiAqIGxvY2F0ZWQgaW4gdGhlIGJvYXJkLmggZmlsZSBmb3IgdGhlIHNhbWE1ZDMteHBsYWluZWQuDQogKg0KICogTEVEcw0KICogLSBccmVmIFBJTl9MRURfMA0KICogLSBccmVmIFBJTl9MRURfMQ0KICogLSBccmVmIFBJTl9MRURfMg0KICogLSBccmVmIFBJTlNfTEVEUw0KICoNCiAqIFB1c2ggYnV0dG9ucw0KICogLSBccmVmIFBJTl9QVVNIQlVUVE9OXzENCiAgKiAtIFxyZWYgUElOU19QVVNIQlVUVE9OUw0KIA0KICoNCiAqIFBDSzAgDQogKiAtIFxyZWYgUElOX1BDSzANCiAqDQogKiBQQ0sxIA0KICogLSBccmVmICBQSU5fUENLMQ0KICovDQoNCiNpZmRlZiBCT0FSRF9WQg0KI2RlZmluZSBMRURfQkxVRSAgICAgIDANCiNkZWZpbmUgTEVEX0dSRUVOICAgICAxDQojZGVmaW5lIExFRF9SRUQgICAgICAgMg0KI2RlZmluZSBMRURfWUVMTE9XICAgIDMNCg0KLyoqIExFRCAjMCBwaW4gZGVmaW5pdGlvbiAoQkxVRSkuICovDQojZGVmaW5lIFBJTl9MRURfMCAgIHsoMTw8MjMpLCBQSU9BLCBJRF9QSU9BLCBQSU9fT1VUUFVUXzEsIFBJT19ERUZBVUxUfQ0KLyoqIExFRCAjMSBwaW4gZGVmaW5pdGlvbiAoR1JFRU4pLiAqLw0KI2RlZmluZSBQSU5fTEVEXzEgICB7KDE8PDIxKSwgUElPQSwgSURfUElPQSwgUElPX09VVFBVVF8xLCBQSU9fREVGQVVMVH0NCi8qKiBMRUQgIzIgcGluIGRlZmluaXRpb24gKFJFRCkuICovDQojZGVmaW5lIFBJTl9MRURfMiAgIHsoMTw8MjIpLCBQSU9BLCBJRF9QSU9BLCBQSU9fT1VUUFVUXzEsIFBJT19ERUZBVUxUfQ0KLyoqIExFRCAjMyBwaW4gZGVmaW5pdGlvbiAoWUVMTE9XKS4gKi8NCiNkZWZpbmUgUElOX0xFRF8zICAgeygxPDw1KSwgUElPRCwgSURfUElPRCwgUElPX09VVFBVVF8xLCBQSU9fREVGQVVMVH0NCg0KLyoqIExpc3Qgb2YgYWxsIExFRHMgZGVmaW5pdGlvbnMuICovDQojZGVmaW5lIFBJTlNfTEVEUyAgIFBJTl9MRURfMCwgUElOX0xFRF8xLCBQSU5fTEVEXzIsIFBJTl9MRURfMw0KI2VuZGlmDQoNCiNpZiBkZWZpbmVkKEJPQVJEX1hQTEFJTkVEKQ0KI2RlZmluZSBMRURfQkxVRSAgICAgIDANCiNkZWZpbmUgTEVEX1JFRCAgICAgICAxDQoNCi8qKiBMRUQgIzAgcGluIGRlZmluaXRpb24gKExFRF9CTFVFKS4gKi8NCiNkZWZpbmUgUElOX0xFRF8wICAgeyhQSU9fUEUyMyksIFBJT0UsIElEX1BJT0UsIFBJT19PVVRQVVRfMSwgUElPX0RFRkFVTFR9DQovKiogTEVEICMxIHBpbiBkZWZpbml0aW9uIChMRURfUkVEKS4gKi8NCiNkZWZpbmUgUElOX0xFRF8xICAgeyhQSU9fUEUyNCksIFBJT0UsIElEX1BJT0UsIFBJT19PVVRQVVRfMCwgUElPX0RFRkFVTFR9DQoNCi8qKiBMaXN0IG9mIGFsbCBMRURzIGRlZmluaXRpb25zLiAqLw0KI2RlZmluZSBQSU5TX0xFRFMgICBQSU5fTEVEXzAsIFBJTl9MRURfMQ0KI2VuZGlmDQogDQovKiogUHVzaCBidXR0b24gIzAgZGVmaW5pdGlvbi4gQXR0cmlidXRlcyA9IHB1bGwtdXAgKyBkZWJvdW5jZSArIGludGVycnVwdCBvbiByaXNpbmcgZWRnZS4gKi8NCiNkZWZpbmUgUElOX1BVU0hCVVRUT05fMSAge1BJT19QRTI5LCBQSU9FLCBJRF9QSU9FLCBQSU9fSU5QVVQsIFBJT19QVUxMVVAgfCBQSU9fREVCT1VOQ0UgfCBQSU9fSVRfRkFMTF9FREdFfQ0KDQovKiogTGlzdCBvZiBhbGwgcHVzaCBidXR0b24gZGVmaW5pdGlvbnMuICovDQojZGVmaW5lIFBJTlNfUFVTSEJVVFRPTlMgICAgUElOX1BVU0hCVVRUT05fMQ0KDQovKiogUHVzaCBidXR0b24gIzEgaW5kZXguICovDQojZGVmaW5lIFBVU0hCVVRUT05fQlAxICAgMA0KLyoqIFB1c2ggYnV0dG9uICMyIGluZGV4LiAqLw0KI2RlZmluZSBQVVNIQlVUVE9OX0JQMiAgIDENCi8qKiBTaW11bGF0ZSBKb3lzdGljayBMZWZ0ICovDQojZGVmaW5lIEpPWVNUSUNLX0xFRlQgICAgMQ0KLyoqIFNpbXVsYXRlIEpveXN0aWNrIFJpZ2h0ICovDQojZGVmaW5lIEpPWVNUSUNLX1JJR0hUICAgMA0KDQojZGVmaW5lIE5PX1BVU0hCVVRUT04NCg0KLyoqIFBDSzAgKi8NCiNkZWZpbmUgUElOX1BDSzAgICAgICAgIHtQSU9fUEQzMEJfUENLMCwgUElPRCwgSURfUElPRCwgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCi8qKiBQQ0sxICovDQojZGVmaW5lIFBJTl9QQ0sxICAgICAgICB7UElPX1BEMzFCX1BDSzEsIFBJT0QsIElEX1BJT0QsIFBJT19QRVJJUEhfQiwgUElPX0RFRkFVTFR9DQovKiogUENLMiAqLw0KI2RlZmluZSBQSU5fUENLMiAgICAgICAge1BJT19QQzE1Ql9QQ0syLCBQSU9DLCBJRF9QSU9DLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KDQovKiogUFdNMCAqLw0KI2RlZmluZSBQSU5fUFdNMF9IICAgICB7UElPX1BBMjBCX1BXTUgwLCBQSU9BLCBJRF9QSU9BLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5fUFdNMF9MICAgICB7UElPX1BBMjFCX1BXTUwwLCBQSU9BLCBJRF9QSU9BLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5fUFdNMF9GSSAgICB7UElPX1BDMjhCX1BXTUZJMCwgUElPQywgSURfUElPQywgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCg0KDQojZGVmaW5lIFBJTl9QV00xX0ggICAgIHtQSU9fUEEyMkJfUFdNSDEsICBQSU9BLCBJRF9QSU9BLCBQSU9fUEVSSVBIX0IsIFBJT19ERUZBVUxUfQ0KI2RlZmluZSBQSU5fUFdNMV9MICAgICB7UElPX1BBMjNCX1BXTUwxLCAgUElPQSwgSURfUElPQSwgUElPX1BFUklQSF9CLCBQSU9fREVGQVVMVH0NCiNkZWZpbmUgUElOX1BXTTFfRkkgICAge1BJT19QQzMxQl9QV01GSTEsIFBJT0MsIElEX1BJT0MsIFBJT19QRVJJUEhfQiwgUElPX0RFRkFVTFR9DQoNCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICogICAgICAgIEhlYWRlcnMgZm9yIGJvYXJkDQogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KIA0KI2luY2x1ZGUgImluY2x1ZGUvYm9hcmRfbG93bGV2ZWwuaCINCiNpbmNsdWRlICJpbmNsdWRlL2JvYXJkX21lbW9yaWVzLmgiDQojaW5jbHVkZSAiaW5jbHVkZS9ibXAuaCINCiNpbmNsdWRlICJpbmNsdWRlL21paS5oIg0KI2luY2x1ZGUgImluY2x1ZGUvZ21paS5oIg0KI2luY2x1ZGUgImluY2x1ZGUvZW1hY2QuaCINCiNpbmNsdWRlICJpbmNsdWRlL21hY2IuaCINCiNpbmNsdWRlICJpbmNsdWRlL2dtYWNkLmgiDQojaW5jbHVkZSAiaW5jbHVkZS9nbWFjYi5oIg0KI2luY2x1ZGUgImluY2x1ZGUvY2xvY2suaCINCiNpbmNsdWRlICJpbmNsdWRlL2RiZ3VfY29uc29sZS5oIg0KI2luY2x1ZGUgImluY2x1ZGUvZGJnX3V0aWwuaCINCiNpbmNsdWRlICJpbmNsdWRlL2lzbzc4MTZfNC5oIg0KI2luY2x1ZGUgImluY2x1ZGUvZG1hZC5oIg0KI2luY2x1ZGUgImluY2x1ZGUvZG1hX2hhcmR3YXJlX2ludGVyZmFjZS5oIg0KI2luY2x1ZGUgImluY2x1ZGUvaGFtbWluZy5oIg0KDQojaW5jbHVkZSAiaW5jbHVkZS9sZWQuaCINCiNpbmNsdWRlICJpbmNsdWRlL21hdGguaCINCiNpbmNsdWRlICJpbmNsdWRlL21jaWQuaCINCiNpbmNsdWRlICJpbmNsdWRlL3RpbWV0aWNrLmgiDQojaW5jbHVkZSAiaW5jbHVkZS93YXYuaCINCiNpbmNsdWRlICJpbmNsdWRlL3dtODkwNC5oIg0KI2luY2x1ZGUgImluY2x1ZGUvcXQxMDcwLmgiDQoNCiNpbmNsdWRlICJpbmNsdWRlL2xjZGQuaCINCiNpbmNsdWRlICJpbmNsdWRlL2xjZF9kcmF3LmgiDQojaW5jbHVkZSAiaW5jbHVkZS9sY2RfZm9udDEweDE0LmgiDQojaW5jbHVkZSAiaW5jbHVkZS9sY2RfZm9udC5oIg0KI2luY2x1ZGUgImluY2x1ZGUvbGNkX2NvbG9yLmgiDQojaW5jbHVkZSAiaW5jbHVkZS90c2QuaCINCiNpbmNsdWRlICJpbmNsdWRlL3RzZF9jb20uaCINCiNpbmNsdWRlICJpbmNsdWRlL2NhbmQuaCINCiNpbmNsdWRlICJpbmNsdWRlL292LmgiDQojaW5jbHVkZSAiaW5jbHVkZS9vbW5pdmlzaW9uLmgiDQojaW5jbHVkZSAiaW5jbHVkZS9vdnl1di5oIg0KI2VuZGlmIC8qICNpZm5kZWYgX0JPQVJEXyAqLw0KDQo=