LyoKICogIE5vdGVwYWQgKFN3ZWRpc2ggcmVzb3VyY2VzKQogKgogKiAgQ29weXJpZ2h0IDE5OTcsOTggTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogKiAgU3dlZGlzaCBsYW5ndWFnZSBieSBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+CiAqLwoKI2RlZmluZSBMQU5HVUFHRV9JRCAgICAgICAgICAgICAgICAgICAgIFN3CiNkZWZpbmUgTEFOR1VBR0VfTlVNQkVSICAgICAgICAgICAgICAgICAxZAojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgICAgIiZTdmVuc2thIgoKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAgICAiJkFya2l2IgojZGVmaW5lIE1FTlVfRklMRV9ORVcgICAgICAgICAgICAgICAgICAgIiZOeS4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfT1BFTiAgICAgICAgICAgICAgICAgICLWJnBwbmEiCiNkZWZpbmUgTUVOVV9GSUxFX1NBVkUgICAgICAgICAgICAgICAgICAiJlNwYXJhIgojZGVmaW5lIE1FTlVfRklMRV9TQVZFQVMgICAgICAgICAgICAgICAgIlNwYXJhICZzb20uLi4iCiNkZWZpbmUgTUVOVV9GSUxFX1BSSU5UICAgICAgICAgICAgICAgICAiJlNrcml2IHV0IgojZGVmaW5lIE1FTlVfRklMRV9QQUdFU0VUVVAgICAgICAgICAgICAgIlNpZCBMYSZ5b3V0Li4uIgojZGVmaW5lIE1FTlVfRklMRV9QUklOVFNFVFVQICAgICAgICAgICAgIlNrcml2YXIgJmluc3TkbGxuaW5nYXIuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX0VYSVQgICAgICAgICAgICAgICAgICAiJkF2c2x1dGEiCgojZGVmaW5lIE1FTlVfRURJVCAgICAgICAgICAgICAgICAgICAgICAgIiZSZWRpZ2VyYSIKI2RlZmluZSBNRU5VX0VESVRfVU5ETyAgICAgICAgICAgICAgICAgICImVW5kb1x0Q3RybCtaIgojZGVmaW5lIE1FTlVfRURJVF9DVVQgICAgICAgICAgICAgICAgICAgIktsaXBwYVx0Q3RybCtYIgojZGVmaW5lIE1FTlVfRURJVF9DT1BZICAgICAgICAgICAgICAgICAgIiZLb3BpZXJhXHRDdHJsK0MiCiNkZWZpbmUgTUVOVV9FRElUX1BBU1RFICAgICAgICAgICAgICAgICAiJktsaXN0cmEgaW5cdEN0cmwrViIKI2RlZmluZSBNRU5VX0VESVRfREVMRVRFICAgICAgICAgICAgICAgICImVGEgYm9ydFx0RGVsIgojZGVmaW5lIE1FTlVfRURJVF9TRUxFQ1RBTEwgICAgICAgICAgICAgIk1hcmtlcmEgJmFsbHQiCiNkZWZpbmUgTUVOVV9FRElUX1RJTUVEQVRFICAgICAgICAgICAgICAiJlRpZC9EYXR1bVx0RjUiCiNkZWZpbmUgTUVOVV9FRElUX1dSQVAgICAgICAgICAgICAgICAgICAiJkRlbGEgbOVuZ2EgbWVuaW5nYXIiCgojZGVmaW5lIE1FTlVfU0VBUkNIICAgICAgICAgICAgICAgICAgICAgIiZT9msiCiNkZWZpbmUgTUVOVV9TRUFSQ0hfU0VBUkNIICAgICAgICAgICAgICAiU/ZrLi4uIgojZGVmaW5lIE1FTlVfU0VBUkNIX05FWFQgICAgICAgICAgICAgICAgIiZT9msgbuRzdGFcdEYzIgoKI2RlZmluZSBNRU5VX0xBTkdVQUdFICAgICAgICAgICAgICAgICAgICImU3By5WsiCgojZGVmaW5lIE1FTlVfSEVMUCAgICAgICAgICAgICAgICAgICAgICAgIiZIauRscCIKI2RlZmluZSBNRU5VX0hFTFBfQ09OVEVOVFMgICAgICAgICAgICAgICImSW5uZWjlbGwiCiNkZWZpbmUgTUVOVV9IRUxQX1NFQVJDSCAgICAgICAgICAgICAgICAiJlP2ay4uLiIKI2RlZmluZSBNRU5VX0hFTFBfSEVMUF9PTl9IRUxQICAgICAgICAgICJBbnbkbmRuaW5nZW4gJmF2IGhq5GxwIgoKI2RlZmluZSBNRU5VX0lORk8gICAgICAgICAgICAgICAgICAgICAgICJJbmYmb3JtYXRpb24uLi4iCiNkZWZpbmUgTUVOVV9JTkZPX0xJQ0VOU0UgICAgICAgICAgICAgICAiJkxpY2VucyIKI2RlZmluZSBNRU5VX0lORk9fTk9fV0FSUkFOVFkgICAgICAgICAgICImSU5HRU4gR0FSQU5USSIKI2RlZmluZSBNRU5VX0lORk9fQUJPVVRfV0lORSAgICAgICAgICAgICImT20gV2luZSIKCgovKiBEaWFsb2dzICovCgojZGVmaW5lIERJQUxPR19PSyAgICAgICAgICAgICAgICAgICAgICAgIk9LIgojZGVmaW5lIERJQUxPR19DQU5DRUwgICAgICAgICAgICAgICAgICAgIkF2YnJ5dCIKI2RlZmluZSBESUFMT0dfQlJPV1NFICAgICAgICAgICAgICAgICAgICImQmzkZGRyYS4uLiIKI2RlZmluZSBESUFMT0dfSEVMUCAgICAgICAgICAgICAgICAgICAgICImSGrkbHAiCgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfQ0FQVElPTiAgICAgICAgIlNpZCBMYXlvdXQiCiNkZWZpbmUgRElBTE9HX1BBR0VTRVRVUF9IRUFEICAgICAgICAgICAiJkh1dnVkbm90OiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1RBSUwgICAgICAgICAgICImRm90bm90OiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX01BUkdJTiAgICAgICAgICJLYW50ZXI6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfTEVGVCAgICAgICAgICAgIiZW5G5zdGVyOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX1JJR0hUICAgICAgICAgICImSPZnZXI6IgojZGVmaW5lIERJQUxPR19QQUdFU0VUVVBfVE9QICAgICAgICAgICAgIibWdmVyOiIKI2RlZmluZSBESUFMT0dfUEFHRVNFVFVQX0JPVFRPTSAgICAgICAgICImVW5kZXI6IgoKCi8qIFN0cmluZ3MgKi8KCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9IRUFERVJWQUxVRSAgICAiJm4iICAgICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfRk9PVEVSVkFMVUUgICAgIlBhZ2UgJnMiICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0xFRlRWQUxVRSAgICAgICIyMCBtbSIgICAgIC8qIEZJWE1FICovCiNkZWZpbmUgU1RSSU5HX1BBR0VTRVRVUF9SSUdIVFZBTFVFICAgICAiMjAgbW0iICAgICAvKiBGSVhNRSAqLwojZGVmaW5lIFNUUklOR19QQUdFU0VUVVBfVE9QVkFMVUUgICAgICAgIjI1IG1tIiAgICAgLyogRklYTUUgKi8KI2RlZmluZSBTVFJJTkdfUEFHRVNFVFVQX0JPVFRPTVZBTFVFICAgICIyNSBtbSIgICAgIC8qIEZJWE1FICovCgojZGVmaW5lIFNUUklOR19OT1RFUEFEICAgICAgICAgICAgICAgICAgIkFudGVja25pbmdhciIKI2RlZmluZSBTVFJJTkdfRVJST1IgICAgICAgICAgICAgICAgICAgICJGRUwiCiNkZWZpbmUgU1RSSU5HX1dBUk5JTkcgICAgICAgICAgICAgICAgICAiVkFSTklORyIKI2RlZmluZSBTVFJJTkdfSU5GTyAgICAgICAgICAgICAgICAgICAgICJJbmZvcm1hdGlvbiIKCiNkZWZpbmUgU1RSSU5HX1VOVElUTEVEICAgICAgICAgICAgICAgICAiKHVudGl0bGVkKSIKCiNkZWZpbmUgU1RSSU5HX0FMTF9GSUxFUyAgICAgICAgICAgICAgICAiQWxsYSBmaWxlciAoKi4qKSIKI2RlZmluZSBTVFJJTkdfVEVYVF9GSUxFU19UWFQgICAgICAgICAgICJUZXh0IGZpbGVyICgqLnR4dCkiCgojZGVmaW5lIFNUUklOR19UT09MQVJHRSAgICAgICAgICJGaWxlbiAnJXMnIORyIGb2ciBzdG9yIGb2ciBub3RlcGFkLlxuIFwKQW525G5kIGVuIGFubmFuIGVkaXRvci4iCgojZGVmaW5lIFNUUklOR19OT1RFWFQgICAgICAgICAgICJEdSBza3JldiBpbnRlIGluIG7lZ29uIHRleHQuIFwKXG5Ta3JpdiBu5WdvdCBvY2ggZvZyc/ZrIHNlZGFuIGlnZW4iCgovKiBGSVhNRSAqLwoKI2RlZmluZSBTVFJJTkdfTk9UU0FWRUQgICAgICAgICAiRmlsZW4gJyVzJ1xuaGFzIGJlZW4gbW9kaWZpZWRcblxuIFwKV291bGQgeW91IGxpa2UgdG8gc2F2ZSB5b3VyIGNoYW5nZXMgPyIKCiNkZWZpbmUgU1RSSU5HX05PVEZPVU5EICAgICAgICAgIiclcycgaGl0dGFkZXMgaW50ZS4iCgojZGVmaW5lIFNUUklOR19PVVRfT0ZfTUVNT1JZICAgICJJbnRlIHRpbGxy5GtsaWd0IG1lZCBtaW5uZSBm9nIgYXR0IHNsdXRm9nJhIFwKZGVuIGjkciB1cHBnaWZ0ZW4uIFxuQXZzbHV0YSBldHQgZWxsZXIgZmxlcmEgcHJvZ3JhbSBm9nIgYXR0IPZrYSBt5G5nZGVuIFxuZnJpdHQgXAptaW5uZS4iCgojaW5jbHVkZSAibm90ZXBhZC5yYyIK