LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICoKICogTk9URTogRE8gTk9UIEVESVQgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiBhcyB5b3VyIGNoYW5nZXMKICogICAgICAgd2lsbCBiZSBvdmVyd3JpdHRlbi4gVGhpcyBjb250ZW50IGlzIGluIGFjY29uZmlnLmggYW5kIG1lcmdlZAogKiAgICAgICBpbnRvIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gYnkgYXV0b2hlYWRlci4KICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCgojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKI2RlZmluZSBjb25maWdfYmVsb25nc19pbih4KQoKI2RlZmluZSBjb25maWdfZXhjbHVkZSh4KQoKI2RlZmluZSBjb25maWdfYXJjaF9yZXF1aXJlKHgseSkKCiNkZWZpbmUgY29uZmlnX3ZlcnNpb25fcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfYWRkX21pYih4KQoKI2RlZmluZSBjb25maWdfcGFyc2VfZG90X2NvbmYodyx4LHkseikKCiNkZWZpbmUgY29uZmlnX2Vycm9yKHgpCgojZGVmaW5lIGNvbmZpZ193YXJuaW5nKHgpCgovKiBEZWZpbmUgaWYgYnVpbGRpbmcgdW5pdmVyc2FsIChpbnRlcm5hbCBoZWxwZXIgbWFjcm8pICovCiN1bmRlZiBBQ19BUFBMRV9VTklWRVJTQUxfQlVJTEQKCi8qIERlZmluZSB0byBvbmUgb2YgYF9nZXRiNjcnLCBgR0VUQjY3JywgYGdldGI2NycgZm9yIENyYXktMiBhbmQgQ3JheS1ZTVAKICAgc3lzdGVtcy4gVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBmb3IgYGFsbG9jYS5jJyBzdXBwb3J0IG9uIHRob3NlIHN5c3RlbXMuCiAgICovCiN1bmRlZiBDUkFZX1NUQUNLU0VHX0VORAoKLyogRGVmaW5lIHRvIDEgaWYgdXNpbmcgYGFsbG9jYS5jJy4gKi8KI3VuZGVmIENfQUxMT0NBCgovKiBsb2NhdGlvbiBvZiBzd2FwIGRldmljZSAqLwojdW5kZWYgRE1FTV9MT0MKCi8qIGxvY2F0aW9uIG9mIG1vdW50IHRhYmxlIGxpc3QgKi8KI3VuZGVmIEVUQ19NTlRUQUIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgQUVTX2NmYjEyOF9lbmNyeXB0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgYWxsb2NhJywgYXMgYSBmdW5jdGlvbiBvciBtYWNyby4gKi8KI3VuZGVmIEhBVkVfQUxMT0NBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBpdCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuCiAgICovCiN1bmRlZiBIQVZFX0FMTE9DQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvaW5ldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVJQQV9JTkVUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3BhZ2UuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FTTV9QQUdFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fVFlQRVNfSAoKLyogRGVmaW5lIGlmIHVzaW5nIE1ZX0lOSVQoKSBjYXVzZXMgYSBsaW5rZXIgZXJyb3IgKi8KI3VuZGVmIEhBVkVfQlJPS0VOX0xJQk1ZU1FMQ0xJRU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNnZXRuZXh0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0dFVE5FWFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2hvd24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9DSE9XTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBjbG9zZWRpcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0NMT1NFRElSCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgQ291bnRlcjY0Jy4gKi8KI3VuZGVmIEhBVkVfQ09VTlRFUjY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgZGVjbGFyYXRpb24gb2YgYHNlbnNvcnNfZ2V0X2FsbF9zdWJmZWF0dXJlcycsCiAgIGFuZCB0byAwIGlmIHlvdSBkb24ndC4gKi8KI3VuZGVmIEhBVkVfREVDTF9TRU5TT1JTX0dFVF9BTExfU1VCRkVBVFVSRVMKCi8qIGRlZmluZSB0byAxIGlmIHlvdSBoYXZlIElSRV9DQUNIRSBkZWZpbmVkIGluIDxpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ERUZJTkVEX0lSRV9DQUNIRQoKLyogZGVmaW5lIGlmIHlvdSBoYXZlIGRldnN0YXRfZ2V0ZGV2cygpICovCiN1bmRlZiBIQVZFX0RFVlNUQVRfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLgogICAqLwojdW5kZWYgSEFWRV9ESVJFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbGZjbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRExGQ05fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbG9wZW4nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9ETE9QRU4KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfRE1BTExPQ19ICgovKiBTZXQgaWYgdGhlIGRwa2ctcXVlcnkgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfRFBLR19RVUVSWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxlcnIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0VSUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGV2YWxfcHYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9FVkFMX1BWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfY3JlYXRlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZQX01EX0NUWF9DUkVBVEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgRVZQX01EX0NUWF9kZXN0cm95JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZQX01EX0NUWF9ERVNUUk9ZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGV4ZWN2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVhFQ1YKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0ZDTlRMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZm9yaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0ZPUksKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZnN0YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0ZTVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FpX3N0cmVycm9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0FJX1NUUkVSUk9SCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGFkZHJpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUQUREUklORk8KCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBnZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfR0VUREVWUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRkdGFibGVzaXplJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VURFRBQkxFU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRmc3N0YXQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRGU1NUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0Z3JuYW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRHUk5BTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRob3N0YnluYW1lMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUyCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSE9TVE5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aXBub2RlYnluYW1lJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUSVBOT0RFQllOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGxvYWRhdmcnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRMT0FEQVZHCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRvcHQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRPUFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Z2V0b3B0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9HRVRPUFRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwYWdlc2l6ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBBR0VTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHBpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwd25hbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFBXTkFNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldHRpbWVvZmRheScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFRJTUVPRkRBWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXR2ZnNzdGF0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUVkZTU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxncnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0dSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGhhc21udG9wdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0hBU01OVE9QVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9mcmVlbmFtZWluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfRlJFRU5BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9pbmRleHRvbmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX0lOREVYVE9OQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVJTkRFWAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpZl9uYW1ldG9pbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvY29tbW9uLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JTkVUX0NPTU1PTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbmV0L21pYjIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfTUlCMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGluZXRfbnRvcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lORVRfTlRPUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBpbmV0X3B0b24nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9JTkVUX1BUT04KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5pdGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lOSVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX0lOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9JTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGluX2FkZHJfdCcuICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPQ1RMU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlwaGxwYXBpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JUEhMUEFQSV9ICgovKiBTZXQgaWYgSVBfUEtUSU5GTyBpcyB1c2FibGUgKi8KI3VuZGVmIEhBVkVfSVBfUEtUSU5GTwoKLyogU2V0IGlmIElQX1JFQ1ZEU1RBRERSIGlzIHVzYWJsZSAqLwojdW5kZWYgSEFWRV9JUF9SRUNWRFNUQUREUgoKLyoga2Vybi5jcF90aW1lcyBkaXNwbGF5cyBtdWx0aSBjcHUgbG9hZCBvbiBGcmVlQlNELi4uICovCiN1bmRlZiBIQVZFX0tFUk5fQ1BfVElNRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga2luZm9fZ2V0X2NwdXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LSU5GT19HRVRfQ1BVUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LTkxJU1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3JiNV9hdXRoX2Nvbl9nZXRzZW5kc3Via2V5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1JCNV9BVVRIX0NPTl9HRVRTRU5EU1VCS0VZCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGtzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9LU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRwcm9jMicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRQUk9DMgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm1fZ2V0cHJvY3MnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fR0VUUFJPQ1MKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHN3YXBpbmZvJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFNXQVBJTkZPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGt2bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfS1ZNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX29wZW5maWxlcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9PUEVORklMRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBPcGVuU1NMIGxpYnJhcnkgKC1sY3J5cHRvIG9yIC1sZWF5MzIpLiAqLwojdW5kZWYgSEFWRV9MSUJDUllQVE8KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZWxmJyBsaWJyYXJ5ICgtbGVsZikuICovCiN1bmRlZiBIQVZFX0xJQkVMRgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrc3RhdCcgbGlicmFyeSAoLWxrc3RhdCkuICovCiN1bmRlZiBIQVZFX0xJQktTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1sZCcgbGlicmFyeSAoLWxtbGQpLiAqLwojdW5kZWYgSEFWRV9MSUJNTEQKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBsaWJubSAqLwojdW5kZWYgSEFWRV9MSUJOTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBuc2wnIGxpYnJhcnkgKC1sbnNsKS4gKi8KI3VuZGVmIEhBVkVfTElCTlNMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnBlcmZzdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSUJQRVJGU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBrY3MxMScgbGlicmFyeSAoLWxwa2NzMTEpLiAqLwojdW5kZWYgSEFWRV9MSUJQS0NTMTEKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcnBtJyBsaWJyYXJ5ICgtbHJwbSkuICovCiN1bmRlZiBIQVZFX0xJQlJQTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBSU0FnbHVlJyBsaWJyYXJ5ICgtbFJTQWdsdWUpLiAqLwojdW5kZWYgSEFWRV9MSUJSU0FHTFVFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJzYXJlZicgbGlicmFyeSAoLWxyc2FyZWYpLiAqLwojdW5kZWYgSEFWRV9MSUJSU0FSRUYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NoMicgbGlicmFyeSAoLWxzc2gyKS4gKi8KI3VuZGVmIEhBVkVfTElCU1NIMgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzc2wnIGxpYnJhcnkgKC1sc3NsKS4gKi8KI3VuZGVmIEhBVkVfTElCU1NMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3VyIGBzc2wnIGxpYnJhcnkgc3VwcG9ydHMgRFRMUyAoLWxzc2wpLiAqLwojdW5kZWYgSEFWRV9MSUJTU0xfRFRMUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTUlUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2V0aHRvb2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX0VUSFRPT0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9oZHJlZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfSERSRUdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9uZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvcnRuZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9SVE5FVExJTktfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC90YXNrcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfVEFTS1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xPQ0FMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxvY2FsdGltZV9yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTE9DQUxUSU1FX1IKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBsb25nIGxvbmcgaW50Jy4gKi8KI3VuZGVmIEhBVkVfTE9OR19MT05HX0lOVAoKLyogU2V0IGlmIHRoZSBscHN0YXQgY29tbWFuZCBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIEhBVkVfTFBTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxyYW5kNDgnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MUkFORDQ4CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxzZWVrNjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9MU0VFSzY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hY2hpbmUvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3B0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9QVEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUxMT0NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01FTU9SWV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbWliMl9pcElmU3RhdHNFbnRyeV90Jy4gKi8KI3VuZGVmIEhBVkVfTUlCMl9JUElGU1RBVFNFTlRSWV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rc3RlbXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9NS1NURU1QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rdGltZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX01LVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtbnRlbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01OVEVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG10YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01UQUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuYnV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05CVVRJTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5kaXIuaD4gaGVhZGVyIGZpbGUsIGFuZCBpdCBkZWZpbmVzIGBESVInLiAqLwojdW5kZWYgSEFWRV9ORElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0ZGIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVERCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaW42X3BjYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSU42X1BDQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2luNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lONl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JUDZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvbmQ2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9ORDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X2ZzbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfVENQNl9USU1FUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWNtcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUNNUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2ljbXBfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lDTVBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pZl9ldGhlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JRl9FVEhFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3BjYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9QQ0JfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3N5c3RtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX1NZU1RNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVA2X0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaXBfaWNtcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9JQ01QX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSVBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BpcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BJUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdGNwX2ZzbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfRlNNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3AuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfdGltZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX1RJTUVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3VkcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVURQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGlweC9pcHguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElQWF9JUFhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRsaW5rL25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVExJTktfTkVUTElOS19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9hcnAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9BUlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfZGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVF9JRl9ETF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX21pYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX01JQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9yb3V0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX1JPVVRFX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBuZmRzX3QnLiAqLwojdW5kZWYgSEFWRV9ORkRTX1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbmxpc3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9OTElTVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBubGlzdDY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTkxJU1Q2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxubGlzdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkxJU1RfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG9mZjY0X3QnLiAqLwojdW5kZWYgSEFWRV9PRkY2NF9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG9wZW5kaXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9PUEVORElSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvYWVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0FFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0RFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZGguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfREhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2V2cC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9FVlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxvcGVuc3NsL2htYWMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfSE1BQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9zcmVsZGF0ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1NSRUxEQVRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGNpL3BjaS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUENJX1BDSV9ICgovKiBvbiBhaXgsIGlmIHlvdSBoYXZlIHBlcmZzdGF0ICovCiN1bmRlZiBIQVZFX1BFUkZTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgdGhlIHBlcmxfZXZhbF9wdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVl9MQwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBQZXJsX2V2YWxfcHYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9QRVJMX0VWQUxfUFZfVUMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGljbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUElDTF9ICgovKiBkZWZpbmUgaWYgeW91IGhhdmUgcGtnaW5mbyAqLwojdW5kZWYgSEFWRV9QS0dJTkZPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBrZ2luZm8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BLR0lORk9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwa2dsb2NzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QS0dMT0NTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcG9sbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BPTEwKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHJlYWQ2NCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BSRUFENjQKCi8qIFNldCBpZiAvZXRjL3ByaW50Y2FwIGV4aXN0cyAqLwojdW5kZWYgSEFWRV9QUklOVENBUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwdGhyZWFkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QVEhSRUFEX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHdkLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QV0RfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByYW5kJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkFORAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByYW5kb20nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SQU5ET00KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVhZGRpcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JFQURESVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVnY29tcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JFR0NPTVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cmVnZXguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1JFR0VYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcnBtR2V0UGF0aCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JQTUdFVFBBVEgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL2hlYWRlci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX0hFQURFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG1maWxldXRpbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTUZJTEVVVElMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL3JwbWxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTUxJQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHJwbS9ycG10cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUlBNX1JQTVRTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2VhcmNoLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRUFSQ0hfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZWN1cml0eS9jcnlwdG9raS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU0VDVVJJVFlfQ1JZUFRPS0lfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZWxlY3QnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRUxFQ1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2Vuc29ycy9zZW5zb3JzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRU5TT1JTX1NFTlNPUlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRlbnYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRFTlYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0Z2lkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUR0lECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEdST1VQUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRpdGltZXInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRJVElNRVIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUTE9DQUxFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldG1udGVudCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVE1OVEVOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRzaWQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRTSUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0dWlkJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUVUlECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNndHR5Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TR1RUWV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2FjdGlvbicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0FDVElPTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhbHJtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHQUxSTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdibG9jaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0JMT0NLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2hvbGQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdIT0xECgovKiBEZWZpbmUgaWYgU0lHSFVQIGlzIGRlZmluZWQgaW4gPHNpZ25hbC5oPi4gKi8KI3VuZGVmIEhBVkVfU0lHSFVQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ25hbCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR05BTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdwcm9jbWFzaycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR1BST0NNQVNLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ3NldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR1NFVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzbnByaW50ZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NOUFJJTlRGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNvY2tldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NPQ0tFVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNvY2tsZW5fdCcuICovCiN1bmRlZiBIQVZFX1NPQ0tMRU5fVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNzaXplX3QnLiAqLwojdW5kZWYgSEFWRV9TU0laRV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0YXRmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0dmZzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RBVFZGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NURElOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RETElCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RpbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJjYXNlc3RyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSQ0FTRVNUUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJkdXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJEVVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY2F0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENQWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJuY2FzZWNtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUk5DQVNFQ01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRva19yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9LX1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9MCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJUT1VMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWxsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTEwKCi8qIERlZmluZSB0byAxIGlmIGBhdF9uZXh0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBhcnBoZCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9BUlBIRF9BVF9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgd2Vha19rZXknIGlzIG1lbWJlciBvZiBgc3RydWN0IGRlc19rc19zdHJ1Y3QnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfREVTX0tTX1NUUlVDVF9XRUFLX0tFWQoKLyogRGVmaW5lIHRvIDEgaWYgYGRfdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgZGlyZW50Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RJUkVOVF9EX1RZUEUKCi8qIERlZmluZSB0byAxIGlmIGBzcGVlZF9oaScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgZXRodG9vbF9jbWQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfRVRIVE9PTF9DTURfU1BFRURfSEkKCi8qIERlZmluZSB0byAxIGlmIGBpZmFfbmV4dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZhZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGQUREUl9JRkFfTkVYVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2FkZHJoZWFkLnRxaF9maXJzdCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkhFQURfVFFIX0ZJUlNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmxpc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJMSVNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0JBVURSQVRFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUuaWZzX3ZhbHVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURV9JRlNfVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pYnl0ZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0lCWVRFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2ltY2FzdHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0lNQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pcWRyb3BzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JUURST1BTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX05TRUMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9sYXN0Y2hhbmdlLnR2X3NlYycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfTEFTVENIQU5HRV9UVl9TRUMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9tdHUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX01UVQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX25vcHJvdG8nIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX05PUFJPVE8KCi8qIERlZmluZSB0byAxIGlmIGBpZl9vYnl0ZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09CWVRFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX29tY2FzdHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09NQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9zcGVlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfU1BFRUQKCi8qIERlZmluZSB0byAxIGlmIGBpZl90eXBlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9UWVBFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfeG5hbWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1hOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2NhbnRmb3J3YXJkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URk9SV0FSRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50ZnJhZycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfQ0FOVEZSQUcKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZGVsaXZlcmVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19ERUxJVkVSRUQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ2Ryb3BwZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdEUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdtZW50ZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdNRU5URUQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ3RpbWVvdXQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdUSU1FT1VUCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2xvY2Fsb3V0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19MT0NBTE9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19ub3Byb3RvJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1BST1RPCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX25vcm91dGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX05PUk9VVEUKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfb2Ryb3BwZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09EUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29mcmFnbWVudHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09GUkFHTUVOVFMKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfcmVhc3NlbWJsZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX1JFQVNTRU1CTEVECgovKiBEZWZpbmUgdG8gMSBpZiBgbV9jbGZyZWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTEZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBtX2NsdXN0ZXJzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xVU1RFUlMKCi8qIERlZmluZSB0byAxIGlmIGBtX21idWZzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fTUJVRlMKCi8qIERlZmluZSB0byAxIGlmIGBuX3ZhbHVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBubGlzdDY0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX05MSVNUNjRfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IG5saXN0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX05MSVNUX05fVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBydF9kc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9EU1QKCi8qIERlZmluZSB0byAxIGlmIGBydF9oYXNoJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfSEFTSAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X25leHQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfcmVmY250JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfUkVGQ05UCgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfdW5pdCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VOSVQKCi8qIERlZmluZSB0byAxIGlmIGBydF91c2UnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9VU0UKCi8qIERlZmluZSB0byAxIGlmIGBzYV9zaWdhY3Rpb24nIGlzIG1lbWJlciBvZiBgc3RydWN0IHNpZ2FjdGlvbicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TSUdBQ1RJT05fU0FfU0lHQUNUSU9OCgovKiBEZWZpbmUgdG8gMSBpZiBgc2luNl9zY29wZV9pZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfaW42Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX0lONl9TSU42X1NDT1BFX0lECgovKiBEZWZpbmUgdG8gMSBpZiBgc2FfbGVuJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcicuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TQV9MRU4KCi8qIERlZmluZSB0byAxIGlmIGBzYV91bmlvbi5zYV9nZW5lcmljLnNhX2ZhbWlseTInIGlzIG1lbWJlciBvZiBgc3RydWN0CiAgIHNvY2thZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX1VOSU9OX1NBX0dFTkVSSUNfU0FfRkFNSUxZMgoKLyogRGVmaW5lIHRvIDEgaWYgYHNzX2ZhbWlseScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TT0NLQUREUl9TVE9SQUdFX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYF9fc3NfZmFtaWx5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NUT1JBR0VfX19TU19GQU1JTFkKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZhdmFpbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZBVkFJTAoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmZyZWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GRlJFRQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmlsZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GSUxFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmxhZ3MnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GTEFHUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZnJzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRlJTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9maWxlcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX0ZfRklMRVMKCi8qIERlZmluZSB0byAxIGlmIGBmX2Zyc2l6ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX0ZfRlJTSVpFCgovKiBEZWZpbmUgdG8gMSBpZiBgbW50X2RpcicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdHZmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFUVkZTX01OVF9ESVIKCi8qIERlZmluZSB0byAxIGlmIGBzd19uYmxrc2VuYWJsZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN3ZGV2dCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TV0RFVlRfU1dfTkJMS1NFTkFCTEVECgovKiBEZWZpbmUgdG8gMSBpZiBgdGNwX3Jjdm1lbWRyb3AnIGlzIG1lbWJlciBvZiBgc3RydWN0IHRjcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVENQU1RBVF9UQ1BfUkNWTUVNRFJPUAoKLyogRGVmaW5lIHRvIDEgaWYgYHR6X2RzdHRpbWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHRpbWV6b25lJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RJTUVaT05FX1RaX0RTVFRJTUUKCi8qIERlZmluZSB0byAxIGlmIGB0bV9nbXRvZmYnIGlzIG1lbWJlciBvZiBgc3RydWN0IHRtJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfZGlzY2FyZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfRElTQ0FSRAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfZnVsbHNvY2snIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0ZVTExTT0NLCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19ub3BvcnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0YmNhc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX05PUE9SVEJDQVNUCgovKiBEZWZpbmUgdG8gMSBpZiBgdWRwc19vcGFja2V0cycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdWRwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9VRFBTVEFUX1VEUFNfT1BBQ0tFVFMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzY29uZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NZU0NPTkYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzbG9nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNMT0dfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXN0ZW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TWVNURU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NkZWZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfQ0RFRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvY29uZi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0NPTkZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgKi8KI3VuZGVmIEhBVkVfU1lTX0RJUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kaXNraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ESVNLSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2xhYmVsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0xBQkVMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2RraW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ES0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RLU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9kbWFwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRE1BUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maWxpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJTElPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpeHBvaW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRklYUE9JTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9oYXNoaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfSEFTSElOR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9pb2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0lPQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2xvYWRhdmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19MT0FEQVZHX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21idWYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NQlVGX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21udGVudC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX01OVEVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbnR0YWIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NTlRUQUJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW91bnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NT1VOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9uZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgKi8KI3VuZGVmIEhBVkVfU1lTX05ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb2xsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUE9MTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wb29sLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUE9PTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wcm90b3N3Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUFJPVE9TV19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9wc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BTVEFUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3F1ZXVlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUVVFVUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU0VMRUNUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbWEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TRU1BX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tldHZhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVFZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLRVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N0YXRmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0dmZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVFZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdHJlYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVFJFQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3dhcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NXQVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY3RsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTQ1RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2dldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU0dFVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNtcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU01QX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c3RlbWNmZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU1RFTUNGR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXN0ZW1pbmZvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1lTVEVNSU5GT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90Y3BpcHN0YXRzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVENQSVBTVEFUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWVvdXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FT1VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3RpbWVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91aW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VSU9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdW4uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91c2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVVNFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91dHNuYW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVVRTTkFNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm1tYWMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTU1BQ19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bW1ldGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1NRVRFUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bXBhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1QQVJBTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bXN5c3RtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1TWVNUTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zub2RlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk5PREVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgPHN5cy93YWl0Lmg+IHRoYXQgaXMgUE9TSVguMSBjb21wYXRpYmxlLiAqLwojdW5kZWYgSEFWRV9TWVNfV0FJVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHRjZ2V0YXR0cicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1RDR0VUQVRUUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0aW1lcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1RJTUVTCgovKiBEZWZpbmUgaWYgYSB0aW1lem9uZSB2YXJpYWJsZSBpcyBkZWNsYXJlZCBpbiA8c3lzL3RpbWUuaD4gKi8KI3VuZGVmIEhBVkVfVElNRVpPTkVfVkFSSUFCTEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2Zmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZGU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9kaW5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfRElOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9pbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19JTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy91ZnMvcXVvdGEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfUVVPVEFfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRNQVhfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRwdHJfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1bmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVU5JU1REX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1bnNpZ25lZCBsb25nIGxvbmcgaW50Jy4gKi8KI3VuZGVmIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1c2xlZXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9VU0xFRVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRtcHguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VUTVBYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRTTkFNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVk1fVVZNX0VYVEVSTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS9zd2FwX3BhZ2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9TV0FQX1BBR0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9FWFRFUk5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB2c25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9WU05QUklOVEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luZG93cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lORE9XU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2syLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5TT0NLMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2suaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTlNPQ0tfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV1MyVENQSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx4dGkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1hUSV9ICgovKiBsb2NhdGlvbiBvZiBVTklYIGtlcm5lbCAqLwojdW5kZWYgS0VSTkVMX0xPQwoKLyogUGF0aCB0byB0aGUgbHBzdGF0IGNvbW1hbmQgKi8KI3VuZGVmIExQU1RBVF9QQVRICgovKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgogICAqLwojdW5kZWYgTFRfT0JKRElSCgovKiBkZWZpbmUgaWYgYWdlbnR4IHRyYW5zcG9ydCBpcyB0byB1c2UgZG9tYWluIHNvY2tldHMgb25seSAqLwojdW5kZWYgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQoKLyogVW5peCBkb21haW4gc29ja2V0IGZvciBBZ2VudFggbWFzdGVyLXN1YmFnZW50IGNvbW11bmljYXRpb24gKi8KI3VuZGVmIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAoKLyogRGVmaW5lIGlmIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFyZSB1bnN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCgovKiAiRGVmaW5lIGlmIGNyeXRvZ3JhcGh5IHN1cHBvcnQgaXMgcG9zc2libGUiICovCiN1bmRlZiBORVRTTk1QX0NBTl9ET19DUllQVE8KCi8qIHN5c2N0bCB3b3JrcyB0byBnZXQgYm9vdHRpbWUsIGV0Yy4uLiAqLwojdW5kZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKLyogY29uZmlndXJlIG9wdGlvbnMgc3BlY2lmaWVkICovCiN1bmRlZiBORVRTTk1QX0NPTkZJR1VSRV9PUFRJT05TCgovKiBkZWZhdWx0IGxvY2F0aW9uIHRvIGxvb2sgZm9yIG1pYnMgdG8gbG9hZCB1c2luZyB0aGUgYWJvdmUgdG9rZW5zIGFuZC9vcgogICB0aG9zZSBpbiB0aGUgTUlCUyBlbnZyaW9ubWVudCB2YXJpYWJsZSAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKCi8qIGRlZmF1bHQgbWliIGZpbGVzIHRvIGxvYWQsIHNwZWNpZmllZCBieSBwYXRoLiAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX01JQkZJTEVTCgovKiBEZWZpbmUgaWYgREVTIGVuY3J5cHRpb24gc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9ERVMKCi8qIERlZmluZSBpZiBNRDUgYXV0aGVudGljYXRpb24gc2hvdWxkIG5vdCBiZSBzdXBwb3J0ZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9NRDUKCi8qIERlZmluZSBpZiBtaWIgbG9hZGluZyBhbmQgcGFyc2luZyBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwoKLyogRGVmaW5lIGlmIFNOTVAgU0VUIHN1cHBvcnQgc2hvdWxkIGJlIGRpc2FibGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU0VUX1NVUFBPUlQKCi8qIERlZmluZSBpZiBTTk1QdjEgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCgovKiBEZWZpbmUgaWYgU05NUHYyYyBjb2RlIHNob3VsZCBub3QgYmUgaW5jbHVkZWQgKi8KI3VuZGVmIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCgovKiBEZWZpbmUgaWYgeW91IGFyZSBlbWJlZGRpbmcgcGVybCBpbiB0aGUgbWFpbiBhZ2VudC4gKi8KI3VuZGVmIE5FVFNOTVBfRU1CRURERURfUEVSTAoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBJUHY2IHN1cHBvcnQgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byByZXN0cmljdCBTTVVYIGNvbm5lY3Rpb25zIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0ICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCgovKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gYnVpbGQgTUZEIG1vZHVsZSByZXdyaXRlcyAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfTUZEX1JFV1JJVEVTCgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gY29tcGlsZSBzdXBwb3J0IGZvciBib3RoIGF1dGhlbnRpY2F0aW9uIGFuZCBwcml2YWN5CiAgIHN1cHBvcnQuICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9TQ0FQSV9BVVRIUFJJVgoKLyogdGVzdGluZyBjb2RlIHNlY3Rpb25zLiAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCgovKiBTaG91bGQgZXZhbHVhdGUgdG8gdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gaWYgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9GVU5DVElPTgoKLyogaWZuZXQgbmVlZHMgdG8gaGF2ZSBfS0VSTkVMIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMCgovKiBpZm5ldCBuZWVkcyB0byBoYXZlIF9LRVJORUxfU1RSVUNUVVJFUyBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTF9TVFJVQ1RVUkVTCgovKiBEZWZpbmUgdG8gc3VwcHJlc3MgaW5jbHVzaW9uIG9mIGRlcHJlY2F0ZWQgZnVuY3Rpb25zICovCiN1bmRlZiBORVRTTk1QX05PX0RFUFJFQ0FURURfRlVOQ1RJT05TCgovKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgYWdlbnQgdG8gcmVwb3J0IG9uIHZhcmlhYmxlcyBpdCBkb2Vzbid0IGhhdmUgZGF0YSBmb3IKICAgKi8KI3VuZGVmIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCgovKiBJZiB3ZSBkb24ndCB3YW50IHRvIHVzZSBrbWVtLiAqLwojdW5kZWYgTkVUU05NUF9OT19LTUVNX1VTQUdFCgovKiBJZiB5b3UgZG9uJ3QgaGF2ZSByb290IGFjY2VzcyBkb24ndCBleGl0IHVwb24ga21lbSBlcnJvcnMgKi8KI3VuZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKCi8qIHVtYXNrIHBlcm1pc3Npb25zIHRvIHNldCB1cCBwZXJzaXN0ZW50IGZpbGVzIHdpdGggKi8KI3VuZGVmIE5FVFNOTVBfUEVSU0lTVEVOVF9NQVNLCgovKiBTaXplIHByZWZpeCB0byB1c2UgdG8gcHJpbnRmIGEgdWludDMyX3QgKi8KI3VuZGVmIE5FVFNOTVBfUFJJMzIKCi8qIFNpemUgcHJlZml4IHRvIHVzZSB0byBwcmludGYgYSBzaXplX3Qgb3Igc3NpemVfdCAqLwojdW5kZWYgTkVUU05NUF9QUkl6CgovKiBEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byBidWlsZCB3aXRoIHJlZW50cmFudC90aHJlYWRlZCBjb2RlIChpbmNvbXBsZXRlKS4KICAgKi8KI3VuZGVmIE5FVFNOTVBfUkVFTlRSQU5UCgovKiBkZWZpbmUgaWYgeW91IGRvIG5vdCB3YW50IHNubXB0cmFwZCB0byByZWdpc3RlciBhcyBhbiBBZ2VudFggc3ViYWdlbnQgKi8KI3VuZGVmIE5FVFNOTVBfU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgovKiBQYXR0ZXJuIG9mIHRlbXBvcmFyeSBmaWxlcyAqLwojdW5kZWYgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTgoKLyogIkRlZmluZSBpZiBpbnRlcm5hbCBjcnlwdG9ncmFwaHkgY29kZSBzaG91bGQgYmUgdXNlZCIgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTwoKLyogZGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIE1ENSBjb2RlIC4uLiAqLwojdW5kZWYgTkVUU05NUF9VU0VfSU5URVJOQUxfTUQ1CgovKiBEZWZpbmUgdGhpcyBpZiB5b3UncmUgdXNpbmcgSGVpbWRhbCBLZXJiZXJvcyAqLwojdW5kZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAoKLyogRGVmaW5lIHRoaXMgaWYgd2UncmUgdXNpbmcgdGhlIG5ldyBNSVQgY3J5cHRvIEFQSSAqLwojdW5kZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfTUlUCgovKiBkZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgbXlzcWwgY29kZSBmb3Igc25tcHRyYXBkIC4uLiAqLwojdW5kZWYgTkVUU05NUF9VU0VfTVlTUUwKCi8qIERlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBjb2RlUzExIGxpYnJhcnkgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9QS0NTMTEKCi8qIERlZmluZSB0aGlzIGlmIHlvdSBoYXZlIGxtX3NlbnNvcnMgdjMgb3IgbGF0ZXIgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMKCi8qIFNob3VsZCB3ZSBjb21waWxlIHRvIHVzZSBzcGVjaWFsIG9wYXF1ZSB0eXBlczogZmxvYXQsIGRvdWJsZSwgY291bnRlcjY0LAogICBpNjQsIHVpNjQsIHVuaW9uPyAqLwojdW5kZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCgovKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KI2lmbmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9OQU1FCiN1bmRlZiBQQUNLQUdFX05BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9TVFJJTkcKI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVEFSTkFNRQojdW5kZWYgUEFDS0FHRV9UQVJOQU1FCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1ZFUlNJT04KI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgojZW5kaWYKCi8qIENvbW1hbmQgdG8gZ2VuZXJhdGUgcHMgb3V0cHV0LCB0aGUgZmluYWwgY29sdW1uIG11c3QgYmUgdGhlIHByb2Nlc3MgbmFtZQogICB3aXRoT1VUIGFyZ3VtZW50cyAqLwojdW5kZWYgUFNDTUQKCi8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLwojdW5kZWYgUkVUU0lHVFlQRQoKLyogZGVmaW5lIHJ0ZW50cnkgdG8gb3J0ZW50cnkgb24gU1lTViBtYWNoaW5lcyAoYWxwaGFzKSAqLwojdW5kZWYgUlRFTlRSWQoKLyogVXNlIEJTRCA0LjQgcm91dGluZyB0YWJsZSBlbnRyaWVzPyAqLwojdW5kZWYgUlRFTlRSWV80XzQKCi8qIFRoZSBzaXplIG9mIGBpbnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UCgovKiBUaGUgc2l6ZSBvZiBgaW50bWF4X3QnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UTUFYX1QKCi8qIFRoZSBzaXplIG9mIGBsb25nJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0xPTkcKCi8qIFRoZSBzaXplIG9mIGBsb25nIGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9OR19MT05HCgovKiBUaGUgc2l6ZSBvZiBgc2hvcnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfU0hPUlQKCi8qIFRoZSBzaXplIG9mIGBzb2NrYWRkcl91bi5zdW5fcGF0aCcsIGFzIGNvbXB1dGVkIGJ5IHNpemVvZi4gKi8KI3VuZGVmIFNJWkVPRl9TT0NLQUREUl9VTl9TVU5fUEFUSAoKLyogSWYgdXNpbmcgdGhlIEMgaW1wbGVtZW50YXRpb24gb2YgYWxsb2NhLCBkZWZpbmUgaWYgeW91IGtub3cgdGhlCiAgIGRpcmVjdGlvbiBvZiBzdGFjayBncm93dGggZm9yIHlvdXIgc3lzdGVtOyBvdGhlcndpc2UgaXQgd2lsbCBiZQogICBhdXRvbWF0aWNhbGx5IGRlZHVjZWQgYXQgcnVudGltZS4KCVNUQUNLX0RJUkVDVElPTiA+IDAgPT4gZ3Jvd3MgdG93YXJkIGhpZ2hlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA8IDAgPT4gZ3Jvd3MgdG93YXJkIGxvd2VyIGFkZHJlc3NlcwoJU1RBQ0tfRElSRUNUSU9OID0gMCA9PiBkaXJlY3Rpb24gb2YgZ3Jvd3RoIHVua25vd24gKi8KI3VuZGVmIFNUQUNLX0RJUkVDVElPTgoKLyogRGVmaW5lIGlmIHN0YXRmcyB0YWtlcyAyIGFyZ3MgYW5kIHRoZSBzZWNvbmQgYXJndW1lbnQgaGFzIHR5cGUgc3RydWN0CiAgIGZzX2RhdGEuIFtVbHRyaXhdICovCiN1bmRlZiBTVEFUX1NUQVRGU19GU19EQVRBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KI3VuZGVmIFNURENfSEVBREVSUwoKLyogZGVmaW5lIGlmIFNJT0NHSUZBRERSIGV4aXN0cyBpbiBzeXMvaW9jdGwuaCAqLwojdW5kZWYgU1lTX0lPQ1RMX0hfSEFTX1NJT0NHSUZBRERSCgovKiBEZWZpbmUgaWYgdGhlIFRDUCB0aW1lciBjb25zdGFudHMgaW4gPG5ldGluZXQvdGNwX3RpbWVyLmg+IGRlcGVuZCBvbiB0aGUKICAgaW50ZWdlciB2YXJpYWJsZSAnaHonLiBbRnJlZUJTRCA0LnhdICovCiN1bmRlZiBUQ1BUVl9ORUVEU19IWgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGNhbiBzYWZlbHkgaW5jbHVkZSBib3RoIDxzeXMvdGltZS5oPiBhbmQgPHRpbWUuaD4uICovCiN1bmRlZiBUSU1FX1dJVEhfU1lTX1RJTUUKCi8qIFdoZXJlIGlzIHRoZSB1bmFtZSBjb21tYW5kICovCiN1bmRlZiBVTkFNRVBST0cKCi8qIEVuYWJsZSBleHRlbnNpb25zIG9uIEFJWCAzLCBJbnRlcml4LiAgKi8KI2lmbmRlZiBfQUxMX1NPVVJDRQojIHVuZGVmIF9BTExfU09VUkNFCiNlbmRpZgovKiBFbmFibGUgR05VIGV4dGVuc2lvbnMgb24gc3lzdGVtcyB0aGF0IGhhdmUgdGhlbS4gICovCiNpZm5kZWYgX0dOVV9TT1VSQ0UKIyB1bmRlZiBfR05VX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIHRocmVhZGluZyBleHRlbnNpb25zIG9uIFNvbGFyaXMuICAqLwojaWZuZGVmIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwojIHVuZGVmIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUwojZW5kaWYKLyogRW5hYmxlIGV4dGVuc2lvbnMgb24gSFAgTm9uU3RvcC4gICovCiNpZm5kZWYgX1RBTkRFTV9TT1VSQ0UKIyB1bmRlZiBfVEFOREVNX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIGdlbmVyYWwgZXh0ZW5zaW9ucyBvbiBTb2xhcmlzLiAgKi8KI2lmbmRlZiBfX0VYVEVOU0lPTlNfXwojIHVuZGVmIF9fRVhURU5TSU9OU19fCiNlbmRpZgoKCi8qIERlZmluZSBXT1JEU19CSUdFTkRJQU4gdG8gMSBpZiB5b3VyIHByb2Nlc3NvciBzdG9yZXMgd29yZHMgd2l0aCB0aGUgbW9zdAogICBzaWduaWZpY2FudCBieXRlIGZpcnN0IChsaWtlIE1vdG9yb2xhIGFuZCBTUEFSQywgdW5saWtlIEludGVsKS4gKi8KI2lmIGRlZmluZWQgQUNfQVBQTEVfVU5JVkVSU0FMX0JVSUxECiMgaWYgZGVmaW5lZCBfX0JJR19FTkRJQU5fXwojICBkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKIyBlbmRpZgojZWxzZQojIGlmbmRlZiBXT1JEU19CSUdFTkRJQU4KIyAgdW5kZWYgV09SRFNfQklHRU5ESUFOCiMgZW5kaWYKI2VuZGlmCgovKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5JWC4gKi8KI3VuZGVmIF9NSU5JWAoKLyogRGVmaW5lIHRvIDIgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBwcm92aWRlIFBPU0lYLjEgZmVhdHVyZXMgZXhjZXB0IHdpdGgKICAgdGhpcyBkZWZpbmVkLiAqLwojdW5kZWYgX1BPU0lYXzFfU09VUkNFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgbmVlZCB0byBpbiBvcmRlciBmb3IgYHN0YXQnIGFuZCBvdGhlciB0aGluZ3MgdG8gd29yay4gKi8KI3VuZGVmIF9QT1NJWF9TT1VSQ0UKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSBSUE0gNC42IG9yIG5ld2VyIHRvIHR1cm4gb24gbGVnYWN5IEFQSSAqLwojdW5kZWYgX1JQTV80XzRfQ09NUEFUCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQzMl90IHR5cGVkZWYgZnJvbSA8c3lzL3N5bmNoLmg+LAogICA8cHRocmVhZC5oPiwgb3IgPHNlbWFwaG9yZS5oPiBpcyBub3QgdXNlZC4gSWYgdGhlIHR5cGVkZWYgd2VyZSBhbGxvd2VkLCB0aGUKICAgI2RlZmluZSBiZWxvdyB3b3VsZCBjYXVzZSBhIHN5bnRheCBlcnJvci4gKi8KI3VuZGVmIF9VSU5UMzJfVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50NjRfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDY0X1QKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDhfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDhfVAoKLyogRGVmaW5lIHRvIGVtcHR5IGlmIGBjb25zdCcgZG9lcyBub3QgY29uZm9ybSB0byBBTlNJIEMuICovCiN1bmRlZiBjb25zdAoKLyogRGVmaW5lIHRvIGBfX2lubGluZV9fJyBvciBgX19pbmxpbmUnIGlmIHRoYXQncyB3aGF0IHRoZSBDIGNvbXBpbGVyCiAgIGNhbGxzIGl0LCBvciB0byBub3RoaW5nIGlmICdpbmxpbmUnIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgYW55IG5hbWUuICAqLwojaWZuZGVmIF9fY3BsdXNwbHVzCiN1bmRlZiBpbmxpbmUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMTYgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50MTZfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDMyIGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDMyX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA2NCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQ2NF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgOCBiaXRzIGlmIHN1Y2gKICAgYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQ4X3QKCi8qIERlZmluZSB0byB0aGUgd2lkZXN0IHNpZ25lZCBpbnRlZ2VyIHR5cGUgaWYgPHN0ZGludC5oPiBhbmQgPGludHR5cGVzLmg+IGRvCiAgIG5vdCBkZWZpbmUuICovCiN1bmRlZiBpbnRtYXhfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSB3aWRlIGVub3VnaCB0byBob2xkIGEgcG9pbnRlciwKICAgaWYgc3VjaCBhIHR5cGUgZXhpc3RzLCBhbmQgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnRwdHJfdAoKLyogRGVmaW5lIHRvIGBsb25nIGludCcgaWYgPHN5cy90eXBlcy5oPiBkb2VzIG5vdCBkZWZpbmUuICovCiN1bmRlZiBvZmZfdAoKLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgcGlkX3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAxNiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50MTZfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDMyIGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQzMl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgNjQgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDY0X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSA4IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQ4X3QKCi8qIERlZmluZSB0byB0aGUgd2lkZXN0IHVuc2lnbmVkIGludGVnZXIgdHlwZSBpZiA8c3RkaW50Lmg+IGFuZCA8aW50dHlwZXMuaD4KICAgZG8gbm90IGRlZmluZS4gKi8KI3VuZGVmIHVpbnRtYXhfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSB3aWRlIGVub3VnaCB0byBob2xkIGEKICAgcG9pbnRlciwgaWYgc3VjaCBhIHR5cGUgZXhpc3RzLCBhbmQgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50cHRyX3QKCi8qIGVuZCBvZiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKLyogSWYgeW91IGhhdmUgb3BlbnNzbCAwLjkuNyBvciBhYm92ZSwgeW91IGxpa2VseSBoYXZlIEFFUyBzdXBwb3J0LiAqLwojdW5kZWYgTkVUU05NUF9VU0VfT1BFTlNTTAojaWYgKGRlZmluZWQoTkVUU05NUF9VU0VfT1BFTlNTTCkgJiYgZGVmaW5lZChIQVZFX09QRU5TU0xfQUVTX0gpICYmIGRlZmluZWQoSEFWRV9BRVNfQ0ZCMTI4X0VOQ1JZUFQpKSB8fCBkZWZpbmVkKE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTykKI2RlZmluZSBIQVZFX0FFUyAxCiNlbmRpZgoKLyogZGVmaW5lIHJhbmRvbSBmdW5jdGlvbnMgKi8KCiNpZm5kZWYgSEFWRV9SQU5ET00KI2lmZGVmIEhBVkVfTFJBTkQ0OAojZGVmaW5lIHJhbmRvbSBscmFuZDQ4CiNkZWZpbmUgc3JhbmRvbShzKSBzcmFuZDQ4KHMpCiNlbHNlCiNpZmRlZiBIQVZFX1JBTkQKI2RlZmluZSByYW5kb20gcmFuZAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQocykKI2VuZGlmCiNlbmRpZgojZW5kaWYKCi8qIGRlZmluZSBzaWduYWwgaWYgRE5FICovCgojaWZuZGVmIEhBVkVfU0lHTkFMCiNpZmRlZiBIQVZFX1NJR1NFVAojZGVmaW5lIHNpZ25hbChhLGIpIHNpZ3NldChhLGIpCiNlbmRpZgojZW5kaWYKCiNpZmRlZiBIQVZFX0RNQUxMT0NfSAojZGVmaW5lIERNQUxMT0NfRlVOQ19DSEVDSwojZW5kaWYKCiNlbmRpZiAvKiBORVRTTk1QX05PX0FVVE9DT05GX0RFRklOSVRJT05TICovCgoKCgovKiAqKioqKioqKiogTkVUU05NUF9NQVJLX0JFR0lOX0NMRUFOX05BTUVTUEFDRSAqKioqKioqKiogKi8KLyogCiAqIHB1dCBhbGwgbmV3IG5ldC1zbm1wLXNwZWNpZmljIGRlZmluaXRpb25zIGhlcmUKICoKICogYWxsIGRlZmluaXRpb25zIE1VU1QgaGF2ZSBhIE5FVFNOTVBfIHByZWZpeAogKgogKi8KCi8qIERlZmF1bHQgKFNOTVApIHZlcnNpb24gbnVtYmVyIGZvciB0aGUgdG9vbHMgdG8gdXNlICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTiAzCgovKiBkb24ndCBjaGFuZ2UgdGhlc2UgdmFsdWVzISAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYxICAgICAgMHhBQUFBICAgICAgIC8qIHJlYWRhYmxlIGJ5IGFueW9uZSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQU5ZICAgMHhBMDAwICAgICAgIC8qIFYyIEFueSB0eXBlIChpbmNsdWRlcyBOb0F1dGgpICovCiNkZWZpbmUgTkVUU05NUF9TTk1QVjJBVVRIICAweDgwMDAgICAgICAgLyogVjIgQXV0aGVudGljYXRlZCByZXF1ZXN0cyBvbmx5ICovCgovKiBkZWZhdWx0IGxpc3Qgb2YgbWlicyB0byBsb2FkICovCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX01JQlMgIklQLU1JQjpJRi1NSUI6VENQLU1JQjpVRFAtTUlCOlNOTVB2Mi1NSUI6UkZDMTIxMy1NSUIiCgovKiBkZWJ1Z2dpbmcgc3R1ZmYgKi8KLyogaWYgZGVmaW5lZCwgd2Ugb3B0aW1pemUgdGhlIGNvZGUgdG8gZXhjbHVkZSBhbGwgZGVidWdnaW5nIGNhbGxzLiAqLwojdW5kZWYgTkVUU05NUF9OT19ERUJVR0dJTkcKLyogaWdub3JlIHRoZSAtRCBmbGFnIGFuZCBhbHdheXMgcHJpbnQgZGVidWdnaW5nIGluZm9ybWF0aW9uICovCiNkZWZpbmUgTkVUU05NUF9BTFdBWVNfREVCVUcgMAoKLyogcmV2ZXJzZSBlbmNvZGluZyBCRVIgcGFja2V0cyBpcyBib3RoIGZhc3RlciBhbmQgbW9yZSBlZmZpY2llbnQgaW4gc3BhY2UuICovCiNkZWZpbmUgTkVUU05NUF9VU0VfUkVWRVJTRV9BU05FTkNPRElORyAgICAgICAxCiNkZWZpbmUgTkVUU05NUF9ERUZBVUxUX0FTTkVOQ09ESU5HX0RJUkVDVElPTiAxIC8qIDEgPSByZXZlcnNlLCAwID0gZm9yd2FyZHMgKi8KCi8qIFBFUlNJU1RFTlRfRElSRUNUT1JZOiBJZiBkZWZpbmVkLCB0aGUgbGlicmFyeSBpcyBjYXBhYmlsZSBvZiBzYXZpbmcKICAgcGVyc2lzYW50IGluZm9ybWF0aW9uIHRvIHRoaXMgZGlyZWN0b3J5IGluIHRoZSBmb3JtIG9mIGNvbmZpZ3VyYXRpb24KICAgbGluZXM6IFBFUlNJU1RFTlRfRElSRUNUT1JZL05BTUUucGVyc2lzdGVudC5jb25mICovCiNkZWZpbmUgTkVUU05NUF9QRVJTSVNURU5UX0RJUkVDVE9SWSAiL3Zhci9zbm1wIgoKLyogQUdFTlRfRElSRUNUT1JZX01PREU6IHRoZSBtb2RlIHRoZSBhZ2VudHMgc2hvdWxkIHVzZSB0byBjcmVhdGUKICAgZGlyZWN0b3JpZXMgd2l0aC4gU2luY2UgdGhlIGRhdGEgc3RvcmVkIGhlcmUgaXMgcHJvYmFibHkgc2Vuc2l0aXZlLCBpdAogICBwcm9iYWJseSBzaG91bGQgYmUgcmVhZC1vbmx5IGJ5IHJvb3QvYWRtaW5pc3RyYXRvci4gKi8KI2RlZmluZSBORVRTTk1QX0FHRU5UX0RJUkVDVE9SWV9NT0RFIDA3MDAKCi8qIE1BWF9QRVJTSVNURU5UX0JBQ0tVUFM6CiAqICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBlcnNpc3RlbnQgYmFja3VwcyB0aGUgbGlicmFyeSB3aWxsIHRyeSB0bwogKiAgIHJlYWQgZnJvbSB0aGUgcGVyc2lzdGVudCBjYWNoZSBkaXJlY3RvcnkuICBJZiBhbiBhcHBsaWNhdGlvbiBmYWlscyB0bwogKiAgIGNsb3NlIGRvd24gc3VjY2Vzc2Z1bGx5IG1vcmUgdGhhbiB0aGlzIG51bWJlciBvZiB0aW1lcywgZGF0YSB3aWxsIGJlIGxvc3QuCiAqLwojZGVmaW5lIE5FVFNOTVBfTUFYX1BFUlNJU1RFTlRfQkFDS1VQUyAxMAoKLyogZGVmaW5lIHRoZSBzeXN0ZW0gdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRSA8bmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaD4KCi8qIGRlZmluZSB0aGUgbWFjaGluZSAoY3B1KSB0eXBlIGluY2x1ZGUgZmlsZSBoZXJlICovCiNkZWZpbmUgTkVUU05NUF9NQUNISU5FX0lOQ0xVREVfRklMRSA8bmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIFVEUCBidWZmZXIgZGVmYXVsdHMgdW5kZWZpbmVkIG1lYW5zIHVzZSB0aGUgT1MgYnVmZmVycwogKiBieSBkZWZhdWx0ICovCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiN1bmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCgovKiBuZXQtc25tcCdzIG1ham9yIHBhdGggbmFtZXMgKi8KI3VuZGVmIFNOTVBMSUJQQVRICiN1bmRlZiBTTk1QU0hBUkVQQVRICiN1bmRlZiBTTk1QQ09ORlBBVEgKI3VuZGVmIFNOTVBETE1PRFBBVEgKCi8qIE5FVFNOTVBfTE9HRklMRTogIElmIGRlZmluZWQgaXQgY2xvc2VzIHN0ZG91dC9lcnIvaW4gYW5kIG9wZW5zIHRoaXMgaW4gCiAgIG91dC9lcnIncyBwbGFjZS4gIChzdGRpbiBpcyBjbG9zZWQgc28gdGhhdCBzaCBzY3JpcHRzIHdvbid0IHdhaXQgZm9yIGl0KSAqLwojdW5kZWYgTkVUU05NUF9MT0dGSUxFCgovKiBkZWZhdWx0IHN5c3RlbSBjb250YWN0ICovCiN1bmRlZiBORVRTTk1QX1NZU19DT05UQUNUCgovKiBzeXN0ZW0gbG9jYXRpb24gKi8KI3VuZGVmIE5FVFNOTVBfU1lTX0xPQwoKLyogVXNlIGxpYndyYXAgdG8gaGFuZGxlIGFsbG93L2RlbnkgaG9zdHM/ICovCiN1bmRlZiBORVRTTk1QX1VTRV9MSUJXUkFQCgovKiBNaWItMiB0cmVlIEluZm8gKi8KLyogVGhlc2UgYXJlIHRoZSBzeXN0ZW0gaW5mb3JtYXRpb24gdmFyaWFibGVzLiAqLwoKI2RlZmluZSBORVRTTk1QX1ZFUlNfREVTQyAgICJ1bmtub3duIiAgICAgICAgICAgICAvKiBvdmVycmlkZGVuIGF0IHJ1biB0aW1lICovCiNkZWZpbmUgTkVUU05NUF9TWVNfTkFNRSAgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwoKLyogY29tbWVudCBvdXQgdGhlIHNlY29uZCBkZWZpbmUgdG8gdHVybiBvZmYgZnVuY3Rpb25hbGl0eSBmb3IgYW55IG9mCiAgIHRoZXNlOiAoU2VlIFJFQURNRSBmb3IgZGV0YWlscykgKi8KCi8qICAgcHJvYyBQUk9DRVNTTkFNRSBbTUFYXSBbTUlOXSAqLwojZGVmaW5lIE5FVFNOTVBfUFJPQ01JQk5VTSAyCgovKiAgIGV4ZWMvc2hlbGwgTkFNRSBDT01NQU5EICAgICAgKi8KI2RlZmluZSBORVRTTk1QX1NIRUxMTUlCTlVNIDgKCi8qICAgc3dhcCBNSU4gICAgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfTUVNTUlCTlVNIDQKCi8qICAgZGlzayBESVNLIE1JTlNJWkUgICAgICAgICAgICAqLwojZGVmaW5lIE5FVFNOTVBfRElTS01JQk5VTSA5CgovKiAgIGxvYWQgMSA1IDE1ICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0xPQURBVkVNSUJOVU0gMTAKCi8qIHdoaWNoIHZlcnNpb24gYXJlIHlvdSB1c2luZz8gVGhpcyBtaWJsb2Mgd2lsbCB0ZWxsIHlvdSAqLwojZGVmaW5lIE5FVFNOTVBfVkVSU0lPTk1JQk5VTSAxMDAKCi8qIFJlcG9ydHMgZXJyb3JzIHRoZSBhZ2VudCBydW5zIGludG8gKi8KLyogKHR5cGljYWxseSBpdHMgImNhbid0IGZvcmssIG5vIG1lbSIgcHJvYmxlbXMpICovCiNkZWZpbmUgTkVUU05NUF9FUlJPUk1JQk5VTSAxMDEKCi8qIFRoZSBzdWIgaWQgb2YgRVhURU5TSUJMRU1JQiByZXR1cm5lZCB0byBxdWVyaWVzIG9mCiAgIC5pc28ub3JnLmRvZC5pbnRlcm5ldC5tZ210Lm1pYi0yLnN5c3RlbS5zeXNPYmplY3RJRC4wICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVElEIDI1MAoKLyogVGhpcyBJRCBpcyByZXR1cm5lZCBhZnRlciB0aGUgQUdFTlRJRCBhYm92ZS4gIElFLCB0aGUgcmVzdWx0aW5nCiAgIHZhbHVlIHJldHVybmVkIGJ5IGEgcXVlcnkgdG8gc3lzT2JqZWN0SUQgaXMKICAgRVhURU5TSUJMRU1JQi5BR0VOVElELj8/Pywgd2hlcmUgPz8/IGlzIGRlZmluZWQgYmVsb3cgYnkgT1NUWVBFICovCgojZGVmaW5lIE5FVFNOTVBfSFBVWDlJRCAxCiNkZWZpbmUgTkVUU05NUF9TVU5PUzRJRCAyIAojZGVmaW5lIE5FVFNOTVBfU09MQVJJU0lEIDMKI2RlZmluZSBORVRTTk1QX09TRklEIDQKI2RlZmluZSBORVRTTk1QX1VMVFJJWElEIDUKI2RlZmluZSBORVRTTk1QX0hQVVgxMElEIDYKI2RlZmluZSBORVRTTk1QX05FVEJTRDFJRCA3CiNkZWZpbmUgTkVUU05NUF9GUkVFQlNESUQgOAojZGVmaW5lIE5FVFNOTVBfSVJJWElEIDkKI2RlZmluZSBORVRTTk1QX0xJTlVYSUQgMTAKI2RlZmluZSBORVRTTk1QX0JTRElJRCAxMQojZGVmaW5lIE5FVFNOTVBfT1BFTkJTRElEIDEyCiNkZWZpbmUgTkVUU05NUF9XSU4zMklEIDEzCiNkZWZpbmUgTkVUU05NUF9IUFVYMTFJRCAxNAojZGVmaW5lIE5FVFNOTVBfQUlYSUQgMTUKI2RlZmluZSBORVRTTk1QX01BQ09TWElEIDE2CiNkZWZpbmUgTkVUU05NUF9EUkFHT05GTFlJRCAxNwojZGVmaW5lIE5FVFNOTVBfVU5LTk9XTklEIDI1NQoKI2lmZGVmIGhwdXg5CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYOUlECiNlbmRpZgojaWZkZWYgaHB1eDEwCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9IUFVYMTBJRAojZW5kaWYKI2lmZGVmIGhwdXgxMQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDExSUQKI2VuZGlmCiNpZmRlZiBzdW5vczQKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1NVTk9TNElECiNlbmRpZgojaWZkZWYgc29sYXJpczIKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1NPTEFSSVNJRAojZW5kaWYKI2lmIGRlZmluZWQob3NmMykgfHwgZGVmaW5lZChvc2Y0KSB8fCBkZWZpbmVkKG9zZjUpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9PU0ZJRAojZW5kaWYKI2lmZGVmIHVsdHJpeDQKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1VMVFJJWElECiNlbmRpZgojaWYgZGVmaW5lZChuZXRic2QxKSB8fCBkZWZpbmVkKG5ldGJzZDIpCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9ORVRCU0QxSUQKI2VuZGlmCiNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfRlJFRUJTRElECiNlbmRpZgojaWYgZGVmaW5lZChfX0RyYWdvbkZseV9fKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfRFJBR09ORkxZSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGlyaXg2KSB8fCBkZWZpbmVkKGlyaXg1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSVJJWElECiNlbmRpZgojaWZkZWYgbGludXgKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0xJTlVYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGJzZGkyKSB8fCBkZWZpbmVkKGJzZGkzKSB8fCBkZWZpbmVkKGJzZGk0KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQlNESUlECiNlbmRpZgojaWYgZGVmaW5lZChvcGVuYnNkKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1BFTkJTRElECiNlbmRpZgojaWZkZWYgV0lOMzIKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1dJTjMySUQKI2VuZGlmCiNpZiBkZWZpbmVkKGFpeDMpIHx8IGRlZmluZWQoYWl4NCkgfHwgZGVmaW5lZChhaXg1KSB8fCBkZWZpbmVkKGFpeDYpIHx8IGRlZmluZWQoYWl4NykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0FJWElECiNlbmRpZgojaWYgZGVmaW5lZChkYXJ3aW4pICYmIChkYXJ3aW4gPj0gOCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX01BQ09TWElECiNlbmRpZgovKiB1bmtub3duICovCiNpZm5kZWYgTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX1VOS05PV05JRAojZW5kaWYKCi8qIFRoZSBlbnRlcnByaXNlIG51bWJlciBoYXMgYmVlbiBhc3NpZ25lZCBieSB0aGUgSUFOQSBncm91cC4gICAqLwovKiBPcHRpb25hbGx5LCB0aGlzIG1heSBwb2ludCB0byB0aGUgbG9jYXRpb24gaW4gdGhlIHRyZWUgeW91ciAgKi8KLyogY29tcGFueS9vcmdhbml6YXRpb24gaGFzIGJlZW4gYWxsb2NhdGVkLiAgICAgICAgICAgICAgICAgICAgICovCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3IgdGhlIE5FVF9TTk1QIE1JQiBtb2R1bGVzLiAqLwojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9PSUQJCQk4MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX01JQgkJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfRE9UX01JQgkJMS4zLjYuMS40LjEuODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAk3CgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIHN5c09iamVjdElELiAqLwojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX01JQgkJMSwzLDYsMSw0LDEsODA3MiwzLDIsTkVUU05NUF9PU1RZUEUKI2RlZmluZSBORVRTTk1QX1NZU1RFTV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjMuMi5ORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUJfTEVOR1RICTEwCgovKiBUaGUgYXNzaWduZWQgZW50ZXJwcmlzZSBudW1iZXIgZm9yIG5vdGlmaWNhdGlvbnMuICovCiNkZWZpbmUgTkVUU05NUF9OT1RJRklDQVRJT05fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyLjQKI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9ET1RfTUlCX0xFTkdUSAk4CgovKiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgdWNkYXZpcyBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19PSUQJCTIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfTUlCCQkxLDMsNiwxLDQsMSwyMDIxCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIJCTEuMy42LjEuNC4xLjIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQl9MRU5HVEgJNwoKLyogaG93IGxvbmcgdG8gd2FpdCAoc2Vjb25kcykgZm9yIGVycm9yIHF1ZXJ5cyBiZWZvcmUgcmVzZXRpbmcgdGhlIGVycm9yIHRyYXAuKi8KI2RlZmluZSBORVRTTk1QX0VSUk9SVElNRUxFTkdUSCA2MDAgCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IFBST0MgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgcHJvY2VzcyBuYW1lIGluIGVycm9yICovCgovKiAjZGVmaW5lIE5FVFNOTVBfUFJPQ0ZJWENNRCAiL3Vzci9iaW4vcGVybCAvbG9jYWwvc2NyaXB0cy9maXhwcm9jICVzIiAqLwoKLyogRXhlYyBjb21tYW5kIHRvIGZpeCBFWEVDIHByb2JsZW1zICovCi8qICVzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlIGV4ZWMvc2NyaXB0IG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9FWEVDRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBTaG91bGQgZXhlYyBvdXRwdXQgQ2FzaGluZyBiZSB1c2VkIChzcGVlZHMgdXAgdGhpbmdzIGdyZWF0bHkpLCBhbmQKICAgaWYgc28sIEFmdGVyIGhvdyBtYW55IHNlY29uZHMgc2hvdWxkIHRoZSBjYWNoZSByZS1uZXdlZD8gIE5vdGU6CiAgIERvbid0IGRlZmluZSBDQVNIRVRJTUUgdG8gZGlzYWJsZSBjYXNoaW5nIGNvbXBsZXRlbHkgKi8KCiNkZWZpbmUgTkVUU05NUF9FWENBQ0hFVElNRSAzMAojZGVmaW5lIE5FVFNOTVBfQ0FDSEVGSUxFICIuc25tcC1leGVjLWNhY2hlIgojZGVmaW5lIE5FVFNOTVBfTUFYQ0FDSEVTSVpFICgxNTAwKjgwKSAgIC8qIHJvdWdobHkgMTUwMCBsaW5lcyBtYXggKi8KCi8qIG1pc2MgZGVmYXVsdHMgKi8KCi8qIGRlZmF1bHQgb2YgMTAwIG1lZyBtaW5pbXVtIGlmIHRoZSBtaW5pbXVtIHNpemUgaXMgbm90IHNwZWNpZmllZCBpbgogICB0aGUgY29uZmlnIGZpbGUgKi8KI2RlZmluZSBORVRTTk1QX0RFRkRJU0tNSU5JTVVNU1BBQ0UgMTAwMDAwCgovKiBkZWZhdWx0IG1heGltdW0gbG9hZCBhdmVyYWdlIGJlZm9yZSBlcnJvciAqLwojZGVmaW5lIE5FVFNOTVBfREVGTUFYTE9BREFWRSAxMi4wCgovKiBtYXggdGltZXMgdG8gbG9vcCByZWFkaW5nIG91dHB1dCBmcm9tIGV4ZWNzLiAqLwovKiBCZWNhdXNlIG9mIHNsZWVwKDEpcywgdGhpcyB3aWxsIGFsc28gYmUgdGltZSB0byB3YWl0IChpbiBzZWNvbmRzKSBmb3IgZXhlYwogICB0byBmaW5pc2ggKi8KI2RlZmluZSBORVRTTk1QX01BWFJFQURDT1VOVCAxMDAKCi8qIFNldCBpZiBzbm1wZ2V0cyBzaG91bGQgYmxvY2sgYW5kIG5ldmVyIHRpbWVvdXQgKi8KLyogVGhlIG9yaWdpbmFsIENNVSBjb2RlIGhhZCB0aGlzIGhhcmRjb2RlZCBhcyA9IDEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBCTE9DSyAxCgovKiBIb3cgbG9uZyB0byB3YWl0IGJlZm9yZSByZXN0YXJ0aW5nIHRoZSBhZ2VudCBhZnRlciBhIHNubXBzZXQgdG8KICAgRVhURU5TSUJMRU1JQi5WRVJTSU9OTUlCTlVNLlZFUlJFU1RBUlRBR0VOVC4gIFRoaXMgaXMKICAgbmVjZXNzYXJ5IHRvIGZpbmlzaCB0aGUgc25tcHNldCByZXBseSBiZWZvcmUgcmVzdGFydGluZy4gKi8KI2RlZmluZSBORVRTTk1QX1JFU1RBUlRTTEVFUCA1CgovKiBVTmRlZmluZSB0byBhbGxvdyBzcGVjaWZ5aW5nIHplcm8tbGVuZ3RoIGNvbW11bml0eSBzdHJpbmcgKi8KLyogI2RlZmluZSBORVRTTk1QX05PX1pFUk9MRU5HVEhfQ09NTVVOSVRZIDEgKi8KCi8qIE51bWJlciBvZiBjb21tdW5pdHkgc3RyaW5ncyB0byBzdG9yZSAqLwojZGVmaW5lIE5FVFNOTVBfTlVNX0NPTU1VTklUSUVTCTUKCi8qIGludGVybmFsIGRlZmluZSAqLwojZGVmaW5lIE5FVFNOTVBfTEFTVEZJRUxEIC0xCgovKiAgUGx1Z2dhYmxlIHRyYW5zcG9ydHMuICAqLwoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgImNhbGxiYWNrIiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVbml4IHRyYW5zcG9ydCBkb21haW4KICAgIChhLmsuYS4gImxvY2FsIElQQyIpIGlzIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgQUFMNSBQVkMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0FBTDVQVkNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBJUFggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVENQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUTFMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNCQVNFX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgQWxpYXMgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BTElBU19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFNTSCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1NTSF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIERUTFMvVURQIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfRFRMU1VEUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUy9UQ1AgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNUQ1BfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHN0ZGluL291dCB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgSVB2NEJhc2UgdHJhbnNwb3J0IGRvbWFpbiBpcyBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0lQVjRCQVNFX0RPTUFJTgoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIFVTTSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9VU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBLU00gKGtlcmJlcm9zIGJhc2VkIHNubXApIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIGxvY2FsIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KCi8qIGRlZmluZSBpZiBjb25maWd1cmVkIGFzIGEgIm1pbmktYWdlbnQiICovCiN1bmRlZiBORVRTTk1QX01JTklfQUdFTlQKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXQtc25tcCBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfT0lECQk4MDcyCiNkZWZpbmUgTkVUU05NUF9NSUIJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUJfTEVOR1RICTcKCi8qIHBhdHRlcm4gZm9yIHRlbXBvcmFyeSBmaWxlIG5hbWVzICovCiNkZWZpbmUgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTiAiL3RtcC9zbm1wZFhYWFhYWCIKCi8qCiAqIHRoaXMgbXVzdCBiZSBiZWZvcmUgdGhlIHN5c3RlbS9tYWNoaW5lIGluY2x1ZGVzLCB0byBhbGxvdyB0aGVtIHRvCiAqIG92ZXJyaWRlIGFuZCB0dXJuIG9mZiBpbmxpbmluZy4gVG8gZG8gc28sIHRoZXkgc2hvdWxkIGRvIHRoZQogKiBmb2xsb3dpbmc6CiAqCiAqICAgICN1bmRlZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUKICogICAgI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAogKgogKiBBIHVzZXIgaGF2aW5nIHByb2JsZW1zIHdpdGggdGhlaXIgY29tcGlsZXIgY2FuIGFsc28gdHVybiBvZmYKICogdGhlIHVzZSBvZiBpbmxpbmUgYnkgZGVmaW5pbmcgTkVUU05NUF9OT19JTkxJTkUgdmlhIHRoZWlyIGNmbGFnczoKICoKICogICAgLURORVRTTk1QX05PX0lOTElORQogKgogKiBIZWFkZXIgYW5kIHNvdXJjZSBmaWxlcyBzaG91bGQgb25seSB0ZXN0IGFnYWluc3QgTkVUU05NUF9VU0VfSU5MSU5FOgogKgogKiAgICNpZmRlZiBORVRTTk1QX1VTRV9JTkxJTkUKICogICBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKiAgICNlbmRpZgogKgogKiBGdW5jdGlvbnMgd2hpY2ggc2hvdWxkIGJlIHN0YXRpYywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpbmxpbmUKICogaXMgYXZhaWxhYmxlIG9yIGVuYWJsZWQgc2hvdWxkIHVzZSB0aGUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIG1hY3JvLAogKiBsaWtlIHNvOgogKgogKiAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICogTk9UIGxpa2UgdGhpczoKICoKICogICAgc3RhdGljIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqLwojaWZkZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMQojZW5kaWYKCiNpbmNsdWRlIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojaW5jbHVkZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fSU5MSU5FKQojICAgZGVmaW5lIE5FVFNOTVBfVVNFX0lOTElORSAxCiMgICBpZm5kZWYgTkVUU05NUF9JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX0lOTElORSBpbmxpbmUKIyAgIGVuZGlmCiMgICBpZm5kZWYgTkVUU05NUF9TVEFUSUNfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYyBpbmxpbmUKIyAgIGVuZGlmCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgCiMgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYwojZW5kaWYKCiNpZm5kZWYgTkVUU05NUF9JTVBPUlQKIyAgZGVmaW5lIE5FVFNOTVBfSU1QT1JUIGV4dGVybgojZW5kaWYKCi8qIGNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3UgYXJlIGNvbXBpbGluZyB3aXRoIGxpYnNubXAuaCAKICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KI2RlZmluZSBVQ0RfU05NUF9MSUJSQVJZIDEKCi8qIGFkZCBpbiByZWNlbnQgQ01VIGxpYnJhcnkgZXh0ZW5zaW9ucyAobm90IGNvbXBsZXRlKSAqLwojdW5kZWYgQ01VX0NPTVBBVElCTEUKCi8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFKSAmJiAhZGVmaW5lZChORVRTTk1QX0RPTlRfVVNFX05MSVNUKSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0tNRU1fVVNBR0UpCiNkZWZpbmUgTkVUU05NUF9DQU5fVVNFX05MSVNUCiNlbmRpZgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fTEVHQUNZX0RFRklOSVRJT05TICoqKioqKioqKi8KLyogCiAqIGV4aXN0aW5nIGRlZmluaXRpb25zIHByaW9yIHRvIE5ldC1TTk1QIDUuNAogKgogKiBkbyBub3QgYWRkIGFueXRoaW5nIG5ldyBoZXJlCiAqCiAqLwoKI2lmbmRlZiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUwoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04KIyBkZWZpbmUgREVGQVVMVF9TTk1QX1ZFUlNJT04gTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMQojIGRlZmluZSBTTk1QVjEgTkVUU05NUF9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBTlkKIyBkZWZpbmUgU05NUFYyQU5ZIE5FVFNOTVBfU05NUFYyQU5ZCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYyQVVUSAojIGRlZmluZSBTTk1QVjJBVVRIIE5FVFNOTVBfU05NUFYyQVVUSAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCUwojIGRlZmluZSBERUZBVUxUX01JQlMgTkVUU05NUF9ERUZBVUxUX01JQlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKIyBkZWZpbmUgREVGQVVMVF9NSUJESVJTIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojIGRlZmluZSBERUZBVUxUX01JQkZJTEVTIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKIyBkZWZpbmUgT1BBUVVFX1NQRUNJQUxfVFlQRVMgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiMgZGVmaW5lIFNDQVBJX0FVVEhQUklWIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojIGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9QS0NTMTEKIyBkZWZpbmUgVVNFX1BLQ1MgTkVUU05NUF9VU0VfUEtDUzExCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKIyBkZWZpbmUgVVNFX09QRU5TU0wgTkVUU05NUF9VU0VfT1BFTlNTTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwojIGRlZmluZSBTTk1QX05PX0RFQlVHR0lORyBORVRTTk1QX05PX0RFQlVHR0lORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FMV0FZU19ERUJVRwojIGRlZmluZSBTTk1QX0FMV0FZU19ERUJVRyBORVRTTk1QX0FMV0FZU19ERUJVRwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HCiMgZGVmaW5lIFVTRV9SRVZFUlNFX0FTTkVOQ09ESU5HIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OCiMgZGVmaW5lIERFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KI2VuZGlmCgojZGVmaW5lIFBFUlNJU1RFTlRfRElSRUNUT1JZIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkKI2RlZmluZSBQRVJTSVNURU5UX01BU0sgTkVUU05NUF9QRVJTSVNURU5UX01BU0sKI2RlZmluZSBBR0VOVF9ESVJFQ1RPUllfTU9ERSBORVRTTk1QX0FHRU5UX0RJUkVDVE9SWV9NT0RFCiNkZWZpbmUgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUyBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMKI2RlZmluZSBTWVNURU1fSU5DTFVERV9GSUxFIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojZGVmaW5lIE1BQ0hJTkVfSU5DTFVERV9GSUxFIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9MT0dGSUxFCiMgZGVmaW5lIExPR0ZJTEUgTkVUU05NUF9MT0dGSUxFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKIyBkZWZpbmUgU1lTX0NPTlRBQ1QgTkVUU05NUF9TWVNfQ09OVEFDVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NZU19MT0MKIyBkZWZpbmUgU1lTX0xPQyBORVRTTk1QX1NZU19MT0MKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfTElCV1JBUAojIGRlZmluZSBVU0VfTElCV1JBUCBORVRTTk1QX1VTRV9MSUJXUkFQCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERSAKIyBkZWZpbmUgU05NUF9URVNUSU5HX0NPREUgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKIyBkZWZpbmUgTk9fUk9PVF9BQ0NFU1MgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0tNRU1fVVNBR0UKIyBkZWZpbmUgTk9fS01FTV9VU0FHRSBORVRTTk1QX05PX0tNRU1fVVNBR0UKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKIyBkZWZpbmUgTk9fRFVNTVlfVkFMVUVTIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCiNlbmRpZgoKI2RlZmluZSBWRVJTX0RFU0MgICAgIE5FVFNOTVBfVkVSU19ERVNDCiNkZWZpbmUgU1lTX05BTUUgICAgICBORVRTTk1QX1NZU19OQU1FCgojZGVmaW5lIFBST0NNSUJOVU0gICAgTkVUU05NUF9QUk9DTUlCTlVNCiNkZWZpbmUgU0hFTExNSUJOVU0gICBORVRTTk1QX1NIRUxMTUlCTlVNCiNkZWZpbmUgTUVNTUlCTlVNICAgICBORVRTTk1QX01FTU1JQk5VTQojZGVmaW5lIERJU0tNSUJOVU0gICAgTkVUU05NUF9ESVNLTUlCTlVNCgojZGVmaW5lIExPQURBVkVNSUJOVU0gTkVUU05NUF9MT0FEQVZFTUlCTlVNCiNkZWZpbmUgVkVSU0lPTk1JQk5VTSBORVRTTk1QX1ZFUlNJT05NSUJOVU0KI2RlZmluZSBFUlJPUk1JQk5VTSAgIE5FVFNOTVBfRVJST1JNSUJOVU0KI2RlZmluZSBBR0VOVElEICAgICAgIE5FVFNOTVBfQUdFTlRJRAoKI2RlZmluZSBIUFVYOUlEICAgICAgIE5FVFNOTVBfSFBVWDlJRAojZGVmaW5lIFNVTk9TNElEICAgICAgTkVUU05NUF9TVU5PUzRJRAojZGVmaW5lIFNPTEFSSVNJRCAgICAgTkVUU05NUF9TT0xBUklTSUQKI2RlZmluZSBPU0ZJRCAgICAgICAgIE5FVFNOTVBfT1NGSUQKI2RlZmluZSBVTFRSSVhJRCAgICAgIE5FVFNOTVBfVUxUUklYSUQKI2RlZmluZSBIUFVYMTBJRCAgICAgIE5FVFNOTVBfSFBVWDEwSUQKI2RlZmluZSBORVRCU0QxSUQgICAgIE5FVFNOTVBfTkVUQlNEMUlECiNkZWZpbmUgRlJFRUJTRElEICAgICBORVRTTk1QX0ZSRUVCU0RJRAojZGVmaW5lIElSSVhJRCAgICAgICAgTkVUU05NUF9JUklYSUQKI2RlZmluZSBMSU5VWElEICAgICAgIE5FVFNOTVBfTElOVVhJRAojZGVmaW5lIEJTRElJRCAgICAgICAgTkVUU05NUF9CU0RJSUQKI2RlZmluZSBPUEVOQlNESUQgICAgIE5FVFNOTVBfT1BFTkJTRElECiNkZWZpbmUgV0lOMzJJRCAgICAgICBORVRTTk1QX1dJTjMySUQKI2RlZmluZSBIUFVYMTFJRCAgICAgIE5FVFNOTVBfSFBVWDExSUQKI2RlZmluZSBBSVhJRCAgICAgICAgIE5FVFNOTVBfQUlYSUQKI2RlZmluZSBNQUNPU1hJRCAgICAgIE5FVFNOTVBfTUFDT1NYSUQKI2RlZmluZSBVTktOT1dOSUQgICAgIE5FVFNOTVBfVU5LTk9XTklECgojZGVmaW5lIEVOVEVSUFJJU0VfT0lEICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX09JRAojZGVmaW5lIEVOVEVSUFJJU0VfTUlCICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQiAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUIKI2RlZmluZSBFTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RIIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBTWVNURU1fTUlCCQkgIE5FVFNOTVBfU1lTVEVNX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCCQkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIKI2RlZmluZSBTWVNURU1fRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1NZU1RFTV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBOT1RJRklDQVRJT05fTUlCCSAgICBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCiNkZWZpbmUgTk9USUZJQ0FUSU9OX0RPVF9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEggTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgVUNEQVZJU19PSUQJCSAgTkVUU05NUF9VQ0RBVklTX09JRAojZGVmaW5lIFVDREFWSVNfTUlCCQkgIE5FVFNOTVBfVUNEQVZJU19NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUIJCSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUJfTEVOR1RICSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIEVSUk9SVElNRUxFTkdUSCBORVRTTk1QX0VSUk9SVElNRUxFTkdUSAoKI2lmZGVmIE5FVFNOTVBfUFJPQ0ZJWENNRAojIGRlZmluZSBQUk9DRklYQ01EIE5FVFNOTVBfUFJPQ0ZJWENNRAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VYRUNGSVhDTUQKIyBkZWZpbmUgRVhFQ0ZJWENNRCBORVRTTk1QX0VYRUNGSVhDTUQKI2VuZGlmCgojZGVmaW5lIEVYQ0FDSEVUSU1FICBORVRTTk1QX0VYQ0FDSEVUSU1FCiNkZWZpbmUgQ0FDSEVGSUxFICAgIE5FVFNOTVBfQ0FDSEVGSUxFCiNkZWZpbmUgTUFYQ0FDSEVTSVpFIE5FVFNOTVBfTUFYQ0FDSEVTSVpFCgojZGVmaW5lIERFRkRJU0tNSU5JTVVNU1BBQ0UgTkVUU05NUF9ERUZESVNLTUlOSU1VTVNQQUNFCiNkZWZpbmUgREVGTUFYTE9BREFWRSBORVRTTk1QX0RFRk1BWExPQURBVkUKI2RlZmluZSBNQVhSRUFEQ09VTlQgTkVUU05NUF9NQVhSRUFEQ09VTlQKCiNkZWZpbmUgU05NUEJMT0NLIE5FVFNOTVBfU05NUEJMT0NLCiNkZWZpbmUgUkVTVEFSVFNMRUVQIE5FVFNOTVBfUkVTVEFSVFNMRUVQCgojZGVmaW5lIE5VTV9DT01NVU5JVElFUwlORVRTTk1QX05VTV9DT01NVU5JVElFUwoKI2lmZGVmIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkKIyBkZWZpbmUgTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojZW5kaWYKCiNkZWZpbmUgTEFTVEZJRUxEIE5FVFNOTVBfTEFTVEZJRUxECgojZGVmaW5lIENPTkZJR1VSRV9PUFRJT05TIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9VU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfVVNNIE5FVFNOTVBfU0VDTU9EX1VTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9LU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfS1NNIE5FVFNOTVBfU0VDTU9EX0tTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNIAojIGRlZmluZSBTTk1QX1NFQ01PRF9MT0NBTFNNIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9SRUVOVFJBTlQKIyBkZWZpbmUgTlNfUkVFTlRSQU5UIE5FVFNOTVBfUkVFTlRSQU5UCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKIyBkZWZpbmUgSU5FVDYgTkVUU05NUF9FTkFCTEVfSVBWNgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiMgZGVmaW5lIExPQ0FMX1NNVVggTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCiMgZGVmaW5lIEFHRU5UWF9ET01fU09DS19PTkxZIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKIyBkZWZpbmUgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojIGRlZmluZSBNSVRfTkVXX0NSWVBUTyBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojIGRlZmluZSBIRUlNREFMIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BR0VOVFhfU09DS0VUCiMgZGVmaW5lIEFHRU5UWF9TT0NLRVQgTkVUU05NUF9BR0VOVFhfU09DS0VUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojIGRlZmluZSBESVNBQkxFX01JQl9MT0FESU5HIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiMgZGVmaW5lIERJU0FCTEVfU05NUFYxIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjJDIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojIGRlZmluZSBESVNBQkxFX1NFVF9TVVBQT1JUIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCiMgZGVmaW5lIERJU0FCTEVfREVTIE5FVFNOTVBfRElTQUJMRV9ERVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01ENQojIGRlZmluZSBESVNBQkxFX01ENSBORVRTTk1QX0RJU0FCTEVfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QKIyBkZWZpbmUgRE9OVF9VU0VfTkxJU1QgTkVUU05NUF9ET05UX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfTkxJU1QKIyBkZWZpbmUgQ0FOX1VTRV9OTElTVCBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAojIGRlZmluZSBDQU5fVVNFX1NZU0NUTCBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TICovCgoKI2VuZGlmIC8qIE5FVF9TTk1QX0NPTkZJR19IICovCg==