LyogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbi4gIEdlbmVyYXRlZCBmcm9tIGNvbmZpZ3VyZS5hYyBieSBhdXRvaGVhZGVyLiAgKi8KLyogCiAqIG5ldC1zbm1wIGNvbmZpZ3VyYXRpb24gaGVhZGVyIGZpbGUKICovCi8qIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvcHlyaWdodChzKS4gIFNlZQogKiB0aGUgTmV0LVNOTVAncyBDT1BZSU5HIGZpbGUgZm9yIG1vcmUgZGV0YWlscyBhbmQgb3RoZXIgY29weXJpZ2h0cwogKiB0aGF0IG1heSBhcHBseToKICovCi8qCiAqIFBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUgY29weXJpZ2h0ZWQgYnk6CiAqIENvcHlyaWdodCCpIDIwMDMgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKiBVc2UgaXMgc3ViamVjdCB0byBsaWNlbnNlIHRlcm1zIHNwZWNpZmllZCBpbiB0aGUgQ09QWUlORyBmaWxlCiAqIGRpc3RyaWJ1dGVkIHdpdGggdGhlIE5ldC1TTk1QIHBhY2thZ2UuCiAqLwoKI2lmbmRlZiBORVRfU05NUF9DT05GSUdfSAojZGVmaW5lIE5FVF9TTk1QX0NPTkZJR19ICgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9BVVRPQ09ORl9ERUZJTklUSU9OUyAqKioqKioqKiogKi8KLyoKICogcHV0IGFsbCBhdXRvY29uZi1zcGVjaWZpYyBkZWZpbml0aW9ucyBiZWxvdyBoZXJlCiAqCiAqLwojaWZuZGVmIE5FVFNOTVBfTk9fQVVUT0NPTkZfREVGSU5JVElPTlMKCgojaWYgZGVmaW5lZCAoV0lOMzIpIHx8IGRlZmluZWQgKG1pbmd3MzIpIHx8IGRlZmluZWQgKGN5Z3dpbikKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI7IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOycKI2Vsc2UKI2RlZmluZSBFTlZfU0VQQVJBVE9SICI6IgojZGVmaW5lIEVOVl9TRVBBUkFUT1JfQ0hBUiAnOicKI2VuZGlmCgovKiBkZWZpbml0aW9ucyBhZGRlZCBieSBjb25maWd1cmUgb24tdGhlLWZseSAqLwoKI2RlZmluZSBjb25maWdfYmVsb25nc19pbih4KQoKI2RlZmluZSBjb25maWdfZXhjbHVkZSh4KQoKI2RlZmluZSBjb25maWdfYXJjaF9yZXF1aXJlKHgseSkKCiNkZWZpbmUgY29uZmlnX3ZlcnNpb25fcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfcmVxdWlyZSh4KQoKI2RlZmluZSBjb25maWdfYWRkX21pYih4KQoKI2RlZmluZSBjb25maWdfcGFyc2VfZG90X2NvbmYodyx4LHkseikKCiNkZWZpbmUgY29uZmlnX2Vycm9yKHgpCgojZGVmaW5lIGNvbmZpZ193YXJuaW5nKHgpCgovKiBEZWZpbmUgaWYgYnVpbGRpbmcgdW5pdmVyc2FsIChpbnRlcm5hbCBoZWxwZXIgbWFjcm8pICovCiN1bmRlZiBBQ19BUFBMRV9VTklWRVJTQUxfQlVJTEQKCi8qIERlZmluZSB0byBvbmUgb2YgYF9nZXRiNjcnLCBgR0VUQjY3JywgYGdldGI2NycgZm9yIENyYXktMiBhbmQgQ3JheS1ZTVAKICAgc3lzdGVtcy4gVGhpcyBmdW5jdGlvbiBpcyByZXF1aXJlZCBmb3IgYGFsbG9jYS5jJyBzdXBwb3J0IG9uIHRob3NlIHN5c3RlbXMuCiAgICovCiN1bmRlZiBDUkFZX1NUQUNLU0VHX0VORAoKLyogRGVmaW5lIHRvIDEgaWYgdXNpbmcgYGFsbG9jYS5jJy4gKi8KI3VuZGVmIENfQUxMT0NBCgovKiBsb2NhdGlvbiBvZiBzd2FwIGRldmljZSAqLwojdW5kZWYgRE1FTV9MT0MKCi8qIGxvY2F0aW9uIG9mIG1vdW50IHRhYmxlIGxpc3QgKi8KI3VuZGVmIEVUQ19NTlRUQUIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgQUVTX2NmYjEyOF9lbmNyeXB0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQUVTX0NGQjEyOF9FTkNSWVBUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSBgYWxsb2NhJywgYXMgYSBmdW5jdGlvbiBvciBtYWNyby4gKi8KI3VuZGVmIEhBVkVfQUxMT0NBCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8YWxsb2NhLmg+IGFuZCBpdCBzaG91bGQgYmUgdXNlZCAobm90IG9uIFVsdHJpeCkuCiAgICovCiN1bmRlZiBIQVZFX0FMTE9DQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGFycGEvaW5ldC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfQVJQQV9JTkVUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3BhZ2UuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0FTTV9QQUdFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8YXNtL3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9BU01fVFlQRVNfSAoKLyogRGVmaW5lIGlmIHVzaW5nIE1ZX0lOSVQoKSBjYXVzZXMgYSBsaW5rZXIgZXJyb3IgKi8KI3VuZGVmIEhBVkVfQlJPS0VOX0xJQk1ZU1FMQ0xJRU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNnZXRuZXh0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfQ0dFVE5FWFQKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBDb3VudGVyNjQnLiAqLwojdW5kZWYgSEFWRV9DT1VOVEVSNjQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBkZWNsYXJhdGlvbiBvZiBgc2Vuc29yc19nZXRfYWxsX3N1YmZlYXR1cmVzJywKICAgYW5kIHRvIDAgaWYgeW91IGRvbid0LiAqLwojdW5kZWYgSEFWRV9ERUNMX1NFTlNPUlNfR0VUX0FMTF9TVUJGRUFUVVJFUwoKLyogZGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgSVJFX0NBQ0hFIGRlZmluZWQgaW4gPGluZXQvaXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0RFRklORURfSVJFX0NBQ0hFCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgZGV2c3RhdF9nZXRkZXZzKCkgKi8KI3VuZGVmIEhBVkVfREVWU1RBVF9HRVRERVZTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRpcmVudC5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX0RJUkVOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ETEZDTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGRsb3BlbicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0RMT1BFTgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkbWFsbG9jLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ETUFMTE9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZXJyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9FUlJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfRVZBTF9QVgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBFVlBfTURfQ1RYX2NyZWF0ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfQ1JFQVRFCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYEVWUF9NRF9DVFhfZGVzdHJveScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VWUF9NRF9DVFhfREVTVFJPWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBleGVjdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0VYRUNWCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZjbnRsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GQ05UTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZvcmsnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9GT1JLCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9GU1RBQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdhaV9zdHJlcnJvcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dBSV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRhZGRyaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEFERFJJTkZPCgovKiBkZWZpbmUgaWYgeW91IGhhdmUgZ2V0ZGV2cygpICovCiN1bmRlZiBIQVZFX0dFVERFVlMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZHRhYmxlc2l6ZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVERUQUJMRVNJWkUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0ZnNzdGF0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VURlNTVEFUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGdybmFtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUR1JOQU0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aG9zdGJ5bmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVEhPU1RCWU5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0aG9zdG5hbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRIT1NUTkFNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRpcG5vZGVieW5hbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRJUE5PREVCWU5BTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0bG9hZGF2ZycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVExPQURBVkcKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0bW50ZW50JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfR0VUTU5URU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGdldG9wdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfR0VUT1BUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0cGFnZXNpemUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRQQUdFU0laRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRwaWQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRQSUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0cHduYW0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRQV05BTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXR0aW1lb2ZkYXknIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9HRVRUSU1FT0ZEQVkKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0dmZzc3RhdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0dFVFZGU1NUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8Z3JwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9HUlBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBoYXNtbnRvcHQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9IQVNNTlRPUFQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaWZfZnJlZW5hbWVpbmRleCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lGX0ZSRUVOQU1FSU5ERVgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaWZfbmFtZWluZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfTkFNRUlOREVYCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWV0b2luZGV4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfSUZfTkFNRVRPSU5ERVgKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW5ldC9jb21tb24uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lORVRfQ09NTU9OX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW5ldC9pcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5FVF9JUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGluZXQvbWliMi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5FVF9NSUIyX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgaW5pdGdyb3VwcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0lOSVRHUk9VUFMKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGBpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX0lOVE1BWF9UCgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgaW50cHRyX3QnLiAqLwojdW5kZWYgSEFWRV9JTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpbnR0eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYGluX2FkZHJfdCcuICovCiN1bmRlZiBIQVZFX0lOX0FERFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpb2N0bHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0lPQ1RMU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlwaGxwYXBpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9JUEhMUEFQSV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGtpbmZvX2dldF9jcHVzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS0lORk9fR0VUX0NQVVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga25saXN0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS05MSVNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGtyYjVfYXV0aF9jb25fZ2V0c2VuZHN1YmtleScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tSQjVfQVVUSF9DT05fR0VUU0VORFNVQktFWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfS1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBrdm1fZ2V0cHJvYzInIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fR0VUUFJPQzIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3ZtX2dldHByb2NzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfS1ZNX0dFVFBST0NTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9nZXRzd2FwaW5mbycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX0tWTV9HRVRTV0FQSU5GTwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxrdm0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0tWTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGt2bV9vcGVuZmlsZXMnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9LVk1fT1BFTkZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgT3BlblNTTCBsaWJyYXJ5ICgtbGNyeXB0byBvciAtbGVheTMyKS4gKi8KI3VuZGVmIEhBVkVfTElCQ1JZUFRPCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGVsZicgbGlicmFyeSAoLWxlbGYpLiAqLwojdW5kZWYgSEFWRV9MSUJFTEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBga3N0YXQnIGxpYnJhcnkgKC1sa3N0YXQpLiAqLwojdW5kZWYgSEFWRV9MSUJLU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtbGQnIGxpYnJhcnkgKC1sbWxkKS4gKi8KI3VuZGVmIEhBVkVfTElCTUxECgovKiBkZWZpbmUgaWYgeW91IGhhdmUgbGlibm0gKi8KI3VuZGVmIEhBVkVfTElCTk0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbnNsJyBsaWJyYXJ5ICgtbG5zbCkuICovCiN1bmRlZiBIQVZFX0xJQk5TTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaWJwZXJmc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElCUEVSRlNUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwa2NzMTEnIGxpYnJhcnkgKC1scGtjczExKS4gKi8KI3VuZGVmIEhBVkVfTElCUEtDUzExCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJwbScgbGlicmFyeSAoLWxycG0pLiAqLwojdW5kZWYgSEFWRV9MSUJSUE0KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgUlNBZ2x1ZScgbGlicmFyeSAoLWxSU0FnbHVlKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBR0xVRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByc2FyZWYnIGxpYnJhcnkgKC1scnNhcmVmKS4gKi8KI3VuZGVmIEhBVkVfTElCUlNBUkVGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNzaDInIGxpYnJhcnkgKC1sc3NoMikuICovCiN1bmRlZiBIQVZFX0xJQlNTSDIKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3NsJyBsaWJyYXJ5ICgtbHNzbCkuICovCiN1bmRlZiBIQVZFX0xJQlNTTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW1pdHMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTUlUU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2V0aHRvb2wuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xJTlVYX0VUSFRPT0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9oZHJlZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfSERSRUdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC9uZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvcnRuZXRsaW5rLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9MSU5VWF9SVE5FVExJTktfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC90YXNrcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTElOVVhfVEFTS1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX0xPQ0FMRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgbG9uZyBsb25nIGludCcuICovCiN1bmRlZiBIQVZFX0xPTkdfTE9OR19JTlQKCi8qIFNldCBpZiB0aGUgbHBzdGF0IGNvbW1hbmQgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBIQVZFX0xQU1RBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBscmFuZDQ4JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFJBTkQ0OAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsc2VlazY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTFNFRUs2NAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NQUNISU5FX1BBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9wdGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX01BQ0hJTkVfUFRFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFDSElORV9UWVBFU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hbGxvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTUFMTE9DX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NRU1PUllfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG1pYjJfaXBJZlN0YXRzRW50cnlfdCcuICovCiN1bmRlZiBIQVZFX01JQjJfSVBJRlNUQVRTRU5UUllfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta3N0ZW1wJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfTUtTVEVNUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta3RpbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9NS1RJTUUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bW50ZW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NTlRFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtdGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9NVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuICovCiN1bmRlZiBIQVZFX05ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRkYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUREJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9pbjZfcGNiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9JTjZfUENCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvaW42X3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVDZfSU42X1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L2lwNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X0lQNl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni9uZDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X05ENl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDZfZnNtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X0ZTTV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQ2L3RjcDYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0Ni90Y3A2X3RpbWVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUNl9UQ1A2X1RJTUVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldDYvdGNwNl92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVQ2X1RDUDZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pY21wNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JQ01QNl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaWNtcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSUNNUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lmX2V0aGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lGX0VUSEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pbi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fcGNiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lOX1BDQl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvaW5fc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfSU5fU1lTVE1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2luX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JTl9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwNi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUDZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC9pcF9pY21wLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX0lQX0lDTVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L2lwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9JUF9WQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcGlwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUElQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aW5ldC90Y3BfZnNtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1RDUF9GU01fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF90aW1lci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9UQ1BfVElNRVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXRpbmV0L3RjcF92YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX05FVElORVRfVENQX1ZBUl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRJTkVUX1VEUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGluZXQvdWRwX3Zhci5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSU5FVF9VRFBfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0aXB4L2lweC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUSVBYX0lQWF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldGxpbmsvbmV0bGluay5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUTElOS19ORVRMSU5LX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX2FycC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0FSUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZl9kbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfTkVUX0lGX0RMX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfbWliLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfTUlCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L2lmX3R5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfVFlQRVNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxuZXQvaWZfdmFyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfSUZfVkFSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0L3JvdXRlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9ORVRfUk9VVEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYG5mZHNfdCcuICovCiN1bmRlZiBIQVZFX05GRFNfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBubGlzdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX05MSVNUCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG5saXN0NjQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9OTElTVDY0CgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5saXN0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9OTElTVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUgdHlwZSBgb2ZmNjRfdCcuICovCiN1bmRlZiBIQVZFX09GRjY0X1QKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9hZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfQUVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9kZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX09QRU5TU0xfREVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3BlbnNzbC9kaC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9ESF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvZXZwLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PUEVOU1NMX0VWUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG9wZW5zc2wvaG1hYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfT1BFTlNTTF9ITUFDX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8b3NyZWxkYXRlLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9PU1JFTERBVEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwY2kvcGNpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QQ0lfUENJX0gKCi8qIG9uIGFpeCwgaWYgeW91IGhhdmUgcGVyZnN0YXQgKi8KI3VuZGVmIEhBVkVfUEVSRlNUQVQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIGB0aGUgcGVybF9ldmFsX3B2JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUEVSTF9FVkFMX1BWX0xDCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYFBlcmxfZXZhbF9wdicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVl9VQwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwaWNsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9QSUNMX0gKCi8qIGRlZmluZSBpZiB5b3UgaGF2ZSBwa2dpbmZvICovCiN1bmRlZiBIQVZFX1BLR0lORk8KCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cGtnaW5mby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUEtHSU5GT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHBrZ2xvY3MuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BLR0xPQ1NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwb2xsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUE9MTAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwcmVhZDY0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUFJFQUQ2NAoKLyogU2V0IGlmIC9ldGMvcHJpbnRjYXAgZXhpc3RzICovCiN1bmRlZiBIQVZFX1BSSU5UQ0FQCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHB0aHJlYWQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BUSFJFQURfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwd2QuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1BXRF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJhbmQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9SQU5ECgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJhbmRvbScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1JBTkRPTQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWFkZGlyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkVBRERJUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWdjb21wJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUkVHQ09NUAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxyZWdleC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfUkVHRVhfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBycG1HZXRQYXRoJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfUlBNR0VUUEFUSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vaGVhZGVyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SUE1fSEVBREVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL3JwbWZpbGV1dGlsLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SUE1fUlBNRklMRVVUSUxfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxycG0vcnBtbGliLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SUE1fUlBNTElCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cnBtL3JwbXRzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9SUE1fUlBNVFNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZWFyY2guaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NFQVJDSF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlY3VyaXR5L2NyeXB0b2tpLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TRUNVUklUWV9DUllQVE9LSV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbGVjdCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFTEVDVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzZW5zb3JzL3NlbnNvcnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NFTlNPUlNfU0VOU09SU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGVudicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVEVOVgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRnaWQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRHSUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0Z3JvdXBzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUR1JPVVBTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGl0aW1lcicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVElUSU1FUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRsb2NhbGUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRMT0NBTEUKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0bW50ZW50JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0VUTU5URU5UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldHNpZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NFVFNJRAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXR1aWQnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TRVRVSUQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2d0dHkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NHVFRZX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWN0aW9uJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHQUNUSU9OCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2Fscm0nIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TSUdBTFJNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ2Jsb2NrJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHQkxPQ0sKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnaG9sZCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR0hPTEQKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnbmFsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU0lHTkFMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ3NldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NJR1NFVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzbnByaW50ZicgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NOUFJJTlRGCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNvY2tldCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NPQ0tFVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNvY2tsZW5fdCcuICovCiN1bmRlZiBIQVZFX1NPQ0tMRU5fVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHNzaXplX3QnLiAqLwojdW5kZWYgSEFWRV9TU0laRV9UCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0YXRmcycgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUQVRGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdGF0dmZzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RBVFZGUwoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRpbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NURElOVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGxpYi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1RETElCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RpbWUnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVElNRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJjYXNlc3RyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSQ0FTRVNUUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJkdXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJEVVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJFUlJPUgoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TVFJJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY2F0JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENBVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJsY3B5JyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSTENQWQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzdHJuY2FzZWNtcCcgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1NUUk5DQVNFQ01QCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRva19yJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9LX1IKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3RydG9sJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9MCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWwnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TVFJUT1VMCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvdWxsJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1RSVE9VTEwKCi8qIERlZmluZSB0byAxIGlmIGBhdF9uZXh0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBhcnBoZCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9BUlBIRF9BVF9ORVhUCgovKiBEZWZpbmUgdG8gMSBpZiBgd2Vha19rZXknIGlzIG1lbWJlciBvZiBgc3RydWN0IGRlc19rc19zdHJ1Y3QnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfREVTX0tTX1NUUlVDVF9XRUFLX0tFWQoKLyogRGVmaW5lIHRvIDEgaWYgYGRfdHlwZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgZGlyZW50Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0RJUkVOVF9EX1RZUEUKCi8qIERlZmluZSB0byAxIGlmIGBzcGVlZF9oaScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgZXRodG9vbF9jbWQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfRVRIVE9PTF9DTURfU1BFRURfSEkKCi8qIERlZmluZSB0byAxIGlmIGBpZmFfbmV4dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZhZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGQUREUl9JRkFfTkVYVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2FkZHJoZWFkLnRxaF9maXJzdCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfQUREUkhFQURfVFFIX0ZJUlNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYWRkcmxpc3QnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0FERFJMSVNUCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0JBVURSQVRFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfYmF1ZHJhdGUuaWZzX3ZhbHVlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9CQVVEUkFURV9JRlNfVkFMVUUKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pYnl0ZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0lCWVRFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX2ltY2FzdHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX0lNQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9pcWRyb3BzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9JUURST1BTCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfbGFzdGNoYW5nZS50dl9uc2VjJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9MQVNUQ0hBTkdFX1RWX05TRUMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9sYXN0Y2hhbmdlLnR2X3NlYycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfTEFTVENIQU5HRV9UVl9TRUMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9tdHUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX01UVQoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX25vcHJvdG8nIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX05PUFJPVE8KCi8qIERlZmluZSB0byAxIGlmIGBpZl9vYnl0ZXMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09CWVRFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGlmX29tY2FzdHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX09NQ0FTVFMKCi8qIERlZmluZSB0byAxIGlmIGBpZl9zcGVlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaWZuZXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSUZORVRfSUZfU1BFRUQKCi8qIERlZmluZSB0byAxIGlmIGBpZl90eXBlJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpZm5ldCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JRk5FVF9JRl9UWVBFCgovKiBEZWZpbmUgdG8gMSBpZiBgaWZfeG5hbWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlmbmV0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lGTkVUX0lGX1hOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2NhbnRmb3J3YXJkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19DQU5URk9SV0FSRAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19jYW50ZnJhZycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgaXBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX0lQU1RBVF9JUFNfQ0FOVEZSQUcKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZGVsaXZlcmVkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19ERUxJVkVSRUQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ2Ryb3BwZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdEUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2ZyYWdtZW50ZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdNRU5URUQKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfZnJhZ3RpbWVvdXQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX0ZSQUdUSU1FT1VUCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX2xvY2Fsb3V0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19MT0NBTE9VVAoKLyogRGVmaW5lIHRvIDEgaWYgYGlwc19ub3Byb3RvJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBpcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfSVBTVEFUX0lQU19OT1BST1RPCgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX25vcm91dGUnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX05PUk9VVEUKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfb2Ryb3BwZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09EUk9QUEVECgovKiBEZWZpbmUgdG8gMSBpZiBgaXBzX29mcmFnbWVudHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX09GUkFHTUVOVFMKCi8qIERlZmluZSB0byAxIGlmIGBpcHNfcmVhc3NlbWJsZWQnIGlzIG1lbWJlciBvZiBgc3RydWN0IGlwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9JUFNUQVRfSVBTX1JFQVNTRU1CTEVECgovKiBEZWZpbmUgdG8gMSBpZiBgbV9jbGZyZWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IG1ic3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9NQlNUQVRfTV9DTEZSRUUKCi8qIERlZmluZSB0byAxIGlmIGBtX2NsdXN0ZXJzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fQ0xVU1RFUlMKCi8qIERlZmluZSB0byAxIGlmIGBtX21idWZzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBtYnN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTUJTVEFUX01fTUJVRlMKCi8qIERlZmluZSB0byAxIGlmIGBtc2dfY29udHJvbCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgbXNnaGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX01TR0hEUl9NU0dfQ09OVFJPTAoKLyogRGVmaW5lIHRvIDEgaWYgYG5fdmFsdWUnIGlzIG1lbWJlciBvZiBgc3RydWN0IG5saXN0NjQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1Q2NF9OX1ZBTFVFCgovKiBEZWZpbmUgdG8gMSBpZiBgbl92YWx1ZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgbmxpc3QnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfTkxJU1RfTl9WQUxVRQoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2RzdCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX0RTVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X2hhc2gnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9IQVNICgovKiBEZWZpbmUgdG8gMSBpZiBgcnRfbmV4dCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX05FWFQKCi8qIERlZmluZSB0byAxIGlmIGBydF9yZWZjbnQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHJ0ZW50cnknLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfUlRFTlRSWV9SVF9SRUZDTlQKCi8qIERlZmluZSB0byAxIGlmIGBydF91bml0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBydGVudHJ5Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1JURU5UUllfUlRfVU5JVAoKLyogRGVmaW5lIHRvIDEgaWYgYHJ0X3VzZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgcnRlbnRyeScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9SVEVOVFJZX1JUX1VTRQoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3NpZ2FjdGlvbicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc2lnYWN0aW9uJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NJR0FDVElPTl9TQV9TSUdBQ1RJT04KCi8qIERlZmluZSB0byAxIGlmIGBzaW42X3Njb3BlX2lkJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9pbjYnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfSU42X1NJTjZfU0NPUEVfSUQKCi8qIERlZmluZSB0byAxIGlmIGBzYV9sZW4nIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NBX0xFTgoKLyogRGVmaW5lIHRvIDEgaWYgYHNhX3VuaW9uLnNhX2dlbmVyaWMuc2FfZmFtaWx5MicgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QKICAgc29ja2FkZHInLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU0FfVU5JT05fU0FfR0VORVJJQ19TQV9GQU1JTFkyCgovKiBEZWZpbmUgdG8gMSBpZiBgc3NfZmFtaWx5JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NPQ0tBRERSX1NUT1JBR0VfU1NfRkFNSUxZCgovKiBEZWZpbmUgdG8gMSBpZiBgX19zc19mYW1pbHknIGlzIG1lbWJlciBvZiBgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9fX1NTX0ZBTUlMWQoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZmF2YWlsJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0ZnMnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfU1RBVEZTX0ZfRkFWQUlMCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mZnJlZScgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZGUkVFCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9maWxlcycgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3RhdGZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRGU19GX0ZJTEVTCgovKiBEZWZpbmUgdG8gMSBpZiBgZl9mcnNpemUnIGlzIG1lbWJlciBvZiBgc3RydWN0IHN0YXRmcycuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9TVEFURlNfRl9GUlNJWkUKCi8qIERlZmluZSB0byAxIGlmIGBmX2ZpbGVzJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfRl9GSUxFUwoKLyogRGVmaW5lIHRvIDEgaWYgYGZfZnJzaXplJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfRl9GUlNJWkUKCi8qIERlZmluZSB0byAxIGlmIGBtbnRfZGlyJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCBzdGF0dmZzJy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NUQVRWRlNfTU5UX0RJUgoKLyogRGVmaW5lIHRvIDEgaWYgYHN3X25ibGtzZW5hYmxlZCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3Qgc3dkZXZ0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1NXREVWVF9TV19OQkxLU0VOQUJMRUQKCi8qIERlZmluZSB0byAxIGlmIGB0Y3BfcmN2bWVtZHJvcCcgaXMgbWVtYmVyIG9mIGBzdHJ1Y3QgdGNwc3RhdCcuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9UQ1BTVEFUX1RDUF9SQ1ZNRU1EUk9QCgovKiBEZWZpbmUgdG8gMSBpZiBgdG1fZ210b2ZmJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB0bScuICovCiN1bmRlZiBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Rpc2NhcmQnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX0RJU0NBUkQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX2Z1bGxzb2NrJyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19GVUxMU09DSwoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfbm9wb3J0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19OT1BPUlQKCi8qIERlZmluZSB0byAxIGlmIGB1ZHBzX25vcG9ydGJjYXN0JyBpcyBtZW1iZXIgb2YgYHN0cnVjdCB1ZHBzdGF0Jy4gKi8KI3VuZGVmIEhBVkVfU1RSVUNUX1VEUFNUQVRfVURQU19OT1BPUlRCQ0FTVAoKLyogRGVmaW5lIHRvIDEgaWYgYHVkcHNfb3BhY2tldHMnIGlzIG1lbWJlciBvZiBgc3RydWN0IHVkcHN0YXQnLiAqLwojdW5kZWYgSEFWRV9TVFJVQ1RfVURQU1RBVF9VRFBTX09QQUNLRVRTCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5c2NvbmYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9TWVNDT05GCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5c2xvZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTTE9HX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3lzdGVtJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfU1lTVEVNCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9jZGVmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0NERUZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2NvbmYuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19DT05GX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX1NZU19ESVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlza2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRElTS0lPX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2Rpc2tsYWJlbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RJU0tMQUJFTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ka2lvLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfREtJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ka3N0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19ES1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZG1hcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0RNQVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJTEVfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZmlsaW8uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19GSUxJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9maXhwb2ludC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0ZJWFBPSU5UX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZzLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaGFzaGluZy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX0hBU0hJTkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvaW9jdGwuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19JT0NUTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9sb2FkYXZnLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTE9BREFWR19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tYnVmLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTUJVRl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9tbnRlbnQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19NTlRFTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbW50dGFiLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU5UVEFCX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL21vdW50Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfTU9VTlRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvbmRpci5oPiBoZWFkZXIgZmlsZSwgYW5kIGl0IGRlZmluZXMgYERJUicuCiAgICovCiN1bmRlZiBIQVZFX1NZU19ORElSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3BhcmFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BPTExfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcG9vbC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BPT0xfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHJvYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BST0NfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHJvdG9zdy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1BST1RPU1dfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvcHN0YXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19QU1RBVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9xdWV1ZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1FVRVVFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbGVjdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NFTEVDVF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zZW1hLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU0VNQV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zb2NrZXR2YXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TT0NLRVRWQVJfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU09DS0VUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NvY2tpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NPQ0tJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zdGF0ZnMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TVEFURlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdHZmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRWRlNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NUQVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RyZWFtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfU1RSRUFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N3YXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TV0FQX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3N5c2N0bC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU0NUTF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXNnZXQuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNHRVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzbXAuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNNUF9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9zeXN0ZW1jZmcuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19TWVNURU1DRkdfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzdGVtaW5mby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1NZU1RFTUlORk9fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGNwaXBzdGF0cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RDUElQU1RBVFNfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZW91dC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RJTUVPVVRfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGltZXMuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19USU1FU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90aW1lLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVElNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1RZUEVTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Vpby5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VJT19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91bi5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1VOX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3VzZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VU0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19VVFNOQU1FX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Zmcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZGU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy92bW1hYy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfU1lTX1ZNTUFDX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtbWV0ZXIuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTU1FVEVSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVBBUkFNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3Ztc3lzdG0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTVNZU1RNX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3ZtLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9TWVNfVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdm5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1NZU19WTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSA8c3lzL3dhaXQuaD4gdGhhdCBpcyBQT1NJWC4xIGNvbXBhdGlibGUuICovCiN1bmRlZiBIQVZFX1NZU19XQUlUX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGNnZXRhdHRyJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVENHRVRBVFRSCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHRpbWVzJyBmdW5jdGlvbi4gKi8KI3VuZGVmIEhBVkVfVElNRVMKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL2Zmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZGU19GU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy9mcy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX0ZTX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9kaW5vZGUuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfRElOT0RFX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dWZzL3Vmcy9pbm9kZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVUZTX1VGU19JTk9ERV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVmcy91ZnMvcXVvdGEuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VGU19VRlNfUVVPVEFfSAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRtYXhfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRNQVhfVAoKLyogRGVmaW5lIHRvIDEgaWYgdGhlIHN5c3RlbSBoYXMgdGhlIHR5cGUgYHVpbnRwdHJfdCcuICovCiN1bmRlZiBIQVZFX1VJTlRQVFJfVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1bmFtZScgZnVuY3Rpb24uICovCiN1bmRlZiBIQVZFX1VOQU1FCgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVU5JU1REX0gKCi8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBlIGB1bnNpZ25lZCBsb25nIGxvbmcgaW50Jy4gKi8KI3VuZGVmIEhBVkVfVU5TSUdORURfTE9OR19MT05HX0lOVAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1c2xlZXAnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9VU0xFRVAKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRtcHguaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VUTVBYX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dXRzbmFtZS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVVRTTkFNRV9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9VVk1fVVZNX0VYVEVSTl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV2bS91dm1fcGFyYW0uaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1VWTV9VVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS9zd2FwX3BhZ2VyLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9TV0FQX1BBR0VSX0gKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8dm0vdm1fZXh0ZXJuLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9WTV9WTV9FWFRFUk5fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx2bS92bV9wYXJhbS5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfVk1fVk1fUEFSQU1fSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB2c25wcmludGYnIGZ1bmN0aW9uLiAqLwojdW5kZWYgSEFWRV9WU05QUklOVEYKCi8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8d2luZG93cy5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV0lORE9XU19ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2syLmg+IGhlYWRlciBmaWxlLiAqLwojdW5kZWYgSEFWRV9XSU5TT0NLMl9ICgovKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHdpbnNvY2suaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1dJTlNPQ0tfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZS4gKi8KI3VuZGVmIEhBVkVfV1MyVENQSVBfSAoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx4dGkuaD4gaGVhZGVyIGZpbGUuICovCiN1bmRlZiBIQVZFX1hUSV9ICgovKiBsb2NhdGlvbiBvZiBVTklYIGtlcm5lbCAqLwojdW5kZWYgS0VSTkVMX0xPQwoKLyogUGF0aCB0byB0aGUgbHBzdGF0IGNvbW1hbmQgKi8KI3VuZGVmIExQU1RBVF9QQVRICgovKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBzdG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgogICAqLwojdW5kZWYgTFRfT0JKRElSCgovKiBkZWZpbmUgaWYgYWdlbnR4IHRyYW5zcG9ydCBpcyB0byB1c2UgZG9tYWluIHNvY2tldHMgb25seSAqLwojdW5kZWYgTkVUU05NUF9BR0VOVFhfRE9NX1NPQ0tfT05MWQoKLyogVW5peCBkb21haW4gc29ja2V0IGZvciBBZ2VudFggbWFzdGVyLXN1YmFnZW50IGNvbW11bmljYXRpb24gKi8KI3VuZGVmIE5FVFNOTVBfQUdFTlRYX1NPQ0tFVAoKLyogRGVmaW5lIGlmIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb25zIGFyZSB1bnN1cHBvcnRlZCAqLwojdW5kZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCgovKiBzeXNjdGwgd29ya3MgdG8gZ2V0IGJvb3R0aW1lLCBldGMuLi4gKi8KI3VuZGVmIE5FVFNOTVBfQ0FOX1VTRV9TWVNDVEwKCi8qIGNvbmZpZ3VyZSBvcHRpb25zIHNwZWNpZmllZCAqLwojdW5kZWYgTkVUU05NUF9DT05GSUdVUkVfT1BUSU9OUwoKLyogZGVmYXVsdCBsb2NhdGlvbiB0byBsb29rIGZvciBtaWJzIHRvIGxvYWQgdXNpbmcgdGhlIGFib3ZlIHRva2VucyBhbmQvb3IKICAgdGhvc2UgaW4gdGhlIE1JQlMgZW52cmlvbm1lbnQgdmFyaWFibGUgKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCgovKiBkZWZhdWx0IG1pYiBmaWxlcyB0byBsb2FkLCBzcGVjaWZpZWQgYnkgcGF0aC4gKi8KI3VuZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwoKLyogRGVmaW5lIGlmIERFUyBlbmNyeXB0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCgovKiBEZWZpbmUgaWYgTUQ1IGF1dGhlbnRpY2F0aW9uIHNob3VsZCBub3QgYmUgc3VwcG9ydGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUQ1CgovKiBEZWZpbmUgaWYgbWliIGxvYWRpbmcgYW5kIHBhcnNpbmcgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfTUlCX0xPQURJTkcKCi8qIERlZmluZSBpZiBTTk1QIFNFVCBzdXBwb3J0IHNob3VsZCBiZSBkaXNhYmxlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NFVF9TVVBQT1JUCgovKiBEZWZpbmUgaWYgU05NUHYxIGNvZGUgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCAqLwojdW5kZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMQoKLyogRGVmaW5lIGlmIFNOTVB2MmMgY29kZSBzaG91bGQgbm90IGJlIGluY2x1ZGVkICovCiN1bmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYyQwoKLyogRGVmaW5lIGlmIHlvdSBhcmUgZW1iZWRkaW5nIHBlcmwgaW4gdGhlIG1haW4gYWdlbnQuICovCiN1bmRlZiBORVRTTk1QX0VNQkVEREVEX1BFUkwKCi8qIGRlZmluZSBpZiB5b3Ugd2FudCB0byBlbmFibGUgSVB2NiBzdXBwb3J0ICovCiN1bmRlZiBORVRTTk1QX0VOQUJMRV9JUFY2CgovKiBkZWZpbmUgaWYgeW91IHdhbnQgdG8gcmVzdHJpY3QgU01VWCBjb25uZWN0aW9ucyB0byBsb2NhbGhvc3QgYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAoKLyogRGVmaW5lIGlmIHlvdSB3YW50IHRvIGJ1aWxkIE1GRCBtb2R1bGUgcmV3cml0ZXMgKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX01GRF9SRVdSSVRFUwoKLyogZGVmaW5lIGlmIHlvdSB3YW50IHRvIGNvbXBpbGUgc3VwcG9ydCBmb3IgYm90aCBhdXRoZW50aWNhdGlvbiBhbmQgcHJpdmFjeQogICBzdXBwb3J0LiAqLwojdW5kZWYgTkVUU05NUF9FTkFCTEVfU0NBUElfQVVUSFBSSVYKCi8qIHRlc3RpbmcgY29kZSBzZWN0aW9ucy4gKi8KI3VuZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERQoKLyogU2hvdWxkIGV2YWx1YXRlIHRvIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGlmIGRlZmluZWQgKi8KI3VuZGVmIE5FVFNOTVBfRlVOQ1RJT04KCi8qIGlmbmV0IG5lZWRzIHRvIGhhdmUgX0tFUk5FTCBkZWZpbmVkICovCiN1bmRlZiBORVRTTk1QX0lGTkVUX05FRURTX0tFUk5FTAoKLyogaWZuZXQgbmVlZHMgdG8gaGF2ZSBfS0VSTkVMX1NUUlVDVFVSRVMgZGVmaW5lZCAqLwojdW5kZWYgTkVUU05NUF9JRk5FVF9ORUVEU19LRVJORUxfU1RSVUNUVVJFUwoKLyogRGVmaW5lIHRvIHN1cHByZXNzIGluY2x1c2lvbiBvZiBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqLwojdW5kZWYgTkVUU05NUF9OT19ERVBSRUNBVEVEX0ZVTkNUSU9OUwoKLyogSWYgeW91IGRvbid0IHdhbnQgdGhlIGFnZW50IHRvIHJlcG9ydCBvbiB2YXJpYWJsZXMgaXQgZG9lc24ndCBoYXZlIGRhdGEgZm9yCiAgICovCiN1bmRlZiBORVRTTk1QX05PX0RVTU1ZX1ZBTFVFUwoKLyogSWYgd2UgZG9uJ3Qgd2FudCB0byB1c2Uga21lbS4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fS01FTV9VU0FHRQoKLyogSWYgeW91IGRvbid0IGhhdmUgcm9vdCBhY2Nlc3MgZG9uJ3QgZXhpdCB1cG9uIGttZW0gZXJyb3JzICovCiN1bmRlZiBORVRTTk1QX05PX1JPT1RfQUNDRVNTCgovKiB1bWFzayBwZXJtaXNzaW9ucyB0byBzZXQgdXAgcGVyc2lzdGVudCBmaWxlcyB3aXRoICovCiN1bmRlZiBORVRTTk1QX1BFUlNJU1RFTlRfTUFTSwoKLyogU2l6ZSBwcmVmaXggdG8gdXNlIHRvIHByaW50ZiBhIHNpemVfdCBvciBzc2l6ZV90ICovCiN1bmRlZiBORVRTTk1QX1BSSXoKCi8qIERlZmluZSB0byAxIGlmIHlvdSB3YW50IHRvIGJ1aWxkIHdpdGggcmVlbnRyYW50L3RocmVhZGVkIGNvZGUgKGluY29tcGxldGUpLgogICAqLwojdW5kZWYgTkVUU05NUF9SRUVOVFJBTlQKCi8qIGRlZmluZSBpZiB5b3UgZG8gbm90IHdhbnQgc25tcHRyYXBkIHRvIHJlZ2lzdGVyIGFzIGFuIEFnZW50WCBzdWJhZ2VudCAqLwojdW5kZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKCi8qIFBhdHRlcm4gb2YgdGVtcG9yYXJ5IGZpbGVzICovCiN1bmRlZiBORVRTTk1QX1RFTVBfRklMRV9QQVRURVJOCgovKiBkZWZpbmUgaWYgeW91IGFyZSB1c2luZyB0aGUgTUQ1IGNvZGUgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9JTlRFUk5BTF9NRDUKCi8qIERlZmluZSB0aGlzIGlmIHlvdSdyZSB1c2luZyBIZWltZGFsIEtlcmJlcm9zICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19IRUlNREFMCgovKiBEZWZpbmUgdGhpcyBpZiB3ZSdyZSB1c2luZyB0aGUgbmV3IE1JVCBjcnlwdG8gQVBJICovCiN1bmRlZiBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKCi8qIGRlZmluZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBteXNxbCBjb2RlIGZvciBzbm1wdHJhcGQgLi4uICovCiN1bmRlZiBORVRTTk1QX1VTRV9NWVNRTAoKLyogRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgdGhlIGNvZGVTMTEgbGlicmFyeSAuLi4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1BLQ1MxMQoKLyogRGVmaW5lIHRoaXMgaWYgeW91IGhhdmUgbGltX3NlbnNvcnMgdjMgb3IgbGF0ZXIgKi8KI3VuZGVmIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMKCi8qIFNob3VsZCB3ZSBjb21waWxlIHRvIHVzZSBzcGVjaWFsIG9wYXF1ZSB0eXBlczogZmxvYXQsIGRvdWJsZSwgY291bnRlcjY0LAogICBpNjQsIHVpNjQsIHVuaW9uPyAqLwojdW5kZWYgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCgovKiBEZWZpbmUgdG8gdGhlIGFkZHJlc3Mgd2hlcmUgYnVnIHJlcG9ydHMgZm9yIHRoaXMgcGFja2FnZSBzaG91bGQgYmUgc2VudC4gKi8KI2lmbmRlZiBQQUNLQUdFX0JVR1JFUE9SVAojdW5kZWYgUEFDS0FHRV9CVUdSRVBPUlQKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9OQU1FCiN1bmRlZiBQQUNLQUdFX05BTUUKI2VuZGlmCgovKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UuICovCiNpZm5kZWYgUEFDS0FHRV9TVFJJTkcKI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSBvbmUgc3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwojaWZuZGVmIFBBQ0tBR0VfVEFSTkFNRQojdW5kZWYgUEFDS0FHRV9UQVJOQU1FCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gKi8KI2lmbmRlZiBQQUNLQUdFX1ZFUlNJT04KI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgojZW5kaWYKCi8qIENvbW1hbmQgdG8gZ2VuZXJhdGUgcHMgb3V0cHV0LCB0aGUgZmluYWwgY29sdW1uIG11c3QgYmUgdGhlIHByb2Nlc3MgbmFtZQogICB3aXRoT1VUIGFyZ3VtZW50cyAqLwojdW5kZWYgUFNDTUQKCi8qIERlZmluZSBhcyB0aGUgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIChgaW50JyBvciBgdm9pZCcpLiAqLwojdW5kZWYgUkVUU0lHVFlQRQoKLyogZGVmaW5lIHJ0ZW50cnkgdG8gb3J0ZW50cnkgb24gU1lTViBtYWNoaW5lcyAoYWxwaGFzKSAqLwojdW5kZWYgUlRFTlRSWQoKLyogVXNlIEJTRCA0LjQgcm91dGluZyB0YWJsZSBlbnRyaWVzPyAqLwojdW5kZWYgUlRFTlRSWV80XzQKCi8qIFRoZSBzaXplIG9mIGBpbnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UCgovKiBUaGUgc2l6ZSBvZiBgaW50bWF4X3QnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfSU5UTUFYX1QKCi8qIFRoZSBzaXplIG9mIGBsb25nJywgYXMgY29tcHV0ZWQgYnkgc2l6ZW9mLiAqLwojdW5kZWYgU0laRU9GX0xPTkcKCi8qIFRoZSBzaXplIG9mIGBsb25nIGxvbmcnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfTE9OR19MT05HCgovKiBUaGUgc2l6ZSBvZiBgc2hvcnQnLCBhcyBjb21wdXRlZCBieSBzaXplb2YuICovCiN1bmRlZiBTSVpFT0ZfU0hPUlQKCi8qIElmIHVzaW5nIHRoZSBDIGltcGxlbWVudGF0aW9uIG9mIGFsbG9jYSwgZGVmaW5lIGlmIHlvdSBrbm93IHRoZQogICBkaXJlY3Rpb24gb2Ygc3RhY2sgZ3Jvd3RoIGZvciB5b3VyIHN5c3RlbTsgb3RoZXJ3aXNlIGl0IHdpbGwgYmUKICAgYXV0b21hdGljYWxseSBkZWR1Y2VkIGF0IHJ1bnRpbWUuCglTVEFDS19ESVJFQ1RJT04gPiAwID0+IGdyb3dzIHRvd2FyZCBoaWdoZXIgYWRkcmVzc2VzCglTVEFDS19ESVJFQ1RJT04gPCAwID0+IGdyb3dzIHRvd2FyZCBsb3dlciBhZGRyZXNzZXMKCVNUQUNLX0RJUkVDVElPTiA9IDAgPT4gZGlyZWN0aW9uIG9mIGdyb3d0aCB1bmtub3duICovCiN1bmRlZiBTVEFDS19ESVJFQ1RJT04KCi8qIERlZmluZSBpZiBzdGF0ZnMgdGFrZXMgMiBhcmdzIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IGhhcyB0eXBlIHN0cnVjdAogICBmc19kYXRhLiBbVWx0cml4XSAqLwojdW5kZWYgU1RBVF9TVEFURlNfRlNfREFUQQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIEFOU0kgQyBoZWFkZXIgZmlsZXMuICovCiN1bmRlZiBTVERDX0hFQURFUlMKCi8qIGRlZmluZSBpZiBTSU9DR0lGQUREUiBleGlzdHMgaW4gc3lzL2lvY3RsLmggKi8KI3VuZGVmIFNZU19JT0NUTF9IX0hBU19TSU9DR0lGQUREUgoKLyogRGVmaW5lIGlmIHRoZSBUQ1AgdGltZXIgY29uc3RhbnRzIGluIDxuZXRpbmV0L3RjcF90aW1lci5oPiBkZXBlbmQgb24gdGhlCiAgIGludGVnZXIgdmFyaWFibGUgJ2h6Jy4gW0ZyZWVCU0QgNC54XSAqLwojdW5kZWYgVENQVFZfTkVFRFNfSFoKCi8qIERlZmluZSB0byAxIGlmIHlvdSBjYW4gc2FmZWx5IGluY2x1ZGUgYm90aCA8c3lzL3RpbWUuaD4gYW5kIDx0aW1lLmg+LiAqLwojdW5kZWYgVElNRV9XSVRIX1NZU19USU1FCgovKiBXaGVyZSBpcyB0aGUgdW5hbWUgY29tbWFuZCAqLwojdW5kZWYgVU5BTUVQUk9HCgovKiBFbmFibGUgZXh0ZW5zaW9ucyBvbiBBSVggMywgSW50ZXJpeC4gICovCiNpZm5kZWYgX0FMTF9TT1VSQ0UKIyB1bmRlZiBfQUxMX1NPVVJDRQojZW5kaWYKLyogRW5hYmxlIEdOVSBleHRlbnNpb25zIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHRoZW0uICAqLwojaWZuZGVmIF9HTlVfU09VUkNFCiMgdW5kZWYgX0dOVV9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSB0aHJlYWRpbmcgZXh0ZW5zaW9ucyBvbiBTb2xhcmlzLiAgKi8KI2lmbmRlZiBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MKIyB1bmRlZiBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MKI2VuZGlmCi8qIEVuYWJsZSBleHRlbnNpb25zIG9uIEhQIE5vblN0b3AuICAqLwojaWZuZGVmIF9UQU5ERU1fU09VUkNFCiMgdW5kZWYgX1RBTkRFTV9TT1VSQ0UKI2VuZGlmCi8qIEVuYWJsZSBnZW5lcmFsIGV4dGVuc2lvbnMgb24gU29sYXJpcy4gICovCiNpZm5kZWYgX19FWFRFTlNJT05TX18KIyB1bmRlZiBfX0VYVEVOU0lPTlNfXwojZW5kaWYKCgovKiBEZWZpbmUgV09SRFNfQklHRU5ESUFOIHRvIDEgaWYgeW91ciBwcm9jZXNzb3Igc3RvcmVzIHdvcmRzIHdpdGggdGhlIG1vc3QKICAgc2lnbmlmaWNhbnQgYnl0ZSBmaXJzdCAobGlrZSBNb3Rvcm9sYSBhbmQgU1BBUkMsIHVubGlrZSBJbnRlbCkuICovCiNpZiBkZWZpbmVkIEFDX0FQUExFX1VOSVZFUlNBTF9CVUlMRAojIGlmIGRlZmluZWQgX19CSUdfRU5ESUFOX18KIyAgZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCiMgZW5kaWYKI2Vsc2UKIyBpZm5kZWYgV09SRFNfQklHRU5ESUFOCiMgIHVuZGVmIFdPUkRTX0JJR0VORElBTgojIGVuZGlmCiNlbmRpZgoKLyogRGVmaW5lIHRvIDEgaWYgb24gTUlOSVguICovCiN1bmRlZiBfTUlOSVgKCi8qIERlZmluZSB0byAyIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgcHJvdmlkZSBQT1NJWC4xIGZlYXR1cmVzIGV4Y2VwdCB3aXRoCiAgIHRoaXMgZGVmaW5lZC4gKi8KI3VuZGVmIF9QT1NJWF8xX1NPVVJDRQoKLyogRGVmaW5lIHRvIDEgaWYgeW91IG5lZWQgdG8gaW4gb3JkZXIgZm9yIGBzdGF0JyBhbmQgb3RoZXIgdGhpbmdzIHRvIHdvcmsuICovCiN1bmRlZiBfUE9TSVhfU09VUkNFCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgUlBNIDQuNiBvciBuZXdlciB0byB0dXJuIG9uIGxlZ2FjeSBBUEkgKi8KI3VuZGVmIF9SUE1fNF80X0NPTVBBVAoKLyogRGVmaW5lIGZvciBTb2xhcmlzIDIuNS4xIHNvIHRoZSB1aW50MzJfdCB0eXBlZGVmIGZyb20gPHN5cy9zeW5jaC5oPiwKICAgPHB0aHJlYWQuaD4sIG9yIDxzZW1hcGhvcmUuaD4gaXMgbm90IHVzZWQuIElmIHRoZSB0eXBlZGVmIHdlcmUgYWxsb3dlZCwgdGhlCiAgICNkZWZpbmUgYmVsb3cgd291bGQgY2F1c2UgYSBzeW50YXggZXJyb3IuICovCiN1bmRlZiBfVUlOVDMyX1QKCi8qIERlZmluZSBmb3IgU29sYXJpcyAyLjUuMSBzbyB0aGUgdWludDY0X3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQ2NF9UCgovKiBEZWZpbmUgZm9yIFNvbGFyaXMgMi41LjEgc28gdGhlIHVpbnQ4X3QgdHlwZWRlZiBmcm9tIDxzeXMvc3luY2guaD4sCiAgIDxwdGhyZWFkLmg+LCBvciA8c2VtYXBob3JlLmg+IGlzIG5vdCB1c2VkLiBJZiB0aGUgdHlwZWRlZiB3ZXJlIGFsbG93ZWQsIHRoZQogICAjZGVmaW5lIGJlbG93IHdvdWxkIGNhdXNlIGEgc3ludGF4IGVycm9yLiAqLwojdW5kZWYgX1VJTlQ4X1QKCi8qIERlZmluZSB0byBlbXB0eSBpZiBgY29uc3QnIGRvZXMgbm90IGNvbmZvcm0gdG8gQU5TSSBDLiAqLwojdW5kZWYgY29uc3QKCi8qIERlZmluZSB0byBgX19pbmxpbmVfXycgb3IgYF9faW5saW5lJyBpZiB0aGF0J3Mgd2hhdCB0aGUgQyBjb21waWxlcgogICBjYWxscyBpdCwgb3IgdG8gbm90aGluZyBpZiAnaW5saW5lJyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIGFueSBuYW1lLiAgKi8KI2lmbmRlZiBfX2NwbHVzcGx1cwojdW5kZWYgaW5saW5lCiNlbmRpZgoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDE2IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIGludDE2X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAzMiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiBpbnQzMl90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYSBzaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgNjQgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50NjRfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGEgc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDggYml0cyBpZiBzdWNoCiAgIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50OF90CgovKiBEZWZpbmUgdG8gdGhlIHdpZGVzdCBzaWduZWQgaW50ZWdlciB0eXBlIGlmIDxzdGRpbnQuaD4gYW5kIDxpbnR0eXBlcy5oPiBkbwogICBub3QgZGVmaW5lLiAqLwojdW5kZWYgaW50bWF4X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhIHNpZ25lZCBpbnRlZ2VyIHR5cGUgd2lkZSBlbm91Z2ggdG8gaG9sZCBhIHBvaW50ZXIsCiAgIGlmIHN1Y2ggYSB0eXBlIGV4aXN0cywgYW5kIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgaW50cHRyX3QKCi8qIERlZmluZSB0byBgbG9uZyBpbnQnIGlmIDxzeXMvdHlwZXMuaD4gZG9lcyBub3QgZGVmaW5lLiAqLwojdW5kZWYgb2ZmX3QKCi8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KI3VuZGVmIHBpZF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgMTYgYml0cyBpZgogICBzdWNoIGEgdHlwZSBleGlzdHMgYW5kIHRoZSBzdGFuZGFyZCBpbmNsdWRlcyBkbyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludDE2X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2Ygd2lkdGggZXhhY3RseSAzMiBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50MzJfdAoKLyogRGVmaW5lIHRvIHRoZSB0eXBlIG9mIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSBvZiB3aWR0aCBleGFjdGx5IDY0IGJpdHMgaWYKICAgc3VjaCBhIHR5cGUgZXhpc3RzIGFuZCB0aGUgc3RhbmRhcmQgaW5jbHVkZXMgZG8gbm90IGRlZmluZSBpdC4gKi8KI3VuZGVmIHVpbnQ2NF90CgovKiBEZWZpbmUgdG8gdGhlIHR5cGUgb2YgYW4gdW5zaWduZWQgaW50ZWdlciB0eXBlIG9mIHdpZHRoIGV4YWN0bHkgOCBiaXRzIGlmCiAgIHN1Y2ggYSB0eXBlIGV4aXN0cyBhbmQgdGhlIHN0YW5kYXJkIGluY2x1ZGVzIGRvIG5vdCBkZWZpbmUgaXQuICovCiN1bmRlZiB1aW50OF90CgovKiBEZWZpbmUgdG8gdGhlIHdpZGVzdCB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgaWYgPHN0ZGludC5oPiBhbmQgPGludHR5cGVzLmg+CiAgIGRvIG5vdCBkZWZpbmUuICovCiN1bmRlZiB1aW50bWF4X3QKCi8qIERlZmluZSB0byB0aGUgdHlwZSBvZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgd2lkZSBlbm91Z2ggdG8gaG9sZCBhCiAgIHBvaW50ZXIsIGlmIHN1Y2ggYSB0eXBlIGV4aXN0cywgYW5kIGlmIHRoZSBzeXN0ZW0gZG9lcyBub3QgZGVmaW5lIGl0LiAqLwojdW5kZWYgdWludHB0cl90CgovKiBlbmQgb2YgZGVmaW5pdGlvbnMgYWRkZWQgYnkgY29uZmlndXJlIG9uLXRoZS1mbHkgKi8KCi8qIElmIHlvdSBoYXZlIG9wZW5zc2wgMC45Ljcgb3IgYWJvdmUsIHlvdSBsaWtlbHkgaGF2ZSBBRVMgc3VwcG9ydC4gKi8KI3VuZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKI2lmIGRlZmluZWQoTkVUU05NUF9VU0VfT1BFTlNTTCkgJiYgZGVmaW5lZChIQVZFX09QRU5TU0xfQUVTX0gpICYmIGRlZmluZWQoSEFWRV9BRVNfQ0ZCMTI4X0VOQ1JZUFQpCiNkZWZpbmUgSEFWRV9BRVMgMQojZW5kaWYKCi8qIGRlZmluZSByYW5kb20gZnVuY3Rpb25zICovCgojaWZuZGVmIEhBVkVfUkFORE9NCiNpZmRlZiBIQVZFX0xSQU5ENDgKI2RlZmluZSByYW5kb20gbHJhbmQ0OAojZGVmaW5lIHNyYW5kb20ocykgc3JhbmQ0OChzKQojZWxzZQojaWZkZWYgSEFWRV9SQU5ECiNkZWZpbmUgcmFuZG9tIHJhbmQKI2RlZmluZSBzcmFuZG9tKHMpIHNyYW5kKHMpCiNlbmRpZgojZW5kaWYKI2VuZGlmCgovKiBkZWZpbmUgc2lnbmFsIGlmIERORSAqLwoKI2lmbmRlZiBIQVZFX1NJR05BTAojaWZkZWYgSEFWRV9TSUdTRVQKI2RlZmluZSBzaWduYWwoYSxiKSBzaWdzZXQoYSxiKQojZW5kaWYKI2VuZGlmCgojaWZkZWYgSEFWRV9ETUFMTE9DX0gKI2RlZmluZSBETUFMTE9DX0ZVTkNfQ0hFQ0sKI2VuZGlmCgojZW5kaWYgLyogTkVUU05NUF9OT19BVVRPQ09ORl9ERUZJTklUSU9OUyAqLwoKCgoKLyogKioqKioqKioqIE5FVFNOTVBfTUFSS19CRUdJTl9DTEVBTl9OQU1FU1BBQ0UgKioqKioqKioqICovCi8qIAogKiBwdXQgYWxsIG5ldyBuZXQtc25tcC1zcGVjaWZpYyBkZWZpbml0aW9ucyBoZXJlCiAqCiAqIGFsbCBkZWZpbml0aW9ucyBNVVNUIGhhdmUgYSBORVRTTk1QXyBwcmVmaXgKICoKICovCgovKiBEZWZhdWx0IChTTk1QKSB2ZXJzaW9uIG51bWJlciBmb3IgdGhlIHRvb2xzIHRvIHVzZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04gMwoKLyogZG9uJ3QgY2hhbmdlIHRoZXNlIHZhbHVlcyEgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMSAgICAgIDB4QUFBQSAgICAgICAvKiByZWFkYWJsZSBieSBhbnlvbmUgKi8KI2RlZmluZSBORVRTTk1QX1NOTVBWMkFOWSAgIDB4QTAwMCAgICAgICAvKiBWMiBBbnkgdHlwZSAoaW5jbHVkZXMgTm9BdXRoKSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUFYyQVVUSCAgMHg4MDAwICAgICAgIC8qIFYyIEF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMgb25seSAqLwoKLyogZGVmYXVsdCBsaXN0IG9mIG1pYnMgdG8gbG9hZCAqLwojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9NSUJTICJJUC1NSUI6SUYtTUlCOlRDUC1NSUI6VURQLU1JQjpTTk1QdjItTUlCOlJGQzEyMTMtTUlCIgoKLyogZGVidWdnaW5nIHN0dWZmICovCi8qIGlmIGRlZmluZWQsIHdlIG9wdGltaXplIHRoZSBjb2RlIHRvIGV4Y2x1ZGUgYWxsIGRlYnVnZ2luZyBjYWxscy4gKi8KI3VuZGVmIE5FVFNOTVBfTk9fREVCVUdHSU5HCi8qIGlnbm9yZSB0aGUgLUQgZmxhZyBhbmQgYWx3YXlzIHByaW50IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiAqLwojZGVmaW5lIE5FVFNOTVBfQUxXQVlTX0RFQlVHIDAKCi8qIHJldmVyc2UgZW5jb2RpbmcgQkVSIHBhY2tldHMgaXMgYm90aCBmYXN0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IGluIHNwYWNlLiAqLwojZGVmaW5lIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcgICAgICAgMQojZGVmaW5lIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04gMSAvKiAxID0gcmV2ZXJzZSwgMCA9IGZvcndhcmRzICovCgovKiBQRVJTSVNURU5UX0RJUkVDVE9SWTogSWYgZGVmaW5lZCwgdGhlIGxpYnJhcnkgaXMgY2FwYWJpbGUgb2Ygc2F2aW5nCiAgIHBlcnNpc2FudCBpbmZvcm1hdGlvbiB0byB0aGlzIGRpcmVjdG9yeSBpbiB0aGUgZm9ybSBvZiBjb25maWd1cmF0aW9uCiAgIGxpbmVzOiBQRVJTSVNURU5UX0RJUkVDVE9SWS9OQU1FLnBlcnNpc3RlbnQuY29uZiAqLwojZGVmaW5lIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkgIi92YXIvc25tcCIKCi8qIEFHRU5UX0RJUkVDVE9SWV9NT0RFOiB0aGUgbW9kZSB0aGUgYWdlbnRzIHNob3VsZCB1c2UgdG8gY3JlYXRlCiAgIGRpcmVjdG9yaWVzIHdpdGguIFNpbmNlIHRoZSBkYXRhIHN0b3JlZCBoZXJlIGlzIHByb2JhYmx5IHNlbnNpdGl2ZSwgaXQKICAgcHJvYmFibHkgc2hvdWxkIGJlIHJlYWQtb25seSBieSByb290L2FkbWluaXN0cmF0b3IuICovCiNkZWZpbmUgTkVUU05NUF9BR0VOVF9ESVJFQ1RPUllfTU9ERSAwNzAwCgovKiBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTOgogKiAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwZXJzaXN0ZW50IGJhY2t1cHMgdGhlIGxpYnJhcnkgd2lsbCB0cnkgdG8KICogICByZWFkIGZyb20gdGhlIHBlcnNpc3RlbnQgY2FjaGUgZGlyZWN0b3J5LiAgSWYgYW4gYXBwbGljYXRpb24gZmFpbHMgdG8KICogICBjbG9zZSBkb3duIHN1Y2Nlc3NmdWxseSBtb3JlIHRoYW4gdGhpcyBudW1iZXIgb2YgdGltZXMsIGRhdGEgd2lsbCBiZSBsb3N0LgogKi8KI2RlZmluZSBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMgMTAKCi8qIGRlZmluZSB0aGUgc3lzdGVtIHR5cGUgaW5jbHVkZSBmaWxlIGhlcmUgKi8KI2RlZmluZSBORVRTTk1QX1NZU1RFTV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg+CgovKiBkZWZpbmUgdGhlIG1hY2hpbmUgKGNwdSkgdHlwZSBpbmNsdWRlIGZpbGUgaGVyZSAqLwojZGVmaW5lIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUgPG5ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oPgoKLyogZGVmaW5lIHRoZSBVRFAgYnVmZmVyIGRlZmF1bHRzIHVuZGVmaW5lZCBtZWFucyB1c2UgdGhlIE9TIGJ1ZmZlcnMKICogYnkgZGVmYXVsdCAqLwojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX1NFUlZFUl9SRUNWX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9TRU5EX0JVRgojdW5kZWYgTkVUU05NUF9ERUZBVUxUX0NMSUVOVF9SRUNWX0JVRgoKLyogbmV0LXNubXAncyBtYWpvciBwYXRoIG5hbWVzICovCiN1bmRlZiBTTk1QTElCUEFUSAojdW5kZWYgU05NUFNIQVJFUEFUSAojdW5kZWYgU05NUENPTkZQQVRICiN1bmRlZiBTTk1QRExNT0RQQVRICgovKiBORVRTTk1QX0xPR0ZJTEU6ICBJZiBkZWZpbmVkIGl0IGNsb3NlcyBzdGRvdXQvZXJyL2luIGFuZCBvcGVucyB0aGlzIGluIAogICBvdXQvZXJyJ3MgcGxhY2UuICAoc3RkaW4gaXMgY2xvc2VkIHNvIHRoYXQgc2ggc2NyaXB0cyB3b24ndCB3YWl0IGZvciBpdCkgKi8KI3VuZGVmIE5FVFNOTVBfTE9HRklMRQoKLyogZGVmYXVsdCBzeXN0ZW0gY29udGFjdCAqLwojdW5kZWYgTkVUU05NUF9TWVNfQ09OVEFDVAoKLyogc3lzdGVtIGxvY2F0aW9uICovCiN1bmRlZiBORVRTTk1QX1NZU19MT0MKCi8qIFVzZSBsaWJ3cmFwIHRvIGhhbmRsZSBhbGxvdy9kZW55IGhvc3RzPyAqLwojdW5kZWYgTkVUU05NUF9VU0VfTElCV1JBUAoKLyogTWliLTIgdHJlZSBJbmZvICovCi8qIFRoZXNlIGFyZSB0aGUgc3lzdGVtIGluZm9ybWF0aW9uIHZhcmlhYmxlcy4gKi8KCiNkZWZpbmUgTkVUU05NUF9WRVJTX0RFU0MgICAidW5rbm93biIgICAgICAgICAgICAgLyogb3ZlcnJpZGRlbiBhdCBydW4gdGltZSAqLwojZGVmaW5lIE5FVFNOTVBfU1lTX05BTUUgICAgInVua25vd24iICAgICAgICAgICAgIC8qIG92ZXJyaWRkZW4gYXQgcnVuIHRpbWUgKi8KCi8qIGNvbW1lbnQgb3V0IHRoZSBzZWNvbmQgZGVmaW5lIHRvIHR1cm4gb2ZmIGZ1bmN0aW9uYWxpdHkgZm9yIGFueSBvZgogICB0aGVzZTogKFNlZSBSRUFETUUgZm9yIGRldGFpbHMpICovCgovKiAgIHByb2MgUFJPQ0VTU05BTUUgW01BWF0gW01JTl0gKi8KI2RlZmluZSBORVRTTk1QX1BST0NNSUJOVU0gMgoKLyogICBleGVjL3NoZWxsIE5BTUUgQ09NTUFORCAgICAgICovCiNkZWZpbmUgTkVUU05NUF9TSEVMTE1JQk5VTSA4CgovKiAgIHN3YXAgTUlOICAgICAgICAgICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX01FTU1JQk5VTSA0CgovKiAgIGRpc2sgRElTSyBNSU5TSVpFICAgICAgICAgICAgKi8KI2RlZmluZSBORVRTTk1QX0RJU0tNSUJOVU0gOQoKLyogICBsb2FkIDEgNSAxNSAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgTkVUU05NUF9MT0FEQVZFTUlCTlVNIDEwCgovKiB3aGljaCB2ZXJzaW9uIGFyZSB5b3UgdXNpbmc/IFRoaXMgbWlibG9jIHdpbGwgdGVsbCB5b3UgKi8KI2RlZmluZSBORVRTTk1QX1ZFUlNJT05NSUJOVU0gMTAwCgovKiBSZXBvcnRzIGVycm9ycyB0aGUgYWdlbnQgcnVucyBpbnRvICovCi8qICh0eXBpY2FsbHkgaXRzICJjYW4ndCBmb3JrLCBubyBtZW0iIHByb2JsZW1zKSAqLwojZGVmaW5lIE5FVFNOTVBfRVJST1JNSUJOVU0gMTAxCgovKiBUaGUgc3ViIGlkIG9mIEVYVEVOU0lCTEVNSUIgcmV0dXJuZWQgdG8gcXVlcmllcyBvZgogICAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zeXN0ZW0uc3lzT2JqZWN0SUQuMCAqLwojZGVmaW5lIE5FVFNOTVBfQUdFTlRJRCAyNTAKCi8qIFRoaXMgSUQgaXMgcmV0dXJuZWQgYWZ0ZXIgdGhlIEFHRU5USUQgYWJvdmUuICBJRSwgdGhlIHJlc3VsdGluZwogICB2YWx1ZSByZXR1cm5lZCBieSBhIHF1ZXJ5IHRvIHN5c09iamVjdElEIGlzCiAgIEVYVEVOU0lCTEVNSUIuQUdFTlRJRC4/Pz8sIHdoZXJlID8/PyBpcyBkZWZpbmVkIGJlbG93IGJ5IE9TVFlQRSAqLwoKI2RlZmluZSBORVRTTk1QX0hQVVg5SUQgMQojZGVmaW5lIE5FVFNOTVBfU1VOT1M0SUQgMiAKI2RlZmluZSBORVRTTk1QX1NPTEFSSVNJRCAzCiNkZWZpbmUgTkVUU05NUF9PU0ZJRCA0CiNkZWZpbmUgTkVUU05NUF9VTFRSSVhJRCA1CiNkZWZpbmUgTkVUU05NUF9IUFVYMTBJRCA2CiNkZWZpbmUgTkVUU05NUF9ORVRCU0QxSUQgNwojZGVmaW5lIE5FVFNOTVBfRlJFRUJTRElEIDgKI2RlZmluZSBORVRTTk1QX0lSSVhJRCA5CiNkZWZpbmUgTkVUU05NUF9MSU5VWElEIDEwCiNkZWZpbmUgTkVUU05NUF9CU0RJSUQgMTEKI2RlZmluZSBORVRTTk1QX09QRU5CU0RJRCAxMgojZGVmaW5lIE5FVFNOTVBfV0lOMzJJRCAxMwojZGVmaW5lIE5FVFNOTVBfSFBVWDExSUQgMTQKI2RlZmluZSBORVRTTk1QX0FJWElEIDE1CiNkZWZpbmUgTkVUU05NUF9NQUNPU1hJRCAxNgojZGVmaW5lIE5FVFNOTVBfRFJBR09ORkxZSUQgMTcKI2RlZmluZSBORVRTTk1QX1VOS05PV05JRCAyNTUKCiNpZmRlZiBocHV4OQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDlJRAojZW5kaWYKI2lmZGVmIGhwdXgxMAojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfSFBVWDEwSUQKI2VuZGlmCiNpZmRlZiBocHV4MTEKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0hQVVgxMUlECiNlbmRpZgojaWZkZWYgc3Vub3M0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TVU5PUzRJRAojZW5kaWYKI2lmZGVmIHNvbGFyaXMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9TT0xBUklTSUQKI2VuZGlmCiNpZiBkZWZpbmVkKG9zZjMpIHx8IGRlZmluZWQob3NmNCkgfHwgZGVmaW5lZChvc2Y1KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfT1NGSUQKI2VuZGlmCiNpZmRlZiB1bHRyaXg0CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9VTFRSSVhJRAojZW5kaWYKI2lmIGRlZmluZWQobmV0YnNkMSkgfHwgZGVmaW5lZChuZXRic2QyKQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTkVUQlNEMUlECiNlbmRpZgojaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0ZSRUVCU0RJRAojZW5kaWYKI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0RSQUdPTkZMWUlECiNlbmRpZgojaWYgZGVmaW5lZChpcml4NikgfHwgZGVmaW5lZChpcml4NSkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0lSSVhJRAojZW5kaWYKI2lmZGVmIGxpbnV4CiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9MSU5VWElECiNlbmRpZgojaWYgZGVmaW5lZChic2RpMikgfHwgZGVmaW5lZChic2RpMykgfHwgZGVmaW5lZChic2RpNCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX0JTRElJRAojZW5kaWYKI2lmIGRlZmluZWQob3BlbmJzZCkKI2RlZmluZSBORVRTTk1QX09TVFlQRSBORVRTTk1QX09QRU5CU0RJRAojZW5kaWYKI2lmZGVmIFdJTjMyCiNkZWZpbmUgTkVUU05NUF9PU1RZUEUgTkVUU05NUF9XSU4zMklECiNlbmRpZgojaWYgZGVmaW5lZChhaXgzKSB8fCBkZWZpbmVkKGFpeDQpIHx8IGRlZmluZWQoYWl4NSkgfHwgZGVmaW5lZChhaXg2KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfQUlYSUQKI2VuZGlmCiNpZiBkZWZpbmVkKGRhcndpbikgJiYgKGRhcndpbiA+PSA4KQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfTUFDT1NYSUQKI2VuZGlmCi8qIHVua25vd24gKi8KI2lmbmRlZiBORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfT1NUWVBFIE5FVFNOTVBfVU5LTk9XTklECiNlbmRpZgoKLyogVGhlIGVudGVycHJpc2UgbnVtYmVyIGhhcyBiZWVuIGFzc2lnbmVkIGJ5IHRoZSBJQU5BIGdyb3VwLiAgICovCi8qIE9wdGlvbmFsbHksIHRoaXMgbWF5IHBvaW50IHRvIHRoZSBsb2NhdGlvbiBpbiB0aGUgdHJlZSB5b3VyICAqLwovKiBjb21wYW55L29yZ2FuaXphdGlvbiBoYXMgYmVlbiBhbGxvY2F0ZWQuICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhlIGFzc2lnbmVkIGVudGVycHJpc2UgbnVtYmVyIGZvciB0aGUgTkVUX1NOTVAgTUlCIG1vZHVsZXMuICovCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX09JRAkJCTgwNzIKI2RlZmluZSBORVRTTk1QX0VOVEVSUFJJU0VfTUlCCQkJMSwzLDYsMSw0LDEsODA3MgojZGVmaW5lIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCCQkxLjMuNi4xLjQuMS44MDcyCiNkZWZpbmUgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RICTcKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igc3lzT2JqZWN0SUQuICovCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fTUlCCQkxLDMsNiwxLDQsMSw4MDcyLDMsMixORVRTTk1QX09TVFlQRQojZGVmaW5lIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuMy4yLk5FVFNOTVBfT1NUWVBFCiNkZWZpbmUgTkVUU05NUF9TWVNURU1fRE9UX01JQl9MRU5HVEgJMTAKCi8qIFRoZSBhc3NpZ25lZCBlbnRlcnByaXNlIG51bWJlciBmb3Igbm90aWZpY2F0aW9ucy4gKi8KI2RlZmluZSBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCTEsMyw2LDEsNCwxLDgwNzIsNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIuNAojZGVmaW5lIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUJfTEVOR1RICTgKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSB1Y2RhdmlzIG1pYiB0cmVlLiAgSXQgc2hvdWxkbid0IGJlCiAgIGNoYW5nZWQsIGFzIHRoZSBwbGFjZXMgaXQgaXMgdXNlZCBhcmUgZXhwZWN0ZWQgdG8gYmUgY29uc3RhbnQKICAgdmFsdWVzIG9yIGFyZSBkaXJlY3RseSB0aWVkIHRvIHRoZSBVQ0QtU05NUC1NSUIuICovCiNkZWZpbmUgTkVUU05NUF9VQ0RBVklTX09JRAkJMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19NSUIJCTEsMyw2LDEsNCwxLDIwMjEKI2RlZmluZSBORVRTTk1QX1VDREFWSVNfRE9UX01JQgkJMS4zLjYuMS40LjEuMjAyMQojZGVmaW5lIE5FVFNOTVBfVUNEQVZJU19ET1RfTUlCX0xFTkdUSAk3CgovKiBob3cgbG9uZyB0byB3YWl0IChzZWNvbmRzKSBmb3IgZXJyb3IgcXVlcnlzIGJlZm9yZSByZXNldGluZyB0aGUgZXJyb3IgdHJhcC4qLwojZGVmaW5lIE5FVFNOTVBfRVJST1JUSU1FTEVOR1RIIDYwMCAKCi8qIEV4ZWMgY29tbWFuZCB0byBmaXggUFJPQyBwcm9ibGVtcyAqLwovKiAlcyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBwcm9jZXNzIG5hbWUgaW4gZXJyb3IgKi8KCi8qICNkZWZpbmUgTkVUU05NUF9QUk9DRklYQ01EICIvdXNyL2Jpbi9wZXJsIC9sb2NhbC9zY3JpcHRzL2ZpeHByb2MgJXMiICovCgovKiBFeGVjIGNvbW1hbmQgdG8gZml4IEVYRUMgcHJvYmxlbXMgKi8KLyogJXMgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUgZXhlYy9zY3JpcHQgbmFtZSBpbiBlcnJvciAqLwoKLyogI2RlZmluZSBORVRTTk1QX0VYRUNGSVhDTUQgIi91c3IvYmluL3BlcmwgL2xvY2FsL3NjcmlwdHMvZml4cHJvYyAlcyIgKi8KCi8qIFNob3VsZCBleGVjIG91dHB1dCBDYXNoaW5nIGJlIHVzZWQgKHNwZWVkcyB1cCB0aGluZ3MgZ3JlYXRseSksIGFuZAogICBpZiBzbywgQWZ0ZXIgaG93IG1hbnkgc2Vjb25kcyBzaG91bGQgdGhlIGNhY2hlIHJlLW5ld2VkPyAgTm90ZToKICAgRG9uJ3QgZGVmaW5lIENBU0hFVElNRSB0byBkaXNhYmxlIGNhc2hpbmcgY29tcGxldGVseSAqLwoKI2RlZmluZSBORVRTTk1QX0VYQ0FDSEVUSU1FIDMwCiNkZWZpbmUgTkVUU05NUF9DQUNIRUZJTEUgIi5zbm1wLWV4ZWMtY2FjaGUiCiNkZWZpbmUgTkVUU05NUF9NQVhDQUNIRVNJWkUgKDE1MDAqODApICAgLyogcm91Z2hseSAxNTAwIGxpbmVzIG1heCAqLwoKLyogbWlzYyBkZWZhdWx0cyAqLwoKLyogZGVmYXVsdCBvZiAxMDAgbWVnIG1pbmltdW0gaWYgdGhlIG1pbmltdW0gc2l6ZSBpcyBub3Qgc3BlY2lmaWVkIGluCiAgIHRoZSBjb25maWcgZmlsZSAqLwojZGVmaW5lIE5FVFNOTVBfREVGRElTS01JTklNVU1TUEFDRSAxMDAwMDAKCi8qIGRlZmF1bHQgbWF4aW11bSBsb2FkIGF2ZXJhZ2UgYmVmb3JlIGVycm9yICovCiNkZWZpbmUgTkVUU05NUF9ERUZNQVhMT0FEQVZFIDEyLjAKCi8qIG1heCB0aW1lcyB0byBsb29wIHJlYWRpbmcgb3V0cHV0IGZyb20gZXhlY3MuICovCi8qIEJlY2F1c2Ugb2Ygc2xlZXAoMSlzLCB0aGlzIHdpbGwgYWxzbyBiZSB0aW1lIHRvIHdhaXQgKGluIHNlY29uZHMpIGZvciBleGVjCiAgIHRvIGZpbmlzaCAqLwojZGVmaW5lIE5FVFNOTVBfTUFYUkVBRENPVU5UIDEwMAoKLyogU2V0IGlmIHNubXBnZXRzIHNob3VsZCBibG9jayBhbmQgbmV2ZXIgdGltZW91dCAqLwovKiBUaGUgb3JpZ2luYWwgQ01VIGNvZGUgaGFkIHRoaXMgaGFyZGNvZGVkIGFzID0gMSAqLwojZGVmaW5lIE5FVFNOTVBfU05NUEJMT0NLIDEKCi8qIEhvdyBsb25nIHRvIHdhaXQgYmVmb3JlIHJlc3RhcnRpbmcgdGhlIGFnZW50IGFmdGVyIGEgc25tcHNldCB0bwogICBFWFRFTlNJQkxFTUlCLlZFUlNJT05NSUJOVU0uVkVSUkVTVEFSVEFHRU5ULiAgVGhpcyBpcwogICBuZWNlc3NhcnkgdG8gZmluaXNoIHRoZSBzbm1wc2V0IHJlcGx5IGJlZm9yZSByZXN0YXJ0aW5nLiAqLwojZGVmaW5lIE5FVFNOTVBfUkVTVEFSVFNMRUVQIDUKCi8qIFVOZGVmaW5lIHRvIGFsbG93IHNwZWNpZnlpbmcgemVyby1sZW5ndGggY29tbXVuaXR5IHN0cmluZyAqLwovKiAjZGVmaW5lIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgMSAqLwoKLyogTnVtYmVyIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIHN0b3JlICovCiNkZWZpbmUgTkVUU05NUF9OVU1fQ09NTVVOSVRJRVMJNQoKLyogaW50ZXJuYWwgZGVmaW5lICovCiNkZWZpbmUgTkVUU05NUF9MQVNURklFTEQgLTEKCi8qICBQbHVnZ2FibGUgdHJhbnNwb3J0cy4gICovCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBVRFAvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSAiY2FsbGJhY2siIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVAgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFVuaXggdHJhbnNwb3J0IGRvbWFpbgogICAgKGEuay5hLiAibG9jYWwgSVBDIikgaXMgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VOSVhfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBBQUw1IFBWQyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUFMNVBWQ19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIElQWCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgoKLyogIFRoaXMgaXMgZGVmaW5lZCBpZiBzdXBwb3J0IGZvciB0aGUgVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1VEUElQVjZfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfVENQSVBWNl9ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIFRMUyB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4KCi8qICBUaGlzIGlzIGRlZmluZWQgaWYgc3VwcG9ydCBmb3IgdGhlIEFsaWFzIHRyYW5zcG9ydCBkb21haW4gaXMKICAgIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfQUxJQVNfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBTU0ggdHJhbnNwb3J0IGRvbWFpbiBpcwogICAgYXZhaWxhYmxlLiAgICovCiN1bmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TU0hfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHRoZSBEVExTL1VEUCB0cmFuc3BvcnQgZG9tYWluIGlzCiAgICBhdmFpbGFibGUuICAgKi8KI3VuZGVmIE5FVFNOTVBfVFJBTlNQT1JUX0RUTFNVRFBfRE9NQUlOCgovKiAgVGhpcyBpcyBkZWZpbmVkIGlmIHN1cHBvcnQgZm9yIHN0ZGluL291dCB0cmFuc3BvcnQgZG9tYWluIGlzIGF2YWlsYWJsZS4gICAqLwojdW5kZWYgTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIFVTTSBzZWN1cml0eSBtb2R1bGUgaXMgYXZhaWxhYmxlICovCiN1bmRlZiBORVRTTk1QX1NFQ01PRF9VU00KCi8qIGRlZmluZSB0aGlzIGlmIHRoZSBLU00gKGtlcmJlcm9zIGJhc2VkIHNubXApIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0tTTQoKLyogZGVmaW5lIHRoaXMgaWYgdGhlIGxvY2FsIHNlY3VyaXR5IG1vZHVsZSBpcyBhdmFpbGFibGUgKi8KI3VuZGVmIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KCi8qIGRlZmluZSBpZiBjb25maWd1cmVkIGFzIGEgIm1pbmktYWdlbnQiICovCiN1bmRlZiBORVRTTk1QX01JTklfQUdFTlQKCi8qIHRoaXMgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBuZXQtc25tcCBtaWIgdHJlZS4gIEl0IHNob3VsZG4ndCBiZQogICBjaGFuZ2VkLCBhcyB0aGUgcGxhY2VzIGl0IGlzIHVzZWQgYXJlIGV4cGVjdGVkIHRvIGJlIGNvbnN0YW50CiAgIHZhbHVlcyBvciBhcmUgZGlyZWN0bHkgdGllZCB0byB0aGUgVUNELVNOTVAtTUlCLiAqLwojZGVmaW5lIE5FVFNOTVBfT0lECQk4MDcyCiNkZWZpbmUgTkVUU05NUF9NSUIJCTEsMyw2LDEsNCwxLDgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUIJCTEuMy42LjEuNC4xLjgwNzIKI2RlZmluZSBORVRTTk1QX0RPVF9NSUJfTEVOR1RICTcKCi8qIHBhdHRlcm4gZm9yIHRlbXBvcmFyeSBmaWxlIG5hbWVzICovCiNkZWZpbmUgTkVUU05NUF9URU1QX0ZJTEVfUEFUVEVSTiAiL3RtcC9zbm1wZFhYWFhYWCIKCi8qCiAqIHRoaXMgbXVzdCBiZSBiZWZvcmUgdGhlIHN5c3RlbS9tYWNoaW5lIGluY2x1ZGVzLCB0byBhbGxvdyB0aGVtIHRvCiAqIG92ZXJyaWRlIGFuZCB0dXJuIG9mZiBpbmxpbmluZy4gVG8gZG8gc28sIHRoZXkgc2hvdWxkIGRvIHRoZQogKiBmb2xsb3dpbmc6CiAqCiAqICAgICN1bmRlZiBORVRTTk1QX0VOQUJMRV9JTkxJTkUKICogICAgI2RlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMAogKgogKiBBIHVzZXIgaGF2aW5nIHByb2JsZW1zIHdpdGggdGhlaXIgY29tcGlsZXIgY2FuIGFsc28gdHVybiBvZmYKICogdGhlIHVzZSBvZiBpbmxpbmUgYnkgZGVmaW5pbmcgTkVUU05NUF9OT19JTkxJTkUgdmlhIHRoZWlyIGNmbGFnczoKICoKICogICAgLURORVRTTk1QX05PX0lOTElORQogKgogKiBIZWFkZXIgYW5kIHNvdXJjZSBmaWxlcyBzaG91bGQgb25seSB0ZXN0IGFnYWluc3QgTkVUU05NUF9VU0VfSU5MSU5FOgogKgogKiAgICNpZmRlZiBORVRTTk1QX1VTRV9JTkxJTkUKICogICBORVRTTk1QX0lOTElORSBmdW5jdGlvbihpbnQgcGFybSkgeyByZXR1cm4gcGFybSAtMTsgfQogKiAgICNlbmRpZgogKgogKiBGdW5jdGlvbnMgd2hpY2ggc2hvdWxkIGJlIHN0YXRpYywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpbmxpbmUKICogaXMgYXZhaWxhYmxlIG9yIGVuYWJsZWQgc2hvdWxkIHVzZSB0aGUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIG1hY3JvLAogKiBsaWtlIHNvOgogKgogKiAgICBORVRTTk1QX1NUQVRJQ19JTkxJTkUgZnVuY3Rpb24oaW50IHBhcm0pIHsgcmV0dXJuIHBhcm0gLTE7IH0KICoKICogTk9UIGxpa2UgdGhpczoKICoKICogICAgc3RhdGljIE5FVFNOTVBfSU5MSU5FIGZ1bmN0aW9uKGludCBwYXJtKSB7IHJldHVybiBwYXJtIC0xOyB9CiAqCiAqLwojaWZkZWYgTkVUU05NUF9CUk9LRU5fSU5MSU5FCiMgICBkZWZpbmUgTkVUU05NUF9FTkFCTEVfSU5MSU5FIDAKI2Vsc2UKIyAgIGRlZmluZSBORVRTTk1QX0VOQUJMRV9JTkxJTkUgMQojZW5kaWYKCiNpbmNsdWRlIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojaW5jbHVkZSBORVRTTk1QX01BQ0hJTkVfSU5DTFVERV9GSUxFCgojaWYgTkVUU05NUF9FTkFCTEVfSU5MSU5FICYmICFkZWZpbmVkKE5FVFNOTVBfTk9fSU5MSU5FKQojICAgZGVmaW5lIE5FVFNOTVBfVVNFX0lOTElORSAxCiMgICBpZm5kZWYgTkVUU05NUF9JTkxJTkUKIyAgICAgIGRlZmluZSBORVRTTk1QX0lOTElORSBpbmxpbmUKIyAgIGVuZGlmCiMgICBpZm5kZWYgTkVUU05NUF9TVEFUSUNfSU5MSU5FCiMgICAgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYyBpbmxpbmUKIyAgIGVuZGlmCiNlbHNlCiMgICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgCiMgICBkZWZpbmUgTkVUU05NUF9TVEFUSUNfSU5MSU5FIHN0YXRpYwojZW5kaWYKCiNpZm5kZWYgTkVUU05NUF9JTVBPUlQKIyAgZGVmaW5lIE5FVFNOTVBfSU1QT1JUIGV4dGVybgojZW5kaWYKCi8qIGNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3UgYXJlIGNvbXBpbGluZyB3aXRoIGxpYnNubXAuaCAKICAgYW5kIGFyZSBub3QgdXNpbmcgdGhlIFVDLURhdmlzIFNOTVAgbGlicmFyeS4gKi8KI2RlZmluZSBVQ0RfU05NUF9MSUJSQVJZIDEKCi8qIGFkZCBpbiByZWNlbnQgQ01VIGxpYnJhcnkgZXh0ZW5zaW9ucyAobm90IGNvbXBsZXRlKSAqLwojdW5kZWYgQ01VX0NPTVBBVElCTEUKCi8qIGZpbmFsIGNvbmNsdXNpb24gb24gbmxpc3QgdXNhZ2UgKi8KI2lmIGRlZmluZWQoSEFWRV9OTElTVCkgJiYgZGVmaW5lZChIQVZFX1NUUlVDVF9OTElTVF9OX1ZBTFVFKSAmJiAhZGVmaW5lZChORVRTTk1QX0RPTlRfVVNFX05MSVNUKSAmJiAhZGVmaW5lZChORVRTTk1QX05PX0tNRU1fVVNBR0UpCiNkZWZpbmUgTkVUU05NUF9DQU5fVVNFX05MSVNUCiNlbmRpZgoKCi8qICoqKioqKioqKiBORVRTTk1QX01BUktfQkVHSU5fTEVHQUNZX0RFRklOSVRJT05TICoqKioqKioqKi8KLyogCiAqIGV4aXN0aW5nIGRlZmluaXRpb25zIHByaW9yIHRvIE5ldC1TTk1QIDUuNAogKgogKiBkbyBub3QgYWRkIGFueXRoaW5nIG5ldyBoZXJlCiAqCiAqLwoKI2lmbmRlZiBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUwoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9TTk1QX1ZFUlNJT04KIyBkZWZpbmUgREVGQVVMVF9TTk1QX1ZFUlNJT04gTkVUU05NUF9ERUZBVUxUX1NOTVBfVkVSU0lPTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NOTVBWMQojIGRlZmluZSBTTk1QVjEgTkVUU05NUF9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVjJBTlkKIyBkZWZpbmUgU05NUFYyQU5ZIE5FVFNOTVBfU05NUFYyQU5ZCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU05NUFYyQVVUSAojIGRlZmluZSBTTk1QVjJBVVRIIE5FVFNOTVBfU05NUFYyQVVUSAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfTUlCUwojIGRlZmluZSBERUZBVUxUX01JQlMgTkVUU05NUF9ERUZBVUxUX01JQlMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ERUZBVUxUX01JQkRJUlMKIyBkZWZpbmUgREVGQVVMVF9NSUJESVJTIE5FVFNOTVBfREVGQVVMVF9NSUJESVJTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojIGRlZmluZSBERUZBVUxUX01JQkZJTEVTIE5FVFNOTVBfREVGQVVMVF9NSUJGSUxFUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1dJVEhfT1BBUVVFX1NQRUNJQUxfVFlQRVMKIyBkZWZpbmUgT1BBUVVFX1NQRUNJQUxfVFlQRVMgTkVUU05NUF9XSVRIX09QQVFVRV9TUEVDSUFMX1RZUEVTCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiMgZGVmaW5lIFNDQVBJX0FVVEhQUklWIE5FVFNOTVBfRU5BQkxFX1NDQVBJX0FVVEhQUklWCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojIGRlZmluZSBVU0VfSU5URVJOQUxfTUQ1IE5FVFNOTVBfVVNFX0lOVEVSTkFMX01ENQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9QS0NTMTEKIyBkZWZpbmUgVVNFX1BLQ1MgTkVUU05NUF9VU0VfUEtDUzExCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX09QRU5TU0wKIyBkZWZpbmUgVVNFX09QRU5TU0wgTkVUU05NUF9VU0VfT1BFTlNTTAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0RFQlVHR0lORwojIGRlZmluZSBTTk1QX05PX0RFQlVHR0lORyBORVRTTk1QX05PX0RFQlVHR0lORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FMV0FZU19ERUJVRwojIGRlZmluZSBTTk1QX0FMV0FZU19ERUJVRyBORVRTTk1QX0FMV0FZU19ERUJVRwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1VTRV9SRVZFUlNFX0FTTkVOQ09ESU5HCiMgZGVmaW5lIFVTRV9SRVZFUlNFX0FTTkVOQ09ESU5HIE5FVFNOTVBfVVNFX1JFVkVSU0VfQVNORU5DT0RJTkcKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OCiMgZGVmaW5lIERFRkFVTFRfQVNORU5DT0RJTkdfRElSRUNUSU9OIE5FVFNOTVBfREVGQVVMVF9BU05FTkNPRElOR19ESVJFQ1RJT04KI2VuZGlmCgojZGVmaW5lIFBFUlNJU1RFTlRfRElSRUNUT1JZIE5FVFNOTVBfUEVSU0lTVEVOVF9ESVJFQ1RPUlkKI2RlZmluZSBQRVJTSVNURU5UX01BU0sgTkVUU05NUF9QRVJTSVNURU5UX01BU0sKI2RlZmluZSBBR0VOVF9ESVJFQ1RPUllfTU9ERSBORVRTTk1QX0FHRU5UX0RJUkVDVE9SWV9NT0RFCiNkZWZpbmUgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUyBORVRTTk1QX01BWF9QRVJTSVNURU5UX0JBQ0tVUFMKI2RlZmluZSBTWVNURU1fSU5DTFVERV9GSUxFIE5FVFNOTVBfU1lTVEVNX0lOQ0xVREVfRklMRQojZGVmaW5lIE1BQ0hJTkVfSU5DTFVERV9GSUxFIE5FVFNOTVBfTUFDSElORV9JTkNMVURFX0ZJTEUKCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfU0VSVkVSX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9TRVJWRVJfUkVDVl9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1NFTkRfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfU0VORF9CVUYKI2VuZGlmCiNpZmRlZiBORVRTTk1QX0RFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGCiMgZGVmaW5lIERFRkFVTFRfQ0xJRU5UX1JFQ1ZfQlVGIE5FVFNOTVBfREVGQVVMVF9DTElFTlRfUkVDVl9CVUYKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9MT0dGSUxFCiMgZGVmaW5lIExPR0ZJTEUgTkVUU05NUF9MT0dGSUxFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfU1lTX0NPTlRBQ1QKIyBkZWZpbmUgU1lTX0NPTlRBQ1QgTkVUU05NUF9TWVNfQ09OVEFDVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NZU19MT0MKIyBkZWZpbmUgU1lTX0xPQyBORVRTTk1QX1NZU19MT0MKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfTElCV1JBUAojIGRlZmluZSBVU0VfTElCV1JBUCBORVRTTk1QX1VTRV9MSUJXUkFQCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX1RFU1RJTkdfQ09ERSAKIyBkZWZpbmUgU05NUF9URVNUSU5HX0NPREUgTkVUU05NUF9FTkFCTEVfVEVTVElOR19DT0RFCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfTk9fUk9PVF9BQ0NFU1MKIyBkZWZpbmUgTk9fUk9PVF9BQ0NFU1MgTkVUU05NUF9OT19ST09UX0FDQ0VTUwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX05PX0tNRU1fVVNBR0UKIyBkZWZpbmUgTk9fS01FTV9VU0FHRSBORVRTTk1QX05PX0tNRU1fVVNBR0UKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9OT19EVU1NWV9WQUxVRVMKIyBkZWZpbmUgTk9fRFVNTVlfVkFMVUVTIE5FVFNOTVBfTk9fRFVNTVlfVkFMVUVTCiNlbmRpZgoKI2RlZmluZSBWRVJTX0RFU0MgICAgIE5FVFNOTVBfVkVSU19ERVNDCiNkZWZpbmUgU1lTX05BTUUgICAgICBORVRTTk1QX1NZU19OQU1FCgojZGVmaW5lIFBST0NNSUJOVU0gICAgTkVUU05NUF9QUk9DTUlCTlVNCiNkZWZpbmUgU0hFTExNSUJOVU0gICBORVRTTk1QX1NIRUxMTUlCTlVNCiNkZWZpbmUgTUVNTUlCTlVNICAgICBORVRTTk1QX01FTU1JQk5VTQojZGVmaW5lIERJU0tNSUJOVU0gICAgTkVUU05NUF9ESVNLTUlCTlVNCgojZGVmaW5lIExPQURBVkVNSUJOVU0gTkVUU05NUF9MT0FEQVZFTUlCTlVNCiNkZWZpbmUgVkVSU0lPTk1JQk5VTSBORVRTTk1QX1ZFUlNJT05NSUJOVU0KI2RlZmluZSBFUlJPUk1JQk5VTSAgIE5FVFNOTVBfRVJST1JNSUJOVU0KI2RlZmluZSBBR0VOVElEICAgICAgIE5FVFNOTVBfQUdFTlRJRAoKI2RlZmluZSBIUFVYOUlEICAgICAgIE5FVFNOTVBfSFBVWDlJRAojZGVmaW5lIFNVTk9TNElEICAgICAgTkVUU05NUF9TVU5PUzRJRAojZGVmaW5lIFNPTEFSSVNJRCAgICAgTkVUU05NUF9TT0xBUklTSUQKI2RlZmluZSBPU0ZJRCAgICAgICAgIE5FVFNOTVBfT1NGSUQKI2RlZmluZSBVTFRSSVhJRCAgICAgIE5FVFNOTVBfVUxUUklYSUQKI2RlZmluZSBIUFVYMTBJRCAgICAgIE5FVFNOTVBfSFBVWDEwSUQKI2RlZmluZSBORVRCU0QxSUQgICAgIE5FVFNOTVBfTkVUQlNEMUlECiNkZWZpbmUgRlJFRUJTRElEICAgICBORVRTTk1QX0ZSRUVCU0RJRAojZGVmaW5lIElSSVhJRCAgICAgICAgTkVUU05NUF9JUklYSUQKI2RlZmluZSBMSU5VWElEICAgICAgIE5FVFNOTVBfTElOVVhJRAojZGVmaW5lIEJTRElJRCAgICAgICAgTkVUU05NUF9CU0RJSUQKI2RlZmluZSBPUEVOQlNESUQgICAgIE5FVFNOTVBfT1BFTkJTRElECiNkZWZpbmUgV0lOMzJJRCAgICAgICBORVRTTk1QX1dJTjMySUQKI2RlZmluZSBIUFVYMTFJRCAgICAgIE5FVFNOTVBfSFBVWDExSUQKI2RlZmluZSBBSVhJRCAgICAgICAgIE5FVFNOTVBfQUlYSUQKI2RlZmluZSBNQUNPU1hJRCAgICAgIE5FVFNOTVBfTUFDT1NYSUQKI2RlZmluZSBVTktOT1dOSUQgICAgIE5FVFNOTVBfVU5LTk9XTklECgojZGVmaW5lIEVOVEVSUFJJU0VfT0lEICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX09JRAojZGVmaW5lIEVOVEVSUFJJU0VfTUlCICAgICAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX01JQgojZGVmaW5lIEVOVEVSUFJJU0VfRE9UX01JQiAgICAgICAgTkVUU05NUF9FTlRFUlBSSVNFX0RPVF9NSUIKI2RlZmluZSBFTlRFUlBSSVNFX0RPVF9NSUJfTEVOR1RIIE5FVFNOTVBfRU5URVJQUklTRV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBTWVNURU1fTUlCCQkgIE5FVFNOTVBfU1lTVEVNX01JQgojZGVmaW5lIFNZU1RFTV9ET1RfTUlCCQkgIE5FVFNOTVBfU1lTVEVNX0RPVF9NSUIKI2RlZmluZSBTWVNURU1fRE9UX01JQl9MRU5HVEgJICBORVRTTk1QX1NZU1RFTV9ET1RfTUlCX0xFTkdUSAoKI2RlZmluZSBOT1RJRklDQVRJT05fTUlCCSAgICBORVRTTk1QX05PVElGSUNBVElPTl9NSUIJCiNkZWZpbmUgTk9USUZJQ0FUSU9OX0RPVF9NSUIJICAgIE5FVFNOTVBfTk9USUZJQ0FUSU9OX0RPVF9NSUIKI2RlZmluZSBOT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEggTkVUU05NUF9OT1RJRklDQVRJT05fRE9UX01JQl9MRU5HVEgKCiNkZWZpbmUgVUNEQVZJU19PSUQJCSAgTkVUU05NUF9VQ0RBVklTX09JRAojZGVmaW5lIFVDREFWSVNfTUlCCQkgIE5FVFNOTVBfVUNEQVZJU19NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUIJCSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUIKI2RlZmluZSBVQ0RBVklTX0RPVF9NSUJfTEVOR1RICSAgTkVUU05NUF9VQ0RBVklTX0RPVF9NSUJfTEVOR1RICgojZGVmaW5lIEVSUk9SVElNRUxFTkdUSCBORVRTTk1QX0VSUk9SVElNRUxFTkdUSAoKI2lmZGVmIE5FVFNOTVBfUFJPQ0ZJWENNRAojIGRlZmluZSBQUk9DRklYQ01EIE5FVFNOTVBfUFJPQ0ZJWENNRAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VYRUNGSVhDTUQKIyBkZWZpbmUgRVhFQ0ZJWENNRCBORVRTTk1QX0VYRUNGSVhDTUQKI2VuZGlmCgojZGVmaW5lIEVYQ0FDSEVUSU1FICBORVRTTk1QX0VYQ0FDSEVUSU1FCiNkZWZpbmUgQ0FDSEVGSUxFICAgIE5FVFNOTVBfQ0FDSEVGSUxFCiNkZWZpbmUgTUFYQ0FDSEVTSVpFIE5FVFNOTVBfTUFYQ0FDSEVTSVpFCgojZGVmaW5lIERFRkRJU0tNSU5JTVVNU1BBQ0UgTkVUU05NUF9ERUZESVNLTUlOSU1VTVNQQUNFCiNkZWZpbmUgREVGTUFYTE9BREFWRSBORVRTTk1QX0RFRk1BWExPQURBVkUKI2RlZmluZSBNQVhSRUFEQ09VTlQgTkVUU05NUF9NQVhSRUFEQ09VTlQKCiNkZWZpbmUgU05NUEJMT0NLIE5FVFNOTVBfU05NUEJMT0NLCiNkZWZpbmUgUkVTVEFSVFNMRUVQIE5FVFNOTVBfUkVTVEFSVFNMRUVQCgojZGVmaW5lIE5VTV9DT01NVU5JVElFUwlORVRTTk1QX05VTV9DT01NVU5JVElFUwoKI2lmZGVmIE5FVFNOTVBfTk9fWkVST0xFTkdUSF9DT01NVU5JVFkKIyBkZWZpbmUgTk9fWkVST0xFTkdUSF9DT01NVU5JVFkgTkVUU05NUF9OT19aRVJPTEVOR1RIX0NPTU1VTklUWQojZW5kaWYKCiNkZWZpbmUgTEFTVEZJRUxEIE5FVFNOTVBfTEFTVEZJRUxECgojZGVmaW5lIENPTkZJR1VSRV9PUFRJT05TIE5FVFNOTVBfQ09ORklHVVJFX09QVElPTlMKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1VEUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVURQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KIyBkZWZpbmUgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIE5FVFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RDUF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVENQX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VTklYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9BQUw1UFZDX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9JUFhfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX0lQWF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfSVBYX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9VRFBJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojIGRlZmluZSBTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTiBORVRTTk1QX1RSQU5TUE9SVF9UQ1BJUFY2X0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9UTFNfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1RMU19ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfVExTX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1RSQU5TUE9SVF9TVERfRE9NQUlOCiMgZGVmaW5lIFNOTVBfVFJBTlNQT1JUX1NURF9ET01BSU4gTkVUU05NUF9UUkFOU1BPUlRfU1REX0RPTUFJTgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9VU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfVVNNIE5FVFNOTVBfU0VDTU9EX1VTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9LU00KIyBkZWZpbmUgU05NUF9TRUNNT0RfS1NNIE5FVFNOTVBfU0VDTU9EX0tTTQojZW5kaWYKCiNpZmRlZiBORVRTTk1QX1NFQ01PRF9MT0NBTFNNIAojIGRlZmluZSBTTk1QX1NFQ01PRF9MT0NBTFNNIE5FVFNOTVBfU0VDTU9EX0xPQ0FMU00KI2VuZGlmCgojaWZkZWYgTkVUU05NUF9SRUVOVFJBTlQKIyBkZWZpbmUgTlNfUkVFTlRSQU5UIE5FVFNOTVBfUkVFTlRSQU5UCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRU5BQkxFX0lQVjYKIyBkZWZpbmUgSU5FVDYgTkVUU05NUF9FTkFCTEVfSVBWNgojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0VOQUJMRV9MT0NBTF9TTVVYCiMgZGVmaW5lIExPQ0FMX1NNVVggTkVUU05NUF9FTkFCTEVfTE9DQUxfU01VWAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0FHRU5UWF9ET01fU09DS19PTkxZCiMgZGVmaW5lIEFHRU5UWF9ET01fU09DS19PTkxZIE5FVFNOTVBfQUdFTlRYX0RPTV9TT0NLX09OTFkKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9TTk1QVFJBUERfRElTQUJMRV9BR0VOVFgKIyBkZWZpbmUgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfVVNFX0tFUkJFUk9TX01JVAojIGRlZmluZSBNSVRfTkVXX0NSWVBUTyBORVRTTk1QX1VTRV9LRVJCRVJPU19NSVQKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9VU0VfS0VSQkVST1NfSEVJTURBTAojIGRlZmluZSBIRUlNREFMIE5FVFNOTVBfVVNFX0tFUkJFUk9TX0hFSU1EQUwKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9BR0VOVFhfU09DS0VUCiMgZGVmaW5lIEFHRU5UWF9TT0NLRVQgTkVUU05NUF9BR0VOVFhfU09DS0VUCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojIGRlZmluZSBESVNBQkxFX01JQl9MT0FESU5HIE5FVFNOTVBfRElTQUJMRV9NSUJfTE9BRElORwojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfU05NUFYxCiMgZGVmaW5lIERJU0FCTEVfU05NUFYxIE5FVFNOTVBfRElTQUJMRV9TTk1QVjEKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX1NOTVBWMkMKIyBkZWZpbmUgRElTQUJMRV9TTk1QVjJDIE5FVFNOTVBfRElTQUJMRV9TTk1QVjJDCiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojIGRlZmluZSBESVNBQkxFX1NFVF9TVVBQT1JUIE5FVFNOTVBfRElTQUJMRV9TRVRfU1VQUE9SVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0RJU0FCTEVfREVTCiMgZGVmaW5lIERJU0FCTEVfREVTIE5FVFNOTVBfRElTQUJMRV9ERVMKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9ESVNBQkxFX01ENQojIGRlZmluZSBESVNBQkxFX01ENSBORVRTTk1QX0RJU0FCTEVfTUQ1CiNlbmRpZgoKI2lmZGVmIE5FVFNOTVBfRE9OVF9VU0VfTkxJU1QKIyBkZWZpbmUgRE9OVF9VU0VfTkxJU1QgTkVUU05NUF9ET05UX1VTRV9OTElTVAojZW5kaWYKCiNpZmRlZiBORVRTTk1QX0NBTl9VU0VfTkxJU1QKIyBkZWZpbmUgQ0FOX1VTRV9OTElTVCBORVRTTk1QX0NBTl9VU0VfTkxJU1QKI2VuZGlmCgojaWZkZWYgTkVUU05NUF9DQU5fVVNFX1NZU0NUTAojIGRlZmluZSBDQU5fVVNFX1NZU0NUTCBORVRTTk1QX0NBTl9VU0VfU1lTQ1RMCiNlbmRpZgoKI2VuZGlmIC8qIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TICovCgoKI2VuZGlmIC8qIE5FVF9TTk1QX0NPTkZJR19IICovCg==