LyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCgojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwpAVE9QQApAQk9UVE9NQAoKLyogZW5kIG9mIGRlZmluaXRpb25zIGFkZGVkIGJ5IGNvbmZpZ3VyZSBvbi10aGUtZmx5ICovCgovKiBJZiB5b3UgaGF2ZSBvcGVuc3NsIDAuOS43IG9yIGFib3ZlLCB5b3UgbGlrZWx5IGhhdmUgQUVTIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX1VTRV9PUEVOU1NMCiNpZiAoZGVmaW5lZChORVRTTk1QX1VTRV9PUEVOU1NMKSAmJiBkZWZpbmVkKEhBVkVfT1BFTlNTTF9BRVNfSCkgJiYgZGVmaW5lZChIQVZFX0FFU19DRkIxMjhfRU5DUllQVCkpIHx8IGRlZmluZWQoTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPKQojZGVmaW5lIEhBVkVfQUVTIDEKI2VuZGlmCgovKiBkZWZpbmUgcmFuZG9tIGZ1bmN0aW9ucyAqLwoKI2lmbmRlZiBIQVZFX1JBTkRPTQojaWZkZWYgSEFWRV9MUkFORDQ4CiNkZWZpbmUgcmFuZG9tIGxyYW5kNDgKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kNDgocykKI2Vsc2UKI2lmZGVmIEhBVkVfUkFORAojZGVmaW5lIHJhbmRvbSByYW5kCiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZChzKQojZW5kaWYKI2VuZGlmCiNlbmRpZgoKLyogZGVmaW5lIHNpZ25hbCBpZiBETkUgKi8KCiNpZm5kZWYgSEFWRV9TSUdOQUwKI2lmZGVmIEhBVkVfU0lHU0VUCiNkZWZpbmUgc2lnbmFsKGEsYikgc2lnc2V0KGEsYikKI2VuZGlmCiNlbmRpZgoKI2lmZGVmIEhBVkVfRE1BTExPQ19ICiNkZWZpbmUgRE1BTExPQ19GVU5DX0NIRUNLCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMgKi8KCgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fQ0xFQU5fTkFNRVNQQUNFICoqKioqKioqKiAqLwovKiAKICogcHV0IGFsbCBuZXcgbmV0LXNubXAtc3BlY2lmaWMgZGVmaW5pdGlvbnMgaGVyZQogKgogKiBhbGwgZGVmaW5pdGlvbnMgTVVTVCBoYXZlIGEgTkVUU05NUF8gcHJlZml4CiAqCiAqLwoKLyogRGVmYXVsdCAoU05NUCkgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSB0b29scyB0byB1c2UgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OIDMKCi8qIGRvbid0IGNoYW5nZSB0aGVzZSB2YWx1ZXMhICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjEgICAgICAweEFBQUEgICAgICAgLyogcmVhZGFibGUgYnkgYW55b25lICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBTlkgICAweEEwMDAgICAgICAgLyogVjIgQW55IHR5cGUgKGluY2x1ZGVzIE5vQXV0aCkgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFVVEggIDB4ODAwMCAgICAgICAvKiBWMiBBdXRoZW50aWNhdGVkIHJlcXVlc3RzIG9ubHkgKi8KCi8qIGRlZmF1bHQgbGlzdCBvZiBtaWJzIHRvIGxvYWQgKi8KI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfTUlCUyAiSVAtTUlCOklGLU1JQjpUQ1AtTUlCOlVEUC1NSUI6U05NUHYyLU1JQjpSRkMxMjEzLU1JQiIKCi8qIGRlYnVnZ2luZyBzdHVmZiAqLwovKiBpZiBkZWZpbmVkLCB3ZSBvcHRpbWl6ZSB0aGUgY29kZSB0byBleGNsdWRlIGFsbCBkZWJ1Z2dpbmcgY2FsbHMuICovCiN1bmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwovKiBpZ25vcmUgdGhlIC1EIGZsYWcgYW5kIGFsd2F5cyBwcmludCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gKi8KI2RlZmluZSBORVRTTk1QX0FMV0FZU19ERUJVRyAwCgovKiByZXZlcnNlIGVuY29kaW5nIEJFUiBwYWNrZXRzIGlzIGJvdGggZmFzdGVyIGFuZCBtb3JlIGVmZmljaWVudCBpbiBzcGFjZS4gKi8KI2RlZmluZSBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HICAgICAgIDEKI2RlZmluZSBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIDEgLyogMSA9IHJldmVyc2UsIDAgPSBmb3J3YXJkcyAqLwoKLyogUEVSU0lTVEVOVF9ESVJFQ1RPUlk6IElmIGRlZmluZWQsIHRoZSBsaWJyYXJ5IGlzIGNhcGFiaWxlIG9mIHNhdmluZwogICBwZXJzaXNhbnQgaW5mb3JtYXRpb24gdG8gdGhpcyBkaXJlY3RvcnkgaW4gdGhlIGZvcm0gb2YgY29uZmlndXJhdGlvbgogICBsaW5lczogUEVSU0lTVEVOVF9ESVJFQ1RPUlkvTkFNRS5wZXJzaXN0ZW50LmNvbmYgKi8KI2RlZmluZSBORVRTTk1QX1BFUlNJU1RFTlRfRElSRUNUT1JZICIvdmFyL3NubXAiCgovKiBBR0VOVF9ESVJFQ1RPUllfTU9ERTogdGhlIG1vZGUgdGhlIGFnZW50cyBzaG91bGQgdXNlIHRvIGNyZWF0ZQogICBkaXJlY3RvcmllcyB3aXRoLiBTaW5jZSB0aGUgZGF0YSBzdG9yZWQgaGVyZSBpcyBwcm9iYWJseSBzZW5zaXRpdmUsIGl0CiAgIHByb2JhYmx5IHNob3VsZCBiZSByZWFkLW9ubHkgYnkgcm9vdC9hZG1pbmlzdHJhdG9yLiAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUgMDcwMAoKLyogTUFYX1BFUlNJU1RFTlRfQkFDS1VQUzoKICogICBUaGUgbWF4aW11bSBudW1iZXIgb2YgcGVyc2lzdGVudCBiYWNrdXBzIHRoZSBsaWJyYXJ5IHdpbGwgdHJ5IHRvCiAqICAgcmVhZCBmcm9tIHRoZSBwZXJzaXN0ZW50IGNhY2hlIGRpcmVjdG9yeS4gIElmIGFuIGFwcGxpY2F0aW9uIGZhaWxzIHRvCiAqICAgY2xvc2UgZG93biBzdWNjZXNzZnVsbHkgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIHRpbWVzLCBkYXRhIHdpbGwgYmUgbG9zdC4KICovCiNkZWZpbmUgTkVUU05NUF9NQVhfUEVSU0lTVEVOVF9CQUNLVVBTIDEwCgovKiBkZWZpbmUgdGhlIHN5c3RlbSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFIDxuZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBtYWNoaW5lIChjcHUpIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFIDxuZXQtc25tcC9tYWNoaW5lL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgVURQIGJ1ZmZlciBkZWZhdWx0cyB1bmRlZmluZWQgbWVhbnMgdXNlIHRoZSBPUyBidWZmZXJzCiAqIGJ5IGRlZmF1bHQgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKCi8qIG5ldC1zbm1wJ3MgbWFqb3IgcGF0aCBuYW1lcyAqLwojdW5kZWYgU05NUExJQlBBVEgKI3VuZGVmIFNOTVBTSEFSRVBBVEgKI3VuZGVmIFNOTVBDT05GUEFUSAojdW5kZWYgU05NUERMTU9EUEFUSAoKLyogTkVUU05NUF9MT0dGSUxFOiAgSWYgZGVmaW5lZCBpdCBjbG9zZXMgc3Rkb3V0L2Vyci9pbiBhbmQgb3BlbnMgdGhpcyBpbiAKICAgb3V0L2VycidzIHBsYWNlLiAgKHN0ZGluIGlzIGNsb3NlZCBzbyB0aGF0IHNoIHNjcmlwdHMgd29uJ3Qgd2FpdCBmb3IgaXQpICovCiN1bmRlZiBORVRTTk1QX0xPR0ZJTEUKCi8qIGRlZmF1bHQgc3lzdGVtIGNvbnRhY3QgKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKCi8qIHN5c3RlbSBsb2NhdGlvbiAqLwojdW5kZWYgTkVUU05NUF9TWVNfTE9DCgovKiBVc2UgbGlid3JhcCB0byBoYW5kbGUgYWxsb3cvZGVueSBob3N0cz8gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0xJQldSQVAKCi8qIE1pYi0yIHRyZWUgSW5mbyAqLwovKiBUaGVzZSBhcmUgdGhlIHN5c3RlbSBpbmZvcm1hdGlvbiB2YXJpYWJsZXMuICovCgojZGVmaW5lIE5FVFNOTVBfVkVSU19ERVNDICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KI2RlZmluZSBORVRTTk1QX1NZU19OQU1FICAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCgovKiBjb21tZW50IG91dCB0aGUgc2Vjb25kIGRlZmluZSB0byB0dXJuIG9mZiBmdW5jdGlvbmFsaXR5IGZvciBhbnkgb2YKICAgdGhlc2U6IChTZWUgUkVBRE1FIGZvciBkZXRhaWxzKSAqLwoKLyogICBwcm9jIFBST0NFU1NOQU1FIFtNQVhdIFtNSU5dICovCiNkZWZpbmUgTkVUU05NUF9QUk9DTUlCTlVNIDIKCi8qICAgZXhlYy9zaGVsbCBOQU1FIENPTU1BTkQgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfU0hFTExNSUJOVU0gOAoKLyogICBzd2FwIE1JTiAgICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9NRU1NSUJOVU0gNAoKLyogICBkaXNrIERJU0sgTUlOU0laRSAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9ESVNLTUlCTlVNIDkKCi8qICAgbG9hZCAxIDUgMTUgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTE9BREFWRU1JQk5VTSAxMAoKLyogd2hpY2ggdmVyc2lvbiBhcmUgeW91IHVzaW5nPyBUaGlzIG1pYmxvYyB3aWxsIHRlbGwgeW91ICovCiNkZWZpbmUgTkVUU05NUF9WRVJTSU9OTUlCTlVNIDEwMAoKLyogUmVwb3J0cyBlcnJvcnMgdGhlIGFnZW50IHJ1bnMgaW50byAqLwovKiAodHlwaWNhbGx5IGl0cyAiY2FuJ3QgZm9yaywgbm8gbWVtIiBwcm9ibGVtcykgKi8KI2RlZmluZSBORVRTTk1QX0VSUk9STUlCTlVNIDEwMQoKLyogVGhlIHN1YiBpZCBvZiBFWFRFTlNJQkxFTUlCIHJldHVybmVkIHRvIHF1ZXJpZXMgb2YKICAgLmlzby5vcmcuZG9kLmludGVybmV0Lm1nbXQubWliLTIuc3lzdGVtLnN5c09iamVjdElELjAgKi8KI2RlZmluZSBORVRTTk1QX0FHRU5USUQgMjUwCgovKiBUaGlzIElEIGlzIHJldHVybmVkIGFmdGVyIHRoZSBBR0VOVElEIGFib3ZlLiAgSUUsIHRoZSByZXN1bHRpbmcKICAgdmFsdWUgcmV0dXJuZWQgYnkgYSBxdWVyeSB0byBzeXNPYmplY3RJRCBpcwogICBFWFRFTlNJQkxFTUlCLkFHRU5USUQuPz8/LCB3aGVyZSA/Pz8gaXMgZGVmaW5lZCBiZWxvdyBieSBPU1RZUEUgKi8KCiNkZWZpbmUgTkVUU05NUF9IUFVYOUlEIDEKI2RlZmluZSBORVRTTk1QX1NVTk9TNElEIDIgCiNkZWZpbmUgTkVUU05NUF9TT0xBUklTSUQgMwojZGVmaW5lIE5FVFNOTVBfT1NGSUQgNAojZGVmaW5lIE5FVFNOTVBfVUxUUklYSUQgNQojZGVmaW5lIE5FVFNOTVBfSFBVWDEwSUQgNgojZGVmaW5lIE5FVFNOTVBfTkVUQlNEMUlEIDcKI2RlZmluZSBORVRTTk1QX0ZSRUVCU0RJRCA4CiNkZWZpbmUgTkVUU05NUF9JUklYSUQgOQojZGVmaW5lIE5FVFNOTVBfTElOVVhJRCAxMAojZGVmaW5lIE5FVFNOTVBfQlNESUlEIDExCiNkZWZpbmUgTkVUU05NUF9PUEVOQlNESUQgMTIKI2RlZmluZSBORVRTTk1QX1dJTjMySUQgMTMKI2RlZmluZSBORVRTTk1QX0hQVVgxMUlEIDE0CiNkZWZpbmUgTkVUU05NUF9BSVhJRCAxNQojZGVmaW5lIE5FVFNOTVBfTUFDT1NYSUQgMTYKI2RlZmluZSBORVRTTk1QX0RSQUdPTkZMWUlEIDE3CiNkZWZpbmUgTkVUU05NUF9VTktOT1dOSUQgMjU1CgojaWZkZWYgaHB1eDkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVg5SUQKI2VuZGlmCiNpZmRlZiBocHV4MTAKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMElECiNlbmRpZgojaWZkZWYgaHB1eDExCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTFJRAojZW5kaWYKI2lmZGVmIHN1bm9zNAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU1VOT1M0SUQKI2VuZGlmCiNpZmRlZiBzb2xhcmlzMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfU09MQVJJU0lECiNlbmRpZgojaWYgZGVmaW5lZChvc2YzKSB8fCBkZWZpbmVkKG9zZjQpIHx8IGRlZmluZWQob3NmNSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09TRklECiNlbmRpZgojaWZkZWYgdWx0cml4NAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVUxUUklYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG5ldGJzZDEpIHx8IGRlZmluZWQobmV0YnNkMikKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX05FVEJTRDFJRAojZW5kaWYKI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9GUkVFQlNESUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9EUkFHT05GTFlJRAojZW5kaWYKI2lmIGRlZmluZWQoaXJpeDYpIHx8IGRlZmluZWQoaXJpeDUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9JUklYSUQKI2VuZGlmCiNpZmRlZiBsaW51eAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTElOVVhJRAojZW5kaWYKI2lmIGRlZmluZWQoYnNkaTIpIHx8IGRlZmluZWQoYnNkaTMpIHx8IGRlZmluZWQoYnNkaTQpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9CU0RJSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9wZW5ic2QpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PUEVOQlNESUQKI2VuZGlmCiNpZmRlZiBXSU4zMgojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfV0lOMzJJRAojZW5kaWYKI2lmIGRlZmluZWQoYWl4MykgfHwgZGVmaW5lZChhaXg0KSB8fCBkZWZpbmVkKGFpeDUpIHx8IGRlZmluZWQoYWl4NikgfHwgZGVmaW5lZChhaXg3KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQUlYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGRhcndpbikgJiYgKGRhcndpbiA+PSA4KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTUFDT1NYSUQKI2VuZGlmCi8qIHVua25vd24gKi8KI2lmbmRlZiBORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVU5LTk9XTklECiNlbmRpZgoKLyogVGhlIGVudGVycHJpc2UgbnVtYmVyIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IHRoZSBJQU5BIGdyb3VwLiAgICovCi8qIE9wdGlvbmFsbHksIHRoaXMgbWF5IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgdHJlZSB5b3VyICAqLwovKiBjb21wYW55L29yZ2FuaXphdGlvbiBoYXMgYmVlbiBhbGxvY2F0ZWQuICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciB0aGUgTkVUX1NOTVAgTUlCIG1vZHVsZXMuICovCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX09JRAkJCTgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCQkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICTcKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igc3lzT2JqZWN0SUQuICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDMsMixORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuMy4yLk5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgJMTAKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igbm90aWZpY2F0aW9ucy4gKi8KI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICTgKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSB1Y2RhdmlzIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX09JRAkJMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19NSUIJCTEsMyw2LDEsNCwxLDIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQgkJMS4zLjYuMS40LjEuMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAk3CgovKiBob3cgbG9uZyB0byB3YWl0IChzZWNvbmRzKSBmb3IgZXJyb3IgcXVlcnlzIGJlZm9yZSByZXNldGluZyB0aGUgZXJyb3IgdHJhcC4qLwojZGVmaW5lIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RIIDYwMCAKCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggUFJPQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9QUk9DRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IEVYRUMgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZXhlYy9zY3JpcHQgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX0VYRUNGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIFNob3VsZCBleGVjIG91dHB1dCBDYXNoaW5nIGJlIHVzZWQgKHNwZWVkcyB1cCB0aGluZ3MgZ3JlYXRseSksIGFuZAogICBpZiBzbywgQWZ0ZXIgaG93IG1hbnkgc2Vjb25kcyBzaG91bGQgdGhlIGNhY2hlIHJlLW5ld2VkPyAgTm90ZToKICAgRG9uJ3QgZGVmaW5lIENBU0hFVElNRSB0byBkaXNhYmxlIGNhc2hpbmcgY29tcGxldGVseSAqLwoKI2RlZmluZSBORVRTTk1QX0VYQ0FDSEVUSU1FIDMwCiNkZWZpbmUgTkVUU05NUF9DQUNIRUZJTEUgIi5zbm1wLWV4ZWMtY2FjaGUiCiNkZWZpbmUgTkVUU05NUF9NQVhDQUNIRVNJWkUgKDE1MDAqODApICAgLyogcm91Z2hseSAxNTAwIGxpbmVzIG1heCAqLwoKLyogbWlzYyBkZWZhdWx0cyAqLwoKLyogZGVmYXVsdCBvZiAxMDAgbWVnIG1pbmltdW0gaWYgdGhlIG1pbmltdW0gc2l6ZSBpcyBub3Qgc3BlY2lmaWVkIGluCiAgIHRoZSBjb25maWcgZmlsZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRSAxMDAwMDAKCi8qIGRlZmF1bHQgbWF4aW11bSBsb2FkIGF2ZXJhZ2UgYmVmb3JlIGVycm9yICovCiNkZWZpbmUgTkVUU05NUF9ERUZNQVhMT0FEQVZFIDEyLjAKCi8qIG1heCB0aW1lcyB0byBsb29wIHJlYWRpbmcgb3V0cHV0IGZyb20gZXhlY3MuICovCi8qIEJlY2F1c2Ugb2Ygc2xlZXAoMSlzLCB0aGlzIHdpbGwgYWxzbyBiZSB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpIGZvciBleGVjCiAgIHRvIGZpbmlzaCAqLwojZGVmaW5lIE5FVFNOTVBfTUFYUkVBRENPVU5UIDEwMAoKLyogU2V0IGlmIHNubXBnZXRzIHNob3VsZCBibG9jayBhbmQgbmV2ZXIgdGltZW91dCAqLwovKiBUaGUgb3JpZ2luYWwgQ01VIGNvZGUgaGFkIHRoaXMgaGFyZGNvZGVkIGFzID0gMSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUEJMT0NLIDEKCi8qIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlc3RhcnRpbmcgdGhlIGFnZW50IGFmdGVyIGEgc25tcHNldCB0bwogICBFWFRFTlNJQkxFTUlCLlZFUlNJT05NSUJOVU0uVkVSUkVTVEFSVEFHRU5ULiAgVGhpcyBpcwogICBuZWNlc3NhcnkgdG8gZmluaXNoIHRoZSBzbm1wc2V0IHJlcGx5IGJlZm9yZSByZXN0YXJ0aW5nLiAqLwojZGVmaW5lIE5FVFNOTVBfUkVTVEFSVFNMRUVQIDUKCi8qIFVOZGVmaW5lIHRvIGFsbG93IHNwZWNpZnlpbmcgemVyby1sZW5ndGggY29tbXVuaXR5IHN0cmluZyAqLwovKiAjZGVmaW5lIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgMSAqLwoKLyogTnVtYmVyIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIHN0b3JlICovCiNkZWZpbmUgTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMJNQoKLyogaW50ZXJuYWwgZGVmaW5lICovCiNkZWZpbmUgTkVUU05NUF9MQVNURklFTEQgLTEKCi8qICBQbHVnZ2FibGUgdHJhbnNwb3J0cy4gICovCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSAiY2FsbGJhY2siIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVuaXggdHJhbnNwb3J0IGRvbWFpbgogICAgKGEuay5hLiAibG9jYWwgSVBDIikgaXMgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBQUw1IFBWQyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQWCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU0JBU0VfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBbGlhcyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FMSUFTX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgU1NIIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1NIX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgRFRMUy9VRFAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9EVExTVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVExTL1RDUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3Igc3RkaW4vb3V0IHRyYW5zcG9ydCBkb21haW4gaXMgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUHY0QmFzZSB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBWNEJBU0VfRE9NQUlOCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgVVNNIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIEtTTSAoa2VyYmVyb3MgYmFzZWQgc25tcCkgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfS1NNCgovKiBkZWZpbmUgdGhpcyBpZiB0aGUgbG9jYWwgc2VjdXJpdHkgbW9kdWxlIGlzIGF2YWlsYWJsZSAqLwojdW5kZWYgTkVUU05NUF9TRUNNT0RfTE9DQUxTTQoKLyogZGVmaW5lIGlmIGNvbmZpZ3VyZWQgYXMgYSAibWluaS1hZ2VudCIgKi8KI3VuZGVmIE5FVFNOTVBfTUlOSV9BR0VOVAoKLyogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIG5ldC1zbm1wIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9PSUQJCTgwNzIKI2RlZmluZSBORVRTTk1QX01JQgkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRE9UX01JQl9MRU5HVEgJNwoKLyogcGF0dGVybiBmb3IgdGVtcG9yYXJ5IGZpbGUgbmFtZXMgKi8KI2RlZmluZSBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOICIvdG1wL3NubXBkWFhYWFhYIgoKLyoKICogdGhpcyBtdXN0IGJlIGJlZm9yZSB0aGUgc3lzdGVtL21hY2hpbmUgaW5jbHVkZXMsIHRvIGFsbG93IHRoZW0gdG8KICogb3ZlcnJpZGUgYW5kIHR1cm4gb2ZmIGlubGluaW5nLiBUbyBkbyBzbywgdGhleSBzaG91bGQgZG8gdGhlCiAqIGZvbGxvd2luZzoKICoKICogICAgI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lOTElORQogKiAgICAjZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAwCiAqCiAqIEEgdXNlciBoYXZpbmcgcHJvYmxlbXMgd2l0aCB0aGVpciBjb21waWxlciBjYW4gYWxzbyB0dXJuIG9mZgogKiB0aGUgdXNlIG9mIGlubGluZSBieSBkZWZpbmluZyBORVRTTk1QX05PX0lOTElORSB2aWEgdGhlaXIgY2ZsYWdzOgogKgogKiAgICAtRE5FVFNOTVBfTk9fSU5MSU5FCiAqCiAqIEhlYWRlciBhbmQgc291cmNlIGZpbGVzIHNob3VsZCBvbmx5IHRlc3QgYWdhaW5zdCBORVRTTk1QX1VTRV9JTkxJTkU6CiAqCiAqICAgI2lmZGVmIE5FVFNOTVBfVVNFX0lOTElORQogKiAgIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqICAgI2VuZGlmCiAqCiAqIEZ1bmN0aW9ucyB3aGljaCBzaG91bGQgYmUgc3RhdGljLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IGlubGluZQogKiBpcyBhdmFpbGFibGUgb3IgZW5hYmxlZCBzaG91bGQgdXNlIHRoZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgbWFjcm8sCiAqIGxpa2Ugc286CiAqCiAqICAgIE5FVFNOTVBfU1RBVElDX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKgogKiBOT1QgbGlrZSB0aGlzOgogKgogKiAgICBzdGF0aWMgTkVUU05NUF9JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICovCiNpZmRlZiBORVRTTk1QX0JST0tFTl9JTkxJTkUKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAojZWxzZQojICAgZGVmaW5lIE5FVFNOTVBfRU5BQkxFX0lOTElORSAxCiNlbmRpZgoKI2luY2x1ZGUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNpbmNsdWRlIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUgJiYgIWRlZmluZWQoTkVUU05NUF9OT19JTkxJTkUpCiMgICBkZWZpbmUgTkVUU05NUF9VU0VfSU5MSU5FIDEKIyAgIGlmbmRlZiBORVRTTk1QX0lOTElORQojICAgICAgZGVmaW5lIE5FVFNOTVBfSU5MSU5FIGlubGluZQojICAgZW5kaWYKIyAgIGlmbmRlZiBORVRTTk1QX1NUQVRJQ19JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljIGlubGluZQojICAgZW5kaWYKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0lOTElORSAKIyAgIGRlZmluZSBORVRTTk1QX1NUQVRJQ19JTkxJTkUgc3RhdGljCiNlbmRpZgoKI2lmbmRlZiBORVRTTk1QX0lNUE9SVAojICBkZWZpbmUgTkVUU05NUF9JTVBPUlQgZXh0ZXJuCiNlbmRpZgoKLyogY29tbWVudCB0aGUgbmV4dCBsaW5lIGlmIHlvdSBhcmUgY29tcGlsaW5nIHdpdGggbGlic25tcC5oIAogICBhbmQgYXJlIG5vdCB1c2luZyB0aGUgVUMtRGF2aXMgU05NUCBsaWJyYXJ5LiAqLwojZGVmaW5lIFVDRF9TTk1QX0xJQlJBUlkgMQoKLyogYWRkIGluIHJlY2VudCBDTVUgbGlicmFyeSBleHRlbnNpb25zIChub3QgY29tcGxldGUpICovCiN1bmRlZiBDTVVfQ09NUEFUSUJMRQoKLyogZmluYWwgY29uY2x1c2lvbiBvbiBubGlzdCB1c2FnZSAqLwojaWYgZGVmaW5lZChIQVZFX05MSVNUKSAmJiBkZWZpbmVkKEhBVkVfU1RSVUNUX05MSVNUX05fVkFMVUUpICYmICFkZWZpbmVkKE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QpICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fS01FTV9VU0FHRSkKI2RlZmluZSBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9MRUdBQ1lfREVGSU5JVElPTlMgKioqKioqKioqLwovKiAKICogZXhpc3RpbmcgZGVmaW5pdGlvbnMgcHJpb3IgdG8gTmV0LVNOTVAgNS40CiAqCiAqIGRvIG5vdCBhZGQgYW55dGhpbmcgbmV3IGhlcmUKICoKICovCgojaWZuZGVmIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojIGRlZmluZSBERUZBVUxUX1NOTVBfVkVSU0lPTiBORVRTTk1QX0RFRkFVTFRfU05NUF9WRVJTSU9OCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYxCiMgZGVmaW5lIFNOTVBWMSBORVRTTk1QX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMkFOWQojIGRlZmluZSBTTk1QVjJBTlkgTkVUU05NUF9TTk1QVjJBTlkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBVVRICiMgZGVmaW5lIFNOTVBWMkFVVEggTkVUU05NUF9TTk1QVjJBVVRICiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJTCiMgZGVmaW5lIERFRkFVTFRfTUlCUyBORVRTTk1QX0RFRkFVTFRfTUlCUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCRElSUwojIGRlZmluZSBERUZBVUxUX01JQkRJUlMgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiMgZGVmaW5lIERFRkFVTFRfTUlCRklMRVMgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfV0lUSF9PUEFRVUVfU1BFQ0lBTF9UWVBFUwojIGRlZmluZSBPUEFRVUVfU1BFQ0lBTF9UWVBFUyBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKIyBkZWZpbmUgU0NBUElfQVVUSFBSSVYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiMgZGVmaW5lIFVTRV9JTlRFUk5BTF9NRDUgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQojIGRlZmluZSBVU0VfUEtDUyBORVRTTk1QX1VTRV9QS0NTMTEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojIGRlZmluZSBVU0VfT1BFTlNTTCBORVRTTk1QX1VTRV9PUEVOU1NMCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCiMgZGVmaW5lIFNOTVBfTk9fREVCVUdHSU5HIE5FVFNOTVBfTk9fREVCVUdHSU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiMgZGVmaW5lIFNOTVBfQUxXQVlTX0RFQlVHIE5FVFNOTVBfQUxXQVlTX0RFQlVHCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKIyBkZWZpbmUgVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORwojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KIyBkZWZpbmUgREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTgojZW5kaWYKCiNkZWZpbmUgUEVSU0lTVEVOVF9ESVJFQ1RPUlkgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWQojZGVmaW5lIFBFUlNJU1RFTlRfTUFTSyBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwojZGVmaW5lIEFHRU5UX0RJUkVDVE9SWV9NT0RFIE5FVFNOTVBfQUdFTlRfRElSRUNUT1JZX01PREUKI2RlZmluZSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUwojZGVmaW5lIFNZU1RFTV9JTkNMVURFX0ZJTEUgTkVUU05NUF9TWVNURU1fSU5DTFVERV9GSUxFCiNkZWZpbmUgTUFDSElORV9JTkNMVURFX0ZJTEUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRQoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfU0VORF9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojZW5kaWYKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKIyBkZWZpbmUgREVGQVVMVF9DTElFTlRfUkVDVl9CVUYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0xPR0ZJTEUKIyBkZWZpbmUgTE9HRklMRSBORVRTTk1QX0xPR0ZJTEUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TWVNfQ09OVEFDVAojIGRlZmluZSBTWVNfQ09OVEFDVCBORVRTTk1QX1NZU19DT05UQUNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0xPQwojIGRlZmluZSBTWVNfTE9DIE5FVFNOTVBfU1lTX0xPQwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCiMgZGVmaW5lIFVTRV9MSUJXUkFQIE5FVFNOTVBfVVNFX0xJQldSQVAKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFIAojIGRlZmluZSBTTk1QX1RFU1RJTkdfQ09ERSBORVRTTk1QX0VOQUJMRV9URVNUSU5HX0NPREUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojIGRlZmluZSBOT19ST09UX0FDQ0VTUyBORVRTTk1QX05PX1JPT1RfQUNDRVNTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojIGRlZmluZSBOT19LTUVNX1VTQUdFIE5FVFNOTVBfTk9fS01FTV9VU0FHRQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwojIGRlZmluZSBOT19EVU1NWV9WQUxVRVMgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKI2VuZGlmCgojZGVmaW5lIFZFUlNfREVTQyAgICAgTkVUU05NUF9WRVJTX0RFU0MKI2RlZmluZSBTWVNfTkFNRSAgICAgIE5FVFNOTVBfU1lTX05BTUUKCiNkZWZpbmUgUFJPQ01JQk5VTSAgICBORVRTTk1QX1BST0NNSUJOVU0KI2RlZmluZSBTSEVMTE1JQk5VTSAgIE5FVFNOTVBfU0hFTExNSUJOVU0KI2RlZmluZSBNRU1NSUJOVU0gICAgIE5FVFNOTVBfTUVNTUlCTlVNCiNkZWZpbmUgRElTS01JQk5VTSAgICBORVRTTk1QX0RJU0tNSUJOVU0KCiNkZWZpbmUgTE9BREFWRU1JQk5VTSBORVRTTk1QX0xPQURBVkVNSUJOVU0KI2RlZmluZSBWRVJTSU9OTUlCTlVNIE5FVFNOTVBfVkVSU0lPTk1JQk5VTQojZGVmaW5lIEVSUk9STUlCTlVNICAgTkVUU05NUF9FUlJPUk1JQk5VTQojZGVmaW5lIEFHRU5USUQgICAgICAgTkVUU05NUF9BR0VOVElECgojZGVmaW5lIEhQVVg5SUQgICAgICAgTkVUU05NUF9IUFVYOUlECiNkZWZpbmUgU1VOT1M0SUQgICAgICBORVRTTk1QX1NVTk9TNElECiNkZWZpbmUgU09MQVJJU0lEICAgICBORVRTTk1QX1NPTEFSSVNJRAojZGVmaW5lIE9TRklEICAgICAgICAgTkVUU05NUF9PU0ZJRAojZGVmaW5lIFVMVFJJWElEICAgICAgTkVUU05NUF9VTFRSSVhJRAojZGVmaW5lIEhQVVgxMElEICAgICAgTkVUU05NUF9IUFVYMTBJRAojZGVmaW5lIE5FVEJTRDFJRCAgICAgTkVUU05NUF9ORVRCU0QxSUQKI2RlZmluZSBGUkVFQlNESUQgICAgIE5FVFNOTVBfRlJFRUJTRElECiNkZWZpbmUgSVJJWElEICAgICAgICBORVRTTk1QX0lSSVhJRAojZGVmaW5lIExJTlVYSUQgICAgICAgTkVUU05NUF9MSU5VWElECiNkZWZpbmUgQlNESUlEICAgICAgICBORVRTTk1QX0JTRElJRAojZGVmaW5lIE9QRU5CU0RJRCAgICAgTkVUU05NUF9PUEVOQlNESUQKI2RlZmluZSBXSU4zMklEICAgICAgIE5FVFNOTVBfV0lOMzJJRAojZGVmaW5lIEhQVVgxMUlEICAgICAgTkVUU05NUF9IUFVYMTFJRAojZGVmaW5lIEFJWElEICAgICAgICAgTkVUU05NUF9BSVhJRAojZGVmaW5lIE1BQ09TWElEICAgICAgTkVUU05NUF9NQUNPU1hJRAojZGVmaW5lIFVOS05PV05JRCAgICAgTkVUU05NUF9VTktOT1dOSUQKCiNkZWZpbmUgRU5URVJQUklTRV9PSUQgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfT0lECiNkZWZpbmUgRU5URVJQUklTRV9NSUIgICAgICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCiNkZWZpbmUgRU5URVJQUklTRV9ET1RfTUlCICAgICAgICBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQl9MRU5HVEggTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIFNZU1RFTV9NSUIJCSAgTkVUU05NUF9TWVNURU1fTUlCCiNkZWZpbmUgU1lTVEVNX0RPVF9NSUIJCSAgTkVUU05NUF9TWVNURU1fRE9UX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCX0xFTkdUSAkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIE5PVElGSUNBVElPTl9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX01JQgkKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQgkgICAgTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQgojZGVmaW5lIE5PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSCBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBVQ0RBVklTX09JRAkJICBORVRTTk1QX1VDREFWSVNfT0lECiNkZWZpbmUgVUNEQVZJU19NSUIJCSAgTkVUU05NUF9VQ0RBVklTX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQgkJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQgojZGVmaW5lIFVDREFWSVNfRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgRVJST1JUSU1FTEVOR1RIIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RICgojaWZkZWYgTkVUU05NUF9QUk9DRklYQ01ECiMgZGVmaW5lIFBST0NGSVhDTUQgTkVUU05NUF9QUk9DRklYQ01ECiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRVhFQ0ZJWENNRAojIGRlZmluZSBFWEVDRklYQ01EIE5FVFNOTVBfRVhFQ0ZJWENNRAojZW5kaWYKCiNkZWZpbmUgRVhDQUNIRVRJTUUgIE5FVFNOTVBfRVhDQUNIRVRJTUUKI2RlZmluZSBDQUNIRUZJTEUgICAgTkVUU05NUF9DQUNIRUZJTEUKI2RlZmluZSBNQVhDQUNIRVNJWkUgTkVUU05NUF9NQVhDQUNIRVNJWkUKCiNkZWZpbmUgREVGRElTS01JTklNVU1TUEFDRSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UKI2RlZmluZSBERUZNQVhMT0FEQVZFIE5FVFNOTVBfREVGTUFYTE9BREFWRQojZGVmaW5lIE1BWFJFQURDT1VOVCBORVRTTk1QX01BWFJFQURDT1VOVAoKI2RlZmluZSBTTk1QQkxPQ0sgTkVUU05NUF9TTk1QQkxPQ0sKI2RlZmluZSBSRVNUQVJUU0xFRVAgTkVUU05NUF9SRVNUQVJUU0xFRVAKCiNkZWZpbmUgTlVNX0NPTU1VTklUSUVTCU5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCgojaWZkZWYgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojIGRlZmluZSBOT19aRVJPTEVOR1RIX0NPTU1VTklUWSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZCiNlbmRpZgoKI2RlZmluZSBMQVNURklFTEQgTkVUU05NUF9MQVNURklFTEQKCiNkZWZpbmUgQ09ORklHVVJFX09QVElPTlMgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX1VTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9VU00gTkVUU05NUF9TRUNNT0RfVVNNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQojIGRlZmluZSBTTk1QX1NFQ01PRF9LU00gTkVUU05NUF9TRUNNT0RfS1NNCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00gCiMgZGVmaW5lIFNOTVBfU0VDTU9EX0xPQ0FMU00gTkVUU05NUF9TRUNNT0RfTE9DQUxTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1JFRU5UUkFOVAojIGRlZmluZSBOU19SRUVOVFJBTlQgTkVUU05NUF9SRUVOVFJBTlQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9FTkFCTEVfSVBWNgojIGRlZmluZSBJTkVUNiBORVRTTk1QX0VOQUJMRV9JUFY2CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0xPQ0FMX1NNVVgKIyBkZWZpbmUgTE9DQUxfU01VWCBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKIyBkZWZpbmUgQUdFTlRYX0RPTV9TT0NLX09OTFkgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBUUkFQRF9ESVNBQkxFX0FHRU5UWAojIGRlZmluZSBTTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCiMgZGVmaW5lIE1JVF9ORVdfQ1JZUFRPIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCiMgZGVmaW5lIEhFSU1EQUwgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9TT0NLRVQKIyBkZWZpbmUgQUdFTlRYX1NPQ0tFVCBORVRTTk1QX0FHRU5UWF9TT0NLRVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiMgZGVmaW5lIERJU0FCTEVfTUlCX0xPQURJTkcgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjEgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwojIGRlZmluZSBESVNBQkxFX1NOTVBWMkMgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiMgZGVmaW5lIERJU0FCTEVfU0VUX1NVUFBPUlQgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKIyBkZWZpbmUgRElTQUJMRV9ERVMgTkVUU05NUF9ESVNBQkxFX0RFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CiMgZGVmaW5lIERJU0FCTEVfTUQ1IE5FVFNOTVBfRElTQUJMRV9NRDUKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ET05UX1VTRV9OTElTVAojIGRlZmluZSBET05UX1VTRV9OTElTVCBORVRTTk1QX0RPTlRfVVNFX05MSVNUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojIGRlZmluZSBDQU5fVVNFX05MSVNUIE5FVFNOTVBfQ0FOX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiMgZGVmaW5lIENBTl9VU0VfU1lTQ1RMIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMgKi8KCgojZW5kaWYgLyogTkVUX1NOTVBfQ09ORklHX0ggKi8K