LyoKICogUHJvZ3JhbSBNYW5hZ2VyCiAqCiAqIENvcHlyaWdodCAxOTk3IEhlbnJpayBPbHNlbgogKi8KCiNkZWZpbmUgTEFOR1VBR0VfSUQgICAgICAgICAgICAgICAgICBEYQojZGVmaW5lIExBTkdVQUdFX05VTUJFUiAgICAgICAgICAgICAgNgojZGVmaW5lIExBTkdVQUdFX01FTlVfSVRFTSAgICAgICAgICAgIiZEYW5zayIKCi8qIE1lbnUgKi8KCiNkZWZpbmUgTUVOVV9GSUxFICAgICAgICAgICAgICAgICAgICAiJkZpbGVyIgojZGVmaW5lIE1FTlVfRklMRV9ORVcgICAgICAgICAgICAgICAgIiZOeXQgcHJvZ3JhbW9iamVrdC4uLiIKI2RlZmluZSBNRU5VX0ZJTEVfT1BFTiAgICAgICAgICAgICAgICLFJmJuXHRFbnRlciIKI2RlZmluZSBNRU5VX0ZJTEVfTU9WRSAgICAgICAgICAgICAgICImRmx5dC4uLlx0RjciCiNkZWZpbmUgTUVOVV9GSUxFX0NPUFkgICAgICAgICAgICAgICAiSyZvcGllci4uLlx0RjgiCiNkZWZpbmUgTUVOVV9GSUxFX0RFTEVURSAgICAgICAgICAgICAiJlNsZXRcdERlbCIKI2RlZmluZSBNRU5VX0ZJTEVfQVRUUklCVVRFUyAgICAgICAgICImUHJvZ3JhbXBhcmFtZXRyZS4uLl5JQWx0K0VudGVyIgojZGVmaW5lIE1FTlVfRklMRV9FWEVDVVRFICAgICAgICAgICAgIiZL+HIuLi4iCiNkZWZpbmUgTUVOVV9GSUxFX0VYSVQgICAgICAgICAgICAgICAiJkFmc2x1dCBXaW5kb3dzLi4uIgoKI2RlZmluZSBNRU5VX09QVElPTlMgICAgICAgICAgICAgICAgICImSW5kc3RpbGxpbmdlciIKI2RlZmluZSBNRU5VX09QVElPTlNfQVVUT19BUlJBTkdFICAgICImQXJyYW5nZXIgYXV0b21hdGlzayIKI2RlZmluZSBNRU5VX09QVElPTlNfTUlOX09OX1JVTiAgICAgICImTWluaW1lciB2ZWQgYnJ1ZyIKI2RlZmluZSBNRU5VX09QVElPTlNfU0FWRV9TRVRUSU5HUyAgICImR2VtIGluZHN0aWxsaW5nZXIgdmVkIGFmc2x1dG5pbmciCgojZGVmaW5lIE1FTlVfV0lORE9XUyAgICAgICAgICAgICAgICAgIiZWaW5kdWUiCiNkZWZpbmUgTUVOVV9XSU5ET1dTX09WRVJMQVAgICAgICAgICAiJk92ZXJsYXBwZXRcdFNraWZ0K0Y1IgojZGVmaW5lIE1FTlVfV0lORE9XU19TSURFX0JZX1NJREUgICAgIiZTaWRlIG9tIHNpZGVcdFNraWZ0K0Y0IgojZGVmaW5lIE1FTlVfV0lORE9XU19BUlJBTkdFICAgICAgICAgIiZBcnJhbmdlciBpa29uZXIiCgojZGVmaW5lIE1FTlVfTEFOR1VBR0UgICAgICAgICAgICAgICAgIiZTcHJvZyIKCiNkZWZpbmUgTUVOVV9IRUxQICAgICAgICAgICAgICAgICAgICAiJkhq5mxwIgojZGVmaW5lIE1FTlVfSEVMUF9DT05URU5UUyAgICAgICAgICAgIiZJbmRob2xkIgojZGVmaW5lIE1FTlVfSEVMUF9TRUFSQ0ggICAgICAgICAgICAgIiZT+GcgZWZ0ZXIgaGrmbHAgb20uLi4iCiNkZWZpbmUgTUVOVV9IRUxQX0hFTFBfT05fSEVMUCAgICAgICAiJkJydWcgYWYgSGrmbHAiCiNkZWZpbmUgTUVOVV9IRUxQX1RVVE9SSUFMICAgICAgICAgICAiJldpbmRvd3MgU2VsdnN0dWRpdW0iCgojZGVmaW5lIE1FTlVfSU5GTyAgICAgICAgICAgICAgICAgICAgIiZPbSBQcm9ncmFtc3R5cmluZy4uLiIKI2RlZmluZSBNRU5VX0lORk9fTElDRU5TRSAgICAgICAgICAgICImTGljZW5zIgojZGVmaW5lIE1FTlVfSU5GT19OT19XQVJSQU5UWSAgICAgICAgIiZOTyBXQVJSQU5UWSIKI2RlZmluZSBNRU5VX0lORk9fQUJPVVRfV0lORSAgICAgICAgICImT20gV0lORSIKCi8qIERpYWxvZ3MgKi8KCiNkZWZpbmUgRElBTE9HX09LICAgICAgICAgICAgICAgICAgICAiT0siCiNkZWZpbmUgRElBTE9HX0NBTkNFTCAgICAgICAgICAgICAgICAiQW5udWxsZXIiCiNkZWZpbmUgRElBTE9HX0JST1dTRSAgICAgICAgICAgICAgICAiJkdlbm5lbXNlLi4uIgojZGVmaW5lIERJQUxPR19IRUxQICAgICAgICAgICAgICAgICAgIiZIZWxwIgoKI2RlZmluZSBESUFMT0dfTkVXX0NBUFRJT04gICAgICAgICAgICJOeXQgcHJvZ3JhbW9iamVjdCIKI2RlZmluZSBESUFMT0dfTkVXX05FVyAgICAgICAgICAgICAgICJOeXQiCiNkZWZpbmUgRElBTE9HX05FV19HUk9VUCAgICAgICAgICAgICAiUHJvZ3JhbSAmZ3J1cHBlIgojZGVmaW5lIERJQUxPR19ORVdfUFJPR1JBTSAgICAgICAgICAgIiZQcm9ncmFtIgoKI2RlZmluZSBESUFMT0dfTU9WRV9DQVBUSU9OICAgICAgICAgICJGbHl0IHByb2dyYW1lbGVtZW50IgojZGVmaW5lIERJQUxPR19NT1ZFX1BST0dSQU0gICAgICAgICAgIkZseXQgZWxlbWVudGV0OiIKI2RlZmluZSBESUFMT0dfTU9WRV9GUk9NX0dST1VQICAgICAgICJGcmEgZ3J1cHBlbjoiCiNkZWZpbmUgRElBTE9HX01PVkVfVE9fR1JPVVAgICAgICAgICAiJlRpbCBncnVwcGVuOiIKCiNkZWZpbmUgRElBTE9HX0NPUFlfQ0FQVElPTiAgICAgICAgICAiS29waWVyIHByb2dyYW1lbGVtZW50IgojZGVmaW5lIERJQUxPR19DT1BZX1BST0dSQU0gICAgICAgICAgIktvcGllciBlbGVtZW50ZXQ6IgojZGVmaW5lIERJQUxPR19DT1BZX0ZST01fR1JPVVAgICAgICAgRElBTE9HX01PVkVfRlJPTV9HUk9VUAojZGVmaW5lIERJQUxPR19DT1BZX1RPX0dST1VQICAgICAgICAgRElBTE9HX01PVkVfVE9fR1JPVVAKCiNkZWZpbmUgRElBTE9HX0dST1VQX0NBUFRJT04gICAgICAgICAiR3J1cHBlcGFyYW1ldHJlIgojZGVmaW5lIERJQUxPR19HUk9VUF9ERVNDUklQVElPTiAgICAgIiZCZXNrcml2ZWxzZToiCiNkZWZpbmUgRElBTE9HX0dST1VQX0ZJTEUgICAgICAgICAgICAiJkdydXBwZWZpbDoiCgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0NBUFRJT04gICAgICAgIlByb2dyYW1wYXJhbWV0cmUiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fREVTQ1JJUFRJT04gICBESUFMT0dfR1JPVVBfREVTQ1JJUFRJT04KI2RlZmluZSBESUFMT0dfUFJPR1JBTV9DT01NQU5EX0xJTkUgICImS29tbWFuZG9saW5qZToiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fRElSRUNUT1JZICAgICAiJkFyYmVqZHNiaWJsaW90ZWs6IgojZGVmaW5lIERJQUxPR19QUk9HUkFNX0hPVF9LRVkgICAgICAgIkdlbnZlanMmdGFzdDoiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fU1lNQk9MICAgICAgICAiS/hyICZtaW5pbWVyZXQiCiNkZWZpbmUgRElBTE9HX1BST0dSQU1fT1RIRVJfU1lNQk9MICAiU2tpZnQgJmlrb24uLi4iCgojZGVmaW5lIERJQUxPR19TWU1CT0xfQ0FQVElPTiAgICAgICAgIlNraWZ0IGlrb24iCiNkZWZpbmUgRElBTE9HX1NZTUJPTF9GSUxFICAgICAgICAgICAiJkZpbG5hdm46IgojZGVmaW5lIERJQUxPR19TWU1CT0xfQ1VSUkVOVCAgICAgICAgIiZOdXbmcmVuZGUgaWtvbjoiCgojZGVmaW5lIERJQUxPR19FWEVDVVRFX0NBUFRJT04gICAgICAgIkv4ciIKI2RlZmluZSBESUFMT0dfRVhFQ1VURV9DT01NQU5EX0xJTkUgIERJQUxPR19QUk9HUkFNX0NPTU1BTkRfTElORQojZGVmaW5lIERJQUxPR19FWEVDVVRFX1NZTUJPTCAgICAgICAgRElBTE9HX1BST0dSQU1fU1lNQk9MCgovKiBTdHJpbmdzICovCgojZGVmaW5lIFNUUklOR19QUk9HUkFNX01BTkFHRVIgICAgICAgICAgICAiUHJvZ3JhbXN0eXJpbmciCiNkZWZpbmUgU1RSSU5HX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICJGRUpMIgojZGVmaW5lIFNUUklOR19XQVJOSU5HICAgICAgICAgICAgICAgICAgICAiQURWQVJTRUwiCiNkZWZpbmUgU1RSSU5HX0lORk8gICAgICAgICAgICAgICAgICAgICAgICJJbmZvcm1hdGlvbiIKI2RlZmluZSBTVFJJTkdfREVMRVRFICAgICAgICAgICAgICAgICAgICAgIlNsZXQiCiNkZWZpbmUgU1RSSU5HX0RFTEVURV9HUk9VUF9zICAgICAgICAgICAgICJTbGV0IGdydXBwZSBgJXMnID8iCiNkZWZpbmUgU1RSSU5HX0RFTEVURV9QUk9HUkFNX3MgICAgICAgICAgICJTbGV0IHByb2dyYW0gYCVzJyA/IgojZGVmaW5lIFNUUklOR19OT1RfSU1QTEVNRU5URUQgICAgICAgICAgICAiSWtrZSBpbXBsZW1lbnRlcmV0LiIKI2RlZmluZSBTVFJJTkdfRklMRV9SRUFEX0VSUk9SX3MgICAgICAgICAgIkthbiBpa2tlIGzmc2UgZmlsZW4gYCVzJyIKI2RlZmluZSBTVFJJTkdfRklMRV9XUklURV9FUlJPUl9zICAgICAgICAgIkthbiBpa2tlIHNrcml2ZSBmaWxlbiBgJXMnIgoKI2RlZmluZSBTVFJJTkdfR1JQRklMRV9SRUFEX0VSUk9SX3MgICAgICAgIlwKS2FuIGlra2Ug5WJuZSBncnVwcGVmaWxlbiAnJXMnLlxuXArYbnNrZXIgZHUsIGF0IFByb2dyYW1zdHlyaW5nIGkgZnJlbXRpZGVuIHN0YWRpZyBza2FsIHBy+HZlIGF0IGluZGzmc2UgZGVuPyIKCiNkZWZpbmUgU1RSSU5HX09VVF9PRl9NRU1PUlkgICAgICAgICAgICAgICJcCkRlciBlciBpa2tlIG5vayBodWtvbW1lbHNlIHRpbCBhdCB1ZGb4cmUgZGVubmUgb3BlcmF0aW9uLlxuXApBZnNsdXQgZXQgZWxsZXIgZmxlcmUgYWt0aXZlIHByb2dyYW1tZXIgZm9yIGF0IGZyaWf4cmUgaHVrb21tZWxzZSwgXApvZyBwcvh2IHPlIGlnZW4uIgoKI2RlZmluZSBTVFJJTkdfV0lOSEVMUF9FUlJPUiAgICAgICAgICAgICAgIlwKS2FuIGlra2UgdmlzZSBpbmZvcm1hdGlvbiBmcmEgSGrmbHAuIgoKI2RlZmluZSBTVFJJTkdfVU5LTk9XTl9GRUFUVVJFX3MgICAgICAgICAgIlVrZW5kdCBpbmRob2xkIGkgJXMiCiNkZWZpbmUgU1RSSU5HX0ZJTEVfTk9UX09WRVJXUklUVEVOX3MgICAgICJcCkZpbGVuIGAlcycgZmluZGVzLiBJa2tlIG92ZXJza3JldmV0LiIKCiNkZWZpbmUgU1RSSU5HX1NBVkVfR1JPVVBfQVNfcyAgICAgICAgICAgICJcCkdlbSBncnVwcGVuIHNvbSBgJXMnIGZvciBhdCB1bmRn5SBhdCBvdmVyc2tyaXZlIG9yaWdpbmFsZSBmaWxlciIKCiNkZWZpbmUgU1RSSU5HX05PX0hPVF9LRVkgICAgICAgICAgICAgICAgICJJbmdlbiIKCiNkZWZpbmUgU1RSSU5HX0FMTF9GSUxFUyAgICAgICAgICAgICAgICAgICJBbGxlIGZpbGVyICgqLiopIgojZGVmaW5lIFNUUklOR19QUk9HUkFNUyAgICAgICAgICAgICAgICAgICAiUHJvZ3JhbW1lciIKI2RlZmluZSBTVFJJTkdfTElCUkFSSUVTX0RMTCAgICAgICAgICAgICAgIkJpYmxpb3Rla3NmaWxlciAoKi5kbGwpIgojZGVmaW5lIFNUUklOR19TWU1CT0xfRklMRVMgICAgICAgICAgICAgICAiSWtvbmZpbGVyIgojZGVmaW5lIFNUUklOR19TWU1CT0xTX0lDTyAgICAgICAgICAgICAgICAiSWtvbmVyICgqLmljbykiCgojaW5jbHVkZSAiWHgucmMiCg==